針對啟用 Azure Arc 之 Kubernetes 叢集啟用監視

如 Azure 監視器中的 Kubernetes 監視中所述,Azure 監視器的多個功能會一起運作,以提供 Kubernetes 叢集的完整監視。 本文說明如何針對在其他雲端和內部部署中執行的已啟用 Arc 叢集啟用下列功能:

  • Prometheus 指標
  • 受控 Grafana
  • 容器記錄
  • 控制層日誌

支援的叢集

本文所述的上線和設定程式支援下列叢集。

  • Azure Local 上的 AKS
  • AKS 邊緣程式集
  • Canonical
  • Azure 上的叢集 API 提供者
  • Azure Stack Edge 上的 K8s
  • Red Hat OpenShift 發行版,包括 Azure Red Hat OpenShift (ARO)
  • SUSE Rancher (Rancher Kubernetes 引擎)
  • SUSE Rancher K3s
  • VMware(TKG)

對於支援 Arc 且 有 Windows 節點的叢集,你可以在叢集內的 Linux 節點上設置 Managed Prometheus,並從 Windows 節點上運行的指標端點設定擷取指標。 請參見 在具有 Windows 節點的 Arc 啟用叢集中啟用度量收集

支援在 Azure Arc 啟用叢集上的 ARM64 節點。 如需支援 ARM64 節點之已啟用 Azure Arc 叢集的詳細數據,請參閱 叢集需求 。

先決條件

建立工作區

下表說明支援本文中啟用的 Azure 監視器功能所需的工作區。 如果您還沒有每種類型的現有工作區,您可以在上線流程中建立它們。 請參閱設計Log Analytics工作區架構,以取得要建立的工作區數目和放置位置的指引。

特徵 / 功能 工作空間 註釋
受控 Prometheus Azure 監視器工作區 如果您在上線時未指定現有的 Azure 監視器工作區,則會使用資源群組的預設工作區。 若叢集區域中還沒有預設工作區,則名稱格式為 DefaultAzureMonitorWorkspace-<mapped_region> 的工作區將在名稱為 DefaultRG-<cluster_region> 的資源群組建立。

Contributor 權限足以讓附加元件將資料傳送至 Azure 監視器工作區。 連結 Azure 監視器工作區以檢視 Azure 受控 Grafana 中的計量時,您將需要 Owner 層級權限。 這是必要的,因為執行上線步驟的使用者必須能夠提供 Azure 受控 Grafana 系統識別 Monitoring Reader 角色在 Azure 監視器工作區上查詢計量。
容器記錄
控制層日誌
Log Analytics 工作區 您可以將叢集連結至相同 Microsoft Entra 租使用者中不同 Azure 訂用帳戶中的 Log Analytics 工作區,但您必須使用 Azure CLI 或 Azure Resource Manager 範本。 您目前無法使用 Azure 入口網站執行此設定。

如果您要將現有的叢集連接到另一個訂用帳戶中的Log Analytics工作區,則必須在訂用帳戶中向Log Analytics工作區註冊 Microsoft.ContainerService 資源提供者。 如需詳細資訊,請參閱 註冊資源提供者。

如果您未指定現有的 Log Analytics 工作區,則會使用資源群組的預設工作區。 若叢集區域中還沒有預設工作區,則會使用格式為 DefaultWorkspace-<GUID>-<Region> 的名稱建立一個工作區。

欲了解用於預設工作區的支援對應配對清單,請參閱容器深入解析支援的區域對應。 如需如何使用網路安全界限設定工作區的指引,請參閱使用網路安全界限設定 Azure 監視器。
受控 Grafana Azure 受控 Grafana 工作區 將 Grafana 工作區連結至 Azure 監視器工作區,讓從叢集收集的 Prometheus 計量可供 Grafana 儀表板使用。

啟用 Prometheus 指標和容器記錄

當您在叢集上啟用 Prometheus 和容器記錄時,叢集中會安裝容器化版本的 Azure 監視器代理程式 。 您可以在新的或現有的叢集上同時設定這些功能,或個別啟用每個功能。

