Azure Arc 対応 Kubernetes クラスター拡張機能をデプロイして管理する
Arc 対応 Kubernetes クラスターで拡張機能インスタンスを作成し、更新と構成に関連するオプションなど、必須パラメーターと省略可能なパラメーターを設定できます。 拡張機能インスタンスを表示、一覧表示、更新、削除することもできます。
始める前に、Arc 対応 Kubernetes クラスターの拡張機能に関する概念の概要を読み、現在使用できる拡張機能の一覧を確認してください。
前提条件
Azure CLI の最新バージョン。
connectedk8s
とk8s-extension
Azure CLI 拡張機能の最新バージョン。 次のコマンドを実行して、これらの拡張機能をインストールします。az extension add --name connectedk8s az extension add --name k8s-extension
connectedk8s
およびk8s-extension
拡張機能が既にインストールされている場合は、次のコマンドを使って、それらが最新バージョンに更新されていることを確認します。az extension update --name connectedk8s az extension update --name k8s-extension
少なくとも 1 つのノードのオペレーティング システムとアーキテクチャの種類が
linux/amd64
である、既存の Azure Arc 対応 Kubernetes 接続クラスター。 Flux (GitOps) をデプロイする場合は、linux/amd64
ノードなしで ARM64 ベースのクラスターを使用できます。- クラスターをまだ接続していない場合は、クイックスタートを使用してください。
- 最新バージョンにエージェントをアップグレードします。
拡張機能インスタンスの作成
拡張機能の新しいインスタンスを作成するには、k8s-extension create
を使用し、必要なパラメーターの値を渡します。
この例では、Azure Arc 対応 Kubernetes クラスターに Azure Monitor Container Insights 拡張機能インスタンスが作成されます。
az k8s-extension create --name azuremonitor-containers --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
出力:
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": null,
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Note
サービスでは、48 時間よりも長く機密情報を保持できません。 Azure Arc 対応 Kubernetes エージェントが 48 時間より長くネットワークに接続しておらず、クラスターに拡張機能を作成するかどうか判断できない場合、拡張機能は Failed
状態に切り替わります。 そうなった場合は、k8s-extension create
をもう一度実行して、拡張機能の新しい Azure リソースを作成する必要があります。
Azure Monitor Container Insights は、シングルトン拡張機能です (クラスターごとに 1 つのみ必要)。 Azure Monitor Container Insights (拡張機能なし) の以前の Helm チャート インストールをクリーンアップしてから、拡張機能を介して同じものをインストールする必要があります。 az k8s-extension create
を実行する前に、Helm チャートを削除する手順に従ってください。
必須のパラメーター
az k8s-extension create
を使って拡張機能インスタンスを作成するときは、次のパラメーターが必要です。
パラメーター名 | 説明 |
---|---|
--name |
拡張機能インスタンスの名前 |
--extension-type |
クラスターにインストールする拡張機能の種類。 例: Microsoft.AzureMonitor.Containers、microsoft.azuredefender.kubernetes |
--scope |
拡張機能のインストールのスコープ: cluster または namespace |
--cluster-name |
拡張機能インスタンスを作成する必要がある Azure Arc 対応 Kubernetes リソースの名前 |
--resource-group |
Azure Arc 対応 Kubernetes リソースを含むリソース グループ |
--cluster-type |
拡張機能インスタンスを作成する必要があるクラスターの種類。 ほとんどのシナリオでは、Azure Arc 対応 Kubernetes クラスターに対応する connectedClusters を使います。 |
オプション パラメーター
シナリオでの必要に応じて、必須パラメーターと共に、これらの省略可能なパラメーターを 1 つ以上使います。
Note
auto-upgrade-minor-version
を true
に設定することで、拡張機能のインスタンスを最新のマイナー バージョンとパッチ バージョンに自動的にアップグレードできます。または、代わりに --version
パラメーターを使って、拡張機能のインスタンスのバージョンを手動で設定することもできます。 最新のセキュリティ パッチと機能を常に使用できるように、マイナー バージョンとパッチ バージョンの自動アップグレードを有効にすることをお勧めします。
メジャー バージョンのアップグレードには破壊的変更が含まれる可能性があるため、拡張機能インスタンスの新しいメジャー バージョンの自動アップグレードはサポートされていません。 いつ新しいメジャー バージョンに拡張機能インスタンスを手動でアップグレードするかは、ユーザーが選択できます。
パラメーター名 | 説明 |
---|---|
--auto-upgrade-minor-version |
拡張機能のマイナー バージョンを自動的にアップグレードするかどうかを決定するブール型プロパティ。 既定の設定は true です。 このパラメーターが true に設定されている場合、バージョンは動的に更新されるため、version パラメーターは設定できません。 false に設定すると、パッチ バージョンであってもも、拡張機能は自動的にアップグレードされません。 |
--version |
インストールする拡張機能のバージョン (拡張機能インスタンスの固定先の特定バージョン)。 auto-upgrade-minor-version を true に設定する場合は、指定しないようにする必要があります。 |
--configuration-settings |
機能を制御するために拡張機能に渡すことができる設定。 これらは、パラメーター名の後で、key=value のペアをスペースで区切って渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings-file は使用できません。 |
--configuration-settings-file |
拡張機能に構成設定を渡すために使用される key=value のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings は使用できません。 |
--configuration-protected-settings |
GET API の呼び出しまたは az k8s-extension show コマンドを使って取得できない設定。 通常、機密の設定を渡すために使われます。 これらは、パラメーター名の後で、key=value のペアをスペースで区切って渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings-file は使用できません。 |
--configuration-protected-settings-file |
拡張機能に機密の設定を渡すために使われる key=value のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings は使用できません。 |
--release-namespace |
このパラメーターは、リリースを作成する名前空間を示します。 scope が cluster に設定されている場合にのみ関連します。 |
--release-train |
拡張機能の作成者は、Stable 、Preview など、さまざまなリリース トレインでバージョンを公開できます。このパラメーターが明示的に設定されていない場合、既定値として Stable が使用されます。 |
--target-namespace |
リリースを作成する名前空間を示します。 この拡張機能インスタンスに対して作成されたシステム アカウントのアクセス許可は、この名前空間に制限されます。 scope が namespace に設定されている場合にのみ関連します。 |
拡張機能の詳細を表示する
現在インストールされている拡張機能インスタンスの詳細を表示するには、k8s-extension show
を使用し、必須パラメーターの値を渡します。
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
出力:
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Installed",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": "2021-04-02T12:13:49.636+00:00",
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
クラスターにインストールされているすべての拡張機能を一覧表示する
クラスターにインストールされているすべての拡張機能の一覧を表示するには、k8s-extension list
を使って、必須パラメーターの値を渡します。
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
出力:
[
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-15T02:26:03.5519523+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "Microsoft.AzureMonitor.Containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
"lastStatusTime": null,
"name": "myExtInstanceName",
"releaseTrain": "Stable",
"resourceGroup": "myRG",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName1"
}
},
"statuses": [],
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
},
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-02T00:41:16.8005159+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuredefender.kubernetes",
"id": "/subscriptions/0e849346-4343-582b-95a3-e40e6a648ae1/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
"lastStatusTime": null,
"name": "microsoft.azuredefender.kubernetes",
"releaseTrain": "Stable",
"resourceGroup": "myRg",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName2"
}
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
}
]
拡張機能インスタンスの更新
Note
--configuration-settings
および --configuration-protected-settings
の更新可能な特定の設定について理解するには、特定の拡張機能の種類のドキュメントを参照してください。 --configuration-protected-settings
の場合、更新する設定が 1 つだけでも、すべての設定を指定することが想定されています。 これらの設定のいずれかを省略した場合、これらの設定は古いと見なされ、削除されます。
既存の拡張機能インスタンスを更新するには、k8s-extension update
を使い、必須と省略可能のパラメーターの値を渡します。 必須パラメーターと省略可能パラメーターは、拡張機能インスタンスの作成に使われるものと若干異なります。
次の例では、Azure Machine Learning 拡張機能インスタンスの auto-upgrade-minor-version
の設定を true
に更新します。
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters
更新に必要なパラメーター
パラメーター名 | 説明 |
---|---|
--name |
拡張機能インスタンスの名前 |
--cluster-name |
拡張機能インスタンスを作成する必要があるクラスターの名前 |
--resource-group |
クラスターを含むリソース グループ |
--cluster-type |
拡張機能インスタンスを作成する必要があるクラスターの種類。 Azure Arc 対応 Kubernetes クラスターの場合、connectedClusters を使います。 AKS クラスターの場合、managedClusters を使います。 |
オプションの更新パラメーター
パラメーター名 | 説明 |
---|---|
--auto-upgrade-minor-version |
拡張機能のマイナー バージョンを自動的にアップグレードするかどうかを指定するブール型プロパティ。 既定の設定は true です。 このパラメーターが true に設定されている場合、バージョンは動的に更新されるため、version パラメーターは設定できません。 false に設定すると、パッチ バージョンであってもも、拡張機能は自動的にアップグレードされません。 |
--version |
インストールする拡張機能のバージョン (拡張機能インスタンスの固定先の特定バージョン)。 auto-upgrade-minor-version が true に設定されている場合、指定しないでください。 |
--configuration-settings |
機能を制御するために拡張機能に渡すことができる設定。 これらは、パラメーター名の後で、key=value のペアをスペースで区切って渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings-file は使用できません。 更新を必要とする設定のみを指定する必要があります。 指定した設定が、指定した値で置き換えられます。 |
--configuration-settings-file |
拡張機能に構成設定を渡すために使われる key=value のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-settings は使用できません。 |
--configuration-protected-settings |
GET API の呼び出しまたは az k8s-extension show コマンドを使って取得できない設定。 通常、機密の設定を渡すために使われます。 これらは、パラメーター名の後で、key=value のペアをスペースで区切って渡します。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings-file は使用できません。 保護された設定を更新するときは、すべての保護された設定を指定する必要があります。 これらの設定のいずれかを省略した場合、これらの設定は古いと見なされ、削除されます。 |
--configuration-protected-settings-file |
拡張機能に機密の設定を渡すために使われる key=value のペアを含む JSON ファイルへのパス。 このパラメーターをコマンドで使用する場合、同じコマンドで --configuration-protected-settings は使用できません。 |
--scope |
拡張機能のインストールのスコープ - cluster または namespace 。 |
--release-train |
拡張機能の作成者は、Stable 、Preview など、さまざまなリリース トレインでバージョンを公開できます。このパラメーターが明示的に設定されていない場合、既定値として Stable が使用されます。 |
拡張機能インスタンスをアップグレードする
前に説明したように、auto-upgrade-minor-version
を true に設定した場合、新しいマイナー バージョンがリリースされると、拡張機能が自動的にアップグレードされます。 ほとんどのシナリオでは、自動アップグレードを有効にすることをお勧めします。 auto-upgrade-minor-version
を false に設定した場合は、新しいバージョンが必要になったら、拡張機能を手動でアップグレードする必要があります。
手動アップグレードは、拡張機能の新しいメジャー インスタンスを取得する場合にも必要です。 メジャー バージョンのアップグレードによって予期しない破壊的変更が発生するのを避けるため、いつアップグレードするかはユーザーが選択できます。
拡張機能インスタンスを手動でアップグレードするには、k8s-extension update
を使い、version
パラメーターを設定してバージョンを指定します。
この例では、Azure Machine Learning 拡張機能インスタンスをバージョン x.y.z に更新します。
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
拡張機能インスタンスを削除する
クラスター上の拡張機能インスタンスを削除するには、k8s-extension delete
を使って、必須パラメーターの値を渡します。
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Note
この拡張機能を表す Azure リソースはただちに削除されます。 Kubernetes クラスターで実行されているエージェントがネットワークに接続していて、目的の状態を取得するために Azure サービスに再びアクセスできる場合にのみ、この拡張機能に関連するクラスターの Helm リリースが削除されます。
次のステップ
- az k8s-extension CLI リファレンスで、すべてのコマンドとパラメーターの一覧を確認します。
- Arc 対応 Kubernetes クラスターでの拡張機能の動作の詳細を理解します。
- Azure Arc 対応 Kubernetes で現在使用できるクラスター拡張機能を確認します。
- 拡張機能に関する問題の解決に関するヘルプを表示します。