機能の可用性
Fleet Control for Kubernetes クラスターは一般提供(GA)されています。Linux and Windows hosts上のエージェントを管理する機能は現在パブリックプレビュー段階です。
サポートされているエージェントとその環境の完全なリストについては、エージェントのタイプの互換性に関するドキュメントを参照してください。
パブリック プレビュー機能は、弊社のプレリリース ポリシーに従って提供されます。
NerdGraphを使用すると、Fleet Controlのフリート、メンバー、およびデプロイメントをプログラムで管理できます。これらの変更により、フリートの運用を完全に制御できるようになり、フリート管理の自動化、 CI/CDパイプラインとの統合、および大規模な計装の管理が可能になります。
このチュートリアルでは、利用可能なFleet Control変異とウィンドウの例を示します。 これらを使用して、フリートの作成、フリート メンバーの管理、およびデプロイ エージェントの設定を行うことができます。
前提条件
- APIキーにアクセスできるNew Relicアカウント
- Organization Managerロール、またはフリート管理権限を持つカスタムロール
- GraphQLとNerdGraphに精通していること
ヒント
コマンドラインによる車両管理には、 Fleet Control CLIを使用することもできます。CLIは、同じNerdGraph APIに基づいて構築されています。
重要
エージェントの設定は、NerdGraphではなくBlob Storage APIを通じて管理されます。すべての設定操作は、個別のREST APIを使用します。
艦隊管理の変異
fleetControlCreateFleet変異を使用して、 Kubernetes clustersまたはホストのグループを管理するための新しいフリートを作成します。
入力
パラメータ | データ型 | 必須ですか? | 説明 |
|---|---|---|---|
| オブジェクト | はい | フリート設定を含むフリートエンティティ作成入力。 |
| 弦 | はい | 艦隊名。組織内で唯一無二のものでなければなりません。 |
| イナム | はい | このフリートが管理するエンティティのタイプ。 オプション:
(Linux/Windows ホストの場合) または
。 |
| オブジェクト | はい | エンティティスコープは、フリートがアカウントスコープか組織スコープかを定義します。 |
| イナム | はい | スコープの種類。選択肢:
または
。 |
| ID | はい | スコープの種類に応じて、アカウントIDまたは組織ID。 |
| 弦 | いいえ | 艦隊の目的の説明。 |
| オブジェクト | いいえ | ホストフリートのOSタイプ。
が
の場合に必須です。 |
| イナム | はい(オペレーティングシステムが指定されている場合) | OSの種類。選択肢:
または
。 |
| 配列 | いいえ | 艦隊を分類するためのタグオブジェクトのリスト。 |
サンプルリクエスト
mutation CreateFleet { fleetControlCreateFleet( fleetEntity: { name: "Production Web Servers" description: "Fleet for all production Linux web server hosts" managedEntityType: HOST operatingSystem: { type: LINUX } scope: { type: ACCOUNT, id: "YOUR_ACCOUNT_ID" } tags: [ { key: "environment", values: ["production"] } { key: "team", values: ["platform"] } ] } ) { entity { id name description managedEntityType } }}サンプル回答
{ "data": { "fleetControlCreateFleet": { "entity": { "id": "<YOUR_FLEET_ID>", "name": "Production Web Servers", "description": "Fleet for all production Linux web server hosts", "managedEntityType": "HOST" } } }}既存の艦隊の名前、説明、またはタグを更新するには、 fleetControlUpdateFleet変異を使用します。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | 更新するフリートエンティティ ID。 |
| オブジェクト | はい | 変更するフィールドを含む、艦隊更新入力ファイル。 |
| 弦 | いいえ | 艦隊名を更新しました。 |
| 弦 | いいえ | 艦隊の説明を更新しました。 |
| 配列 | いいえ | タグ一覧を更新しました。 |
サンプルリクエスト
mutation UpdateFleet { fleetControlUpdateFleet( id: "<YOUR_FLEET_ID>" fleetUpdate: { description: "Updated: Production web servers with enhanced monitoring" tags: [ { key: "environment", values: ["production"] } { key: "region", values: ["us-east-1", "us-west-2"] } ] } ) { entity { id name description } }}fleetControlDeleteFleet変異を使用して艦隊を削除します。これによりフリートは削除されますが、管理対象エンティティからエージェントはアンインストールされません。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | 削除するフリートエンティティ ID。 |
サンプルリクエスト
mutation DeleteFleet { fleetControlDeleteFleet(id: "<YOUR_FLEET_ID>") { id }}艦隊メンバー管理の変更
fleetControlAddFleetMembersミューテーションを使用して、管理対象エンティティをフリートリングに追加します。リングを使用すると、フリート内のエンティティを整理して、段階的なロールアウト(たとえば、カナリアリリース、ステージング、本番環境)を行うことができます。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | フリートのエンティティ ID。 |
| 配列 | はい | どのエンティティをどのリングに追加するかを指定するリング入力のリスト。 |
| 弦 | はい | リング名(例:「canary」、「production」)。 |
| 配列 | はい | リングに追加するエンティティのGUIDのリスト。 |
サンプルリクエスト
mutation AddFleetMembers { fleetControlAddFleetMembers( fleetId: "<YOUR_FLEET_ID>" members: [ { ring: "canary" entityIds: ["<YOUR_ENTITY_ID_1>", "<YOUR_ENTITY_ID_2>"] } { ring: "production", entityIds: ["<YOUR_ENTITY_ID_3>"] } ] ) { items { id name ring } }}fleetControlRemoveFleetMembersミューテーションを使用して、管理対象エンティティをフリートリングから削除します。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | フリートのエンティティ ID。 |
| 配列 | はい | どのエンティティをどのリングから削除するかを指定するリング入力のリスト。 |
| 弦 | はい | 指輪の名前。 |
| 配列 | はい | リングから削除するエンティティのGUIDのリスト。 |
サンプルリクエスト
mutation RemoveFleetMembers { fleetControlRemoveFleetMembers( fleetId: "<YOUR_FLEET_ID>" members: [{ ring: "canary", entityIds: ["<YOUR_ENTITY_ID>"] }] ) { items { id ring } }}デプロイメント管理の変更
fleetControlCreateFleetDeploymentミューテーションを使用して、フリートにデプロイするエージェントのバージョンと設定を定義するデプロイメントを作成します。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| オブジェクト | はい | デプロイメント設定。 |
| ID | はい | フリートのエンティティ ID。 |
| オブジェクト | はい | エンティティのスコープ(フリートのスコープと同じ)。 |
| 配列 | はい | デプロイまでのエージェント設定の一覧。 |
| 弦 | はい | エージェントの種類。オプション:
、
、
、
、
、
、
。 |
| 弦 | はい | デプロイするエージェントのバージョン。 |
| 配列 | はい | このエージェントの設定バージョン ID のリスト。 |
| 弦 | いいえ | デプロイメント名。 |
| 弦 | いいえ | デプロイメントの説明。 |
サンプルリクエスト
mutation CreateDeployment { fleetControlCreateFleetDeployment( fleetDeployment: { fleetId: "<YOUR_FLEET_ID>" name: "Infrastructure Agent v1.50.0" description: "Deploy infra agent 1.50.0 with updated config" scope: { type: ACCOUNT, id: "YOUR_ACCOUNT_ID" } agents: [ { agentType: "NRInfra" version: "1.50.0" configurationVersionList: [{ id: "<YOUR_CONFIGURATION_ID>" }] } ] } ) { entity { id name description } }}既存のデプロイメントの設定を更新するには、 fleetControlUpdateFleetDeploymentミューテーションを使用します。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | 更新するデプロイメント ID。 |
| オブジェクト | はい | デプロイメント更新の入力。 |
| 弦 | いいえ | デプロイメント名を更新しました。 |
| 弦 | いいえ | 説明文を更新しました。 |
| 配列 | いいえ | エージェントの設定を更新しました。 |
サンプルリクエスト
mutation UpdateDeployment { fleetControlUpdateFleetDeployment( id: "<YOUR_DEPLOYMENT_ID>" fleetDeploymentUpdate: { description: "Updated to infra agent 1.50.1" agents: [ { agentType: "NRInfra" version: "1.50.1" configurationVersionList: [{ id: "<YOUR_CONFIGURATION_ID>" }] } ] } ) { entity { id name } }}fleetControlDeployミューテーションを使用してデプロイメントをトリガーし、特定のフリート リングにロールアウトします。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | トリガーするデプロイメント ID。 |
| オブジェクト | はい | どの呼び出し音にデプロイするかを指定するデプロイメント ポリシー。 |
| オブジェクト | はい | リングデプロイメントポリシー。 |
| 配列 | はい | デプロイ先のリング名のリスト。 |
サンプルリクエスト
mutation TriggerDeployment { fleetControlDeploy( id: "<YOUR_DEPLOYMENT_ID>" policy: { ringDeploymentPolicy: { ringsToDeploy: ["canary"] } } ) { fleetId }}デプロイメントを削除するには、 fleetControlDeleteFleetDeploymentミューテーションを使用します。
入力
パラメータ | データ型 | それは必須ですか? | 説明 |
|---|---|---|---|
| ID | はい | 削除するデプロイメント ID。 |
サンプルリクエスト
mutation DeleteDeployment { fleetControlDeleteFleetDeployment(id: "<YOUR_DEPLOYMENT_ID>") { id }}