在為您的叢集啟用受控 Grafana 的同時,啟用 Prometheus 計量的抓取。 如需連結 Azure 監視器工作區和 Azure 受控 Grafana 工作區的選項,請參閱連結 Grafana 工作區。

先決條件

  • 叢集必須使用受控識別驗證。
  • 下列資源提供者必須在叢集和 Azure 監視器工作區的訂用帳戶中註冊:
    • Microsoft.ContainerService(微軟容器服務)
    • Microsoft.Insights
    • Microsoft.AlertsManagement
    • Microsoft.Monitor
  • 下列資源提供者必須在 Grafana 工作區訂用帳戶中註冊:
    • Microsoft.Dashboard

先決條件

  • CLI 2.49.0 版或更高版本中預設有受控識別驗證。

Prometheus 指標

使用 azure-monitor-metrics 選項搭配 az k8s-extension create 以安裝抓取 Prometheus 計量的度量附加元件。 這會使用 Azure 監視器中的預設 Prometheus 計量設定中所述的設定。 如需修改此設定,請參閱 在 Azure 監視器適用於 Prometheus 的受控服務中自訂 Prometheus 計量的抓取。

請參閱下列範例。

### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics

## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>

### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>


### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"

範例

az k8s-extension create --name azuremonitor-metrics --cluster-name "my-cluster"--resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.monitor/accounts/my-workspace" grafana-resource-id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Dashboard/grafana/my-workspace"

選擇性參數

下列額外的選擇性參數適用於已啟用 Azure Arc 的叢集:

參數 Description 預設 上游 Arc 叢集設定
ClusterDistribution 叢集的分佈。 Azure.Cluster.Distribution yes
CloudEnvironment 叢集的雲端環境。 Azure.Cluster.Cloud yes
MountCATrustAnchorsDirectory 是否要掛載 CA 信任錨點目錄。 true no
MountUbuntuCACertDirectory 是否要掛接Ubuntu CA 憑證目錄。 true,除非是 aks_edge 發行版本。 no
參數 名稱和描述
註釋鍵 AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList

Kubernetes 註解索引鍵的逗號分隔清單,要在資源的 kube_resource_annotations 計量中使用。 例如,kube_pod_annotations 是 Pod 資源的註釋計量。 根據預設,計量只包含名稱和命名空間標籤。 若要包含更多註釋,請提供資源名稱的複數形式列表以及您想為這些資源允許的 Kubernetes 註釋鍵。 您可以改為對於每個資源提供單一 *,允許任何註釋,但會產生嚴重的效能影響。 例如: pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],... 。
標籤索引鍵 AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist

以逗號分隔的更多 Kubernetes 標籤索引鍵清單,用於資源的 kube_resource_labels 計量 kube_resource_labels 計量。 例如,kube_pod_labels 是 pods 資源的標籤指標。 根據預設此計量只包含名稱和命名空間標籤。 若要包含更多標籤,請以複數形式提供資源名稱清單,以及您想要允許它們的 Kubernetes 標籤索引鍵:每個資源都可以提供單一 * 以允許任何標籤,但這具有嚴重的效能影響。 例如: pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],... 。

容器日誌

使用 azuremonitor-containers 選項搭配 az k8s-extension create 來安裝記錄附加元件。

請參閱下列範例。

### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>

### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true

### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings  amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi

### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>

### Customize log collection settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true dataCollectionSettings='{"interval":"1m","namespaceFilteringMode": "Include", "namespaces": [ "kube-system"],"enableContainerLogV2": true,"streams": ["<streams to be collected>"]}'

檢視 Helm 圖表的資源要求和限制區段,以取得可用的組態設定。

範例

az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"

具有正向 Proxy 的已啟用 Arc 的叢集

如果已將叢集設為正向 Proxy,則 Proxy 設定會自動套用至延伸模組。 如果是具有 AMPLS + Proxy 的叢集,應該忽略 Proxy 設定。 使用組態設定 amalogs.ignoreExtensionProxySettings=true 將延伸模組上線。

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true

帶有 Windows 節點的 Arc 啟用叢集

