お使いのハイブリッド クラスターの監視を停止する方法
Kubernetes クラスターの監視を有効にした後に、その監視が必要なくなったと判断した場合は、Container insights でのクラスターの監視を停止できます。 この記事では、これを次の環境で実現する方法について説明します。
- Azure および Azure Stack 上の AKS エンジン
- OpenShift バージョン 4 以上
- Azure Arc 対応 Kubernetes (プレビュー)
Helm を使用して停止する方法
次の手順は、次の環境に適用されます。
- Azure および Azure Stack 上の AKS エンジン
- OpenShift バージョン 4 以上
まず、helm の次のコマンドを実行し、お使いのクラスターに Container insights の helm チャートがインストールされていることを確認します。
helm list
出力は次のようになります。
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION azmon-containers-release-1 default 3 2020-04-21 15:27:24.1201959 -0700 PDT deployed azuremonitor-containers-2.7.0 7.0.0-1
azmon-containers-release-1 は、Container insights の helm チャートのリリースです。
次の helm コマンドを実行して、このチャート リリースを削除します。
helm delete <releaseName>
例:
helm delete azmon-containers-release-1
これにより、クラスターからこのリリースが削除されます。 これは、
helm list
コマンドを実行して確認できます。NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
設定の変更が完了するまで数分かかります。 Helm では、お使いのリリースの削除後もそれを追跡するので、クラスターの履歴を監査し、helm rollback
を使用して、リリースの削除を取り消すこともできます。
Azure Arc 対応 Kubernetes 上で監視を停止する方法
PowerShell の使用
次のコマンドを使用し、監視アドオンを使用してクラスターを構成するスクリプトをローカル フォルダーにダウンロードし、保存します。
wget https://aka.ms/disable-monitoring-powershell-script -OutFile disable-monitoring.ps1
Azure Arc 対応 Kubernetes クラスター リソースのリソース ID を表す
subscriptionId
、resourceGroupName
、clusterName
の対応する値を設定することによって、$azureArcClusterResourceId
変数を構成します。$azureArcClusterResourceId = "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>"
コマンド
kubectl config get-contexts
を実行することによって、クラスターの kube-context で$kubeContext
変数を構成します。 現在のコンテキストを使用する場合は、この値を""
に設定します。$kubeContext = "<kubeContext name of your k8s cluster>"
次のコマンドを実行して、クラスターの監視を停止します。
.\disable-monitoring.ps1 -clusterResourceId $azureArcClusterResourceId -kubeContext $kubeContext
サービス プリンシパルを使用する
スクリプト disable-monitoring.ps1 では、対話型デバイス ログインが使用されます。 非対話型のログインを望む場合、既存のサービス プリンシパルを使用するか、「前提条件」の説明にある必須のアクセス許可が与えられたサービス プリンシパルを新規作成できます。 サービス プリンシパルを使用するには、$servicePrincipalClientId、$servicePrincipalClientSecret、$tenantId パラメーターを、enable-monitoring.ps1 スクリプトに使用するサービス プリンシパルの値と共に渡す必要があります。
$subscriptionId = "<subscription Id of the Azure Arc-connected cluster resource>"
$servicePrincipal = New-AzADServicePrincipal -Role Contributor -Scope "/subscriptions/$subscriptionId"
$servicePrincipalClientId = $servicePrincipal.ApplicationId.ToString()
$servicePrincipalClientSecret = [System.Net.NetworkCredential]::new("", $servicePrincipal.Secret).Password
$tenantId = (Get-AzSubscription -SubscriptionId $subscriptionId).TenantId
次に例を示します。
\disable-monitoring.ps1 -clusterResourceId $azureArcClusterResourceId -kubeContext $kubeContext -servicePrincipalClientId $servicePrincipalClientId -servicePrincipalClientSecret $servicePrincipalClientSecret -tenantId $tenantId
Bash の使用
次のコマンドを使用し、監視アドオンを使用してクラスターを構成するスクリプトをローカル フォルダーにダウンロードし、保存します。
curl -o disable-monitoring.sh -L https://aka.ms/disable-monitoring-bash-script
Azure Arc 対応 Kubernetes クラスター リソースのリソース ID を表す
subscriptionId
、resourceGroupName
、clusterName
の対応する値を設定することによって、azureArcClusterResourceId
変数を構成します。export azureArcClusterResourceId="/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>"
コマンド
kubectl config get-contexts
を実行することによって、クラスターの kube-context でkubeContext
変数を構成します。export kubeContext="<kubeContext name of your k8s cluster>"
クラスターの監視を停止するには、デプロイ シナリオに応じてさまざまなコマンドが用意されています。
現在のコンテキストを使用してクラスターの監視を停止するには、次のコマンドを実行します。
bash disable-monitoring.sh --resource-id $azureArcClusterResourceId
コンテキストを指定してクラスターの監視を停止するには、次のコマンドを実行します。
bash disable-monitoring.sh --resource-id $azureArcClusterResourceId --kube-context $kubeContext
サービス プリンシパルを使用する
Bash スクリプト disable-monitoring.sh では、対話型デバイス ログインが使用されます。 非対話型のログインを望む場合、既存のサービス プリンシパルを使用するか、「前提条件」の説明にある必須のアクセス許可が与えられたサービス プリンシパルを新規作成できます。 サービス プリンシパルを使用するには、enable-monitoring.sh Bash スクリプトに使用するサービス プリンシパルの --client-id、--client-secret、--tenant-id 値を渡す必要があります。
subscriptionId="<subscription Id of the Azure Arc-connected cluster resource>"
servicePrincipal=$(az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/${subscriptionId}")
servicePrincipalClientId=$(echo $servicePrincipal | jq -r '.appId')
servicePrincipalClientSecret=$(echo $servicePrincipal | jq -r '.password')
tenantId=$(echo $servicePrincipal | jq -r '.tenant')
次に例を示します。
bash disable-monitoring.sh --resource-id $azureArcClusterResourceId --kube-context $kubeContext --client-id $servicePrincipalClientId --client-secret $servicePrincipalClientSecret --tenant-id $tenantId
次のステップ
クラスターを監視するためだけに作成した Log Analytics ワークスペースが不要になった場合は、それを手動で削除する必要があります。 ワークスペースを削除する方法の詳細については、Azure Log Analytics ワークスペースの削除に関するページを参照してください。