Azure Arc 対応 Kubernetes クラスター拡張機能をデプロイして管理する
[アーティクル] 2024/10/16
14 人の共同作成者
フィードバック
この記事の内容
前提条件
拡張機能インスタンスの作成
拡張機能の詳細を表示する
クラスターにインストールされているすべての拡張機能を一覧表示する
拡張機能インスタンスの更新
拡張機能インスタンスをアップグレードする
拡張機能インスタンスを削除する
次のステップ
さらに 4 個を表示
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"
}
注意
サービスでは、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 つ以上使います。
注意
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"
}
]
注意
--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
注意
この拡張機能を表す Azure リソースはただちに削除されます。 Kubernetes クラスターで実行されているエージェントがネットワークに接続していて、目的の状態を取得するために Azure サービスに再びアクセスできる場合にのみ、この拡張機能に関連するクラスターの Helm リリースが削除されます。