管理式身份驗證不支援已啟用 Arc 的 Windows 節點 Kubernetes 叢集。 藉由指定 amalogs.useAADAuth=false 來使用舊版驗證,如下列範例所示。

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false

刪除延伸模組執行個體

下列命令只會刪除延伸模組執行個體,但不會刪除 Log Analytics 工作區。 Log Analytics 資源內的資料會保持不變。

az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>

記錄配置檔

若要自訂叢集的日誌收集設定,您可以使用下列格式將組態提供為 JSON 檔案。 如果您未提供組態檔,則會使用下表中識別的預設設定。

{
  "interval": "1m",
  "namespaceFilteringMode": "Include",
  "namespaces": ["kube-system"],
  "enableContainerLogV2": true, 
  "streams": ["Microsoft-Perf", "Microsoft-ContainerLogV2"]
}

下表說明組態中的每個設定。

名稱 Description
interval 決定代理程式收集資料的頻率。 有效值為 1m - 30m,間隔為 1m 如果值超出允許範圍,則預設為 1 m。

預設值:1 分鐘。
namespaceFilteringMode 包含:只從 [命名空間] 欄位中的值收集資料。
排除:從 [命名空間] 欄位中的值以外的所有命名空間收集資料。
關閉:忽略所有 命名空間 的選擇,並收集所有命名空間的資料。

預設值:關閉
namespaces 以逗號分隔的 Kubernetes 命名空間陣列,可根據 namespaceFilteringMode 收集庫存和效能資料。
例如,搭配 Include 的 namespaces = ["kube-system", "default"] 設定只會收集這兩個命名空間。 如果使用 Exclude 設定,則代理程式會從kube-system 和 default 以外的所有其他命名空間收集資料。 如果使用 Off 設定,代理程式會從所有命名空間收集資料,包括 kube-system 和 default。 無效和無法辨識的命名空間會被忽略。

沒有。
enableContainerLogV2 啟用 ContainerLogV2 結構描述的布林值旗標。 如果設定為 true,stdout/stderr 記錄會擷取至 ContainerLogV2 資料表。 如果未設定,除非在 ConfigMap 中另有指定,否則容器記錄會擷取至 ContainerLog 資料表。 指定個別資料流時,您必須包含 ContainerLog 或 ContainerLogV2 的對應資料表。

預設值:True
streams 資料表網流陣列。 請參閱 串流值 ,以取得有效串流及其對應資料表的清單。

預設:Microsoft-ContainerInsights-Group-Default

串流值

當你指定要用 CLI 或 BICEP/ARM 收集的資料表時,你會指定對應 Log Analytics 工作區中特定資料表的串流名稱。 下表列出了溪流名稱及其對應的表。

備註

如果您熟悉資料收集規則的結構,則會在 DCR 的 dataFlows 區段中指定此資料表中的資料流名稱。

Stream 容器深入解析資料表
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerLogV2-HighScale ContainerLogV2 (高縮放模式)1
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf
Microsoft-ContainerInsights-Group-Default 包含上述所有直播的群組串流。2

1 不要同時使用 Microsoft-ContainerLogV2 和 Microsoft-ContainerLogV2-HighScale。 這會導致資料重複。 2 使用群組串流作為簡寫,指定所有個別串流。 如果你想收集特定的串流集合,就分別指定每個串流,而不是使用群組串流。

適用的資料表和計量

收集頻率和命名空間篩選的設定不會套用至所有記錄資料。 下表列出了 Log Analytics 工作區中的資料表及其套用於每個資料表的設定。

資料表名稱 間隔? 命名空間? 備註
ContainerInventory Yes Yes
ContainerNodeInventory Yes 否 用於命名空間的資料收集設定不適用,因為 Kubernetes 節點不是以命名空間為範圍的資源
KubeNodeInventory Yes 否 用於命名空間的資料收集設定不適用,Kubernetes 節點不是以命名空間為範圍的資源
KubePodInventory Yes Yes
KubePVInventory Yes Yes
KubeServices Yes Yes
KubeEvents 否 Yes 用於間隔的資料收集設定不適用於 Kubernetes 事件
Perf Yes Yes 用於命名空間的資料收集設定不適用於 Kubernetes 節點相關計量,因為 Kubernetes 節點不是以命名空間為範圍的物件。
InsightsMetrics Yes Yes 資料收集設定僅適用於收集下列命名空間的計量收集:container.azm.ms/kubestate、container.azm.ms/pv 和 container.azm.ms/gpu

備註

命名空間篩選不適用於 ama-logs 代理程式記錄。 因此,即使 kube-system 命名空間列在排除的命名空間中,仍會內嵌與 ama-logs 代理程式容器相關聯的記錄。

計量命名空間 間隔? 命名空間? 備註
Insights.container/nodes Yes 否 節點不是以命名空間為範圍的資源
Insights.container/pods Yes Yes
Insights.container/containers Yes Yes
Insights.container/persistentvolumes Yes Yes

特殊場景

請查看以下參考資料,以瞭解特定案例的組態需求。

啟用控制平面記錄

控制平面記錄會在 Azure 監視器中實作為 資源記錄 。 若要收集這些記錄,請建立叢集的 診斷設定 。 將它們傳送至與容器記錄相同的 Log Analytics 工作區。

使用 az monitor diagnostic-settings create 命令,使用 Azure CLI 建立診斷設定。 請參閱此命令的文件,以取得其參數的說明。

下列範例會建立診斷設定,將所有 Kubernetes 類別傳送至 Log Analytics 工作區。 這包括 資源特定模式 ,可將記錄傳送至 Microsoft.ContainerService/fleets 支援的資源記錄中列出的特定資料表。

az monitor diagnostic-settings create \
--name 'Collect control plane logs' \
--resource  /subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ContainerService/managedClusters/<cluster-name> \
--workspace /subscriptions/<subscription ID>/resourcegroups/<resource group name>/providers/microsoft.operationalinsights/workspaces/<log analytics workspace name> \
--logs '[{"category": "karpenter-events","enabled": true},{"category": "kube-audit","enabled": true},
{"category": "kube-apiserver","enabled": true},{"category": "kube-audit-admin","enabled": true},{"category": "kube-controller-manager","enabled": true},{"category": "kube-scheduler","enabled": true},{"category": "cluster-autoscaler","enabled": true},{"category": "cloud-controller-manager","enabled": true},{"category": "guard","enabled": true},{"category": "csi-azuredisk-controller","enabled": true},{"category": "csi-azurefile-controller","enabled": true},{"category": "csi-snapshot-controller","enabled": true},{"category": "fleet-member-agent","enabled": true},{"category": "fleet-member-net-controller-manager","enabled": true},{"category": "fleet-mcs-controller-manager","enabled": true}]'
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--export-to-resource-specific true

啟用 Windows 計量 (預覽版)

Windows 指標收集自 Managed Prometheus 外掛容器版本 6.4.0-main-02-22-2023-3ee44b9e 起啟用。 當你加入 Azure 監視器 Metrics 外掛時,Windows DaemonSet Pods 會開始在你的節點池上執行。 Windows Server 2019 和 Windows Server 2022 都有支援。 請遵循下列步驟,讓 Pod 從您的 Windows 節點集區收集計量。

備註

這個windows-exporter-daemonset.yaml檔案不會設定 CPU 或記憶體限制,所以可能會過度配置 Windows 節點。 欲了解更多資訊,請參閱 資源保留。

當您部署工作負載時,請設定容器的資源儲存體和 CPU 限制。 此設定也會從 NodeAllocatable 中扣除,並協助叢集層級的排程器判斷應將哪些 Pod 放置到哪些節點上。 若排程 Pod 而未予限制,可能會造成過度佈建 Windows 節點,且在某些極端情況下,甚至造成節點狀況不良。

安裝 Windows 匯出工具

要存取 Windows 指標,請手動在叢集節點安裝 windows-exporter-exporter,並部署 windows-exporter-daemonset YAML 檔案。 啟用下列收集器。 如需更多收集器,請參閱 適用於 Windows 指標的 Prometheus 匯出工具。

  • [defaults]
    • container
    • memory
    • process
    • cpu_info

部署 windows-exporter-daemonset YAML 檔案。 如果節點有污染,你需要施加適當的容忍度。

kubectl apply -f windows-exporter-daemonset.yaml

啟用 Windows 計量

在指標設定 ConfigMap 中將 windowsexporter 和 windowskubeproxy 布林值 設定為 true ,並將其套用至叢集。 請參閱 使用 ConfigMap 自訂 Kubernetes 叢集的 Prometheus 指標集合。

啟用錄製規則

開啟立即可用儀表板所需的錄製規則:

  • 如果您使用 CLI 上線,請包含選項 --enable-windows-recording-rules。
  • 如果你是用 ARM 範本、Bicep 或 Azure 原則 來導入,請在參數檔裡設定enableWindowsRecordingRules為 。true
  • 如果叢集已上線,請使用此 ARM 範本和此參數檔案來建立規則群組。 這個過程會新增必要的錄影規則,並非叢集上的 ARM 操作。 這不會影響叢集目前的監控狀態。

新增抓取作業

設定在叢集中的 Linux 節點上執行的受控 Prometheus,以從在 Windows 節點上執行的端點抓取計量。 將下列抓取工作新增至ama-metrics-prometheus-config-configmap.yaml,然後將該 configmap 套用到您的叢集。

  scrape_configs:
    - job_name: windows-exporter
      scheme: http
      scrape_interval: 30s
      label_limit: 63
      label_name_length_limit: 511
      label_value_length_limit: 1023
      tls_config:
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__meta_kubernetes_node_name]
        target_label: instance
      - action: keep
        source_labels: [__meta_kubernetes_node_label_kubernetes_io_os]
        regex: windows
      - source_labels:
        - __address__
        action: replace
        target_label: __address__
        regex: (.+?)(\:\d+)?
        replacement: $$1:9182

確認部署

使用 kubectl 命令行工具 來確認代理程式是否已正確部署。

受控 Prometheus

確認 DaemonSet 是否正確部署在 Linux 節點池上

kubectl get ds ama-metrics-node --namespace=kube-system

Pod 的數量應該與叢集中的 Linux 節點數量相符。 輸出應類似下列範例:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-node   1         1         1       1            1           <none>          10h

確認 Windows 節點是否正確部署

kubectl get ds ama-metrics-win-node --namespace=kube-system

Pod 的數量應該與叢集中的 Windows 節點數量相符。 輸出應類似下列範例:

User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME                   DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-metrics-win-node   3         3         3       3            3           <none>          10h

確認這兩個 ReplicaSets 是否已部署於 Prometheus。

kubectl get rs --namespace=kube-system

輸出應類似下列範例:

User@aksuser:~$kubectl get rs --namespace=kube-system
NAME                            DESIRED   CURRENT   READY   AGE
ama-metrics-5c974985b8          1         1         1       11h
ama-metrics-ksm-5fcf8dffcd      1         1         1       11h

容器洞察與日誌記錄

確認 DaemonSets 是否正確部署在 Linux 節點池中

kubectl get ds ama-logs --namespace=kube-system

Pod 的數量應該與叢集中的 Linux 節點數量相符。 輸出應類似下列範例:

User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-logs   2         2         2         2            2           <none>          1d

確認 Windows 節點是否正確部署

kubectl get ds ama-logs-windows --namespace=kube-system

Pod 的數量應該與叢集中的 Windows 節點數量相符。 輸出應類似下列範例:

User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME                   DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR     AGE
ama-logs-windows           2         2         2         2            2       <none>            1d

驗證容器記錄解決方案的部署

kubectl get deployment ama-logs-rs --namespace=kube-system

輸出應類似下列範例:

User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
ama-logs-rs   1/1     1            1           24d

使用 CLI 來檢視設定

使用 aks show 命令來了解解決方案已啟用、Log Analytics 工作區資源識別碼,以及叢集的摘要資訊。

az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>

此命令會傳回解決方案的 JSON 格式資訊。 addonProfiles 區段應包含 omsagent 的相關資訊,如下列範例所示:

"addonProfiles": {
    "omsagent": {
        "config": {
            "logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
            "useAADAuth": "true"
        },
        "enabled": true,
        "identity": null
    },
}

後續步驟