共用方式為


Nexus Kubernetes 叢集概觀

每個 Nexus Kubernetes 叢集都包含多個層:

  • 虛擬機器 (VM)
  • Kubernetes 層
  • 應用程式 Pod

螢幕擷取畫面顯示範例 Nexus Kube 叢集。

圖:範例 Nexus Kubernetes 叢集

在執行個體上,Nexus Kube 叢集會透過選擇性容器深入解析可檢視性解決方案來傳遞。 容器深入解析會從 Nexus Kubernetes 叢集和工作負載擷取記錄和計量。 要啟用此工具或是部署您自己的遙測堆疊完全取決於您。

具有 Azure 監視工具的 Nexus Kubernetes 叢集如下所示:

Nexus Kube 叢集與監視工具的螢幕擷取畫面。

圖:Nexus Kubernetes 叢集與監視工具

使用受控識別驗證透過 CLI 上線的延伸模組

Azure CLI 開始的文件,如何透過多個作業系統安裝,以及如何安裝 CLI 延伸模組

安裝最新版的必要 CLI 延伸模組

Nexus Kubernetes 叢集概觀

本操作指南提供使用 Azure 監視代理程式從這些 VM 收集系統記錄的步驟。 指示會進一步介紹如何設定將記錄資料收集到 Log Analytics 工作區的詳細步驟。

必要條件

  • Nexus Kubernetes 叢集的叢集系統管理員存取權。

  • 若要使用已啟用 Azure Arc 的伺服器,請在您的訂用帳戶中註冊以下 Azure 資源提供者:

    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity

如果先前未完成,請註冊這些資源提供者:

az account set --subscription "{the Subscription Name}"
az provider register --namespace 'Microsoft.HybridCompute'
az provider register --namespace 'Microsoft.GuestConfiguration'
az provider register --namespace 'Microsoft.HybridConnectivity'
  • 視需要將 Azure 服務主體指派給下列 Azure 內建角色。 將服務主體指派給包含目標連線電腦的 Azure 資源群組:
角色 需要:
Azure Connected Machine 資源管理員參與者 在資源群組中連線已啟用 Arc 的 Nexus Kubernetes 叢集 VM 伺服器,並安裝 Azure 監視代理程式 (AMA)
監視參與者參與者 在資源群組中建立資料收集規則 (DCR),並將已啟用 Arc 的伺服器關聯至規則
使用者存取系統管理員,以及資源原則參與者參與者 如果您想要使用 Azure 原則指派來確定 DCR 已與已啟用 Arc 的電腦產生關聯,則為必要項目
Kube 延伸模組參與者 針對容器深入解析部署 K8s 延伸模組的必要項目

Nexus Kubernetes 叢集概觀

必要條件

運算子應該確定某些必要條件,才能在 Nexus Kubernetes 叢集上設定監視工具。

容器深入解析會將其資料儲存在 Log Analytics 工作區中。 記錄數據會流入您在安裝 Container Insights 擴充功能期間所提供的資源識別碼工作區。 否則,資料會流入與您的訂用帳戶相關聯資源群組中的預設工作區 (根據 Azure 位置)。

美國東部的範例如下所示:

  • Log Analytics 工作區名稱:DefaultWorkspace-<GUID>-EUS
  • 資源群組名稱:DefaultResourceGroup-EUS

執行下列命令以取得預先存在的 Log Analytics 工作區資源識別碼

az login

az account set --subscription "<Subscription Name or ID the Log Analytics workspace is in>"

az monitor log-analytics workspace show --workspace-name "<Log Analytics workspace Name>" \
  --resource-group "<Log Analytics workspace Resource Group>" \
  -o tsv --query id

若要在適用的 Log Analytics 工作區中部署容器深入解析並檢視資料,您必須在帳戶中具有特定角色指派。 例如「參與者」角色指派。 請參閱指派必要角色的指示:

  • Log Analytics 參與者角色:在 CNF (已佈建) 叢集上啟用容器監視的必要權限。
  • Log Analytics 讀者角色:非 Log Analytics 參與者角色的成員,一旦您啟用容器監視,即可獲得在 Log Analytics 工作區中檢視資料的權限。

安裝叢集延伸模組

登入 Azure Cloud Shell 以存取叢集:

az login

az account set --subscription "<Subscription Name or ID the Provisioned Cluster is in>"

現在,使用下列兩個命令之一,在已佈建 Nexus Kubernetes 叢集上部署容器深入解析延伸模組:

使用客戶預先建立的 Log Analytics 工作區

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings logAnalyticsWorkspaceResourceID="<Log Analytics workspace Resource ID>" \
  amalogsagent.useAADAuth=true

使用預設 Log Analytics 工作區

az k8s-extension create --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters \
  --extension-type Microsoft.AzureMonitor.Containers \
  --release-train preview \
  --configuration-settings amalogsagent.useAADAuth=true

驗證叢集延伸模組

使用下列命令驗證 Nexus Kubernetes 叢集上的監視代理程式啟用已成功部署:

az k8s-extension show --name azuremonitor-containers \
  --cluster-name "<Nexus Kubernetes cluster Name>" \
  --resource-group "<Nexus Kubernetes cluster Resource Group>" \
  --cluster-type connectedClusters

尋找延伸模組的「成功」佈建狀態。 "k8s-extension create" 命令也可能會傳回狀態。

自訂記錄和計量收集

Container Insights 提供使用者功能,以微調來自 Nexus Kubernetes 叢集的記錄和計量集合。 如需詳細資訊,請參閱設定容器深入解析代理程序數據收集指示。

注意

根據預設,Container Insights 不會從 kube-system 命名空間收集記錄。 若要從 kube-system 命名空間收集記錄,您必須設定代理程式從命名空間收集記錄 kube-system 。 做法是遵循組態方法,從 excludedNamespaces ConfigMapconfigMap 中的欄位移除kube-system命名空間。

[log_collection_settings]
  [log_collection_settings.stdout]
    # In the absence of this configmap, default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stdout' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absence of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namespace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

  [log_collection_settings.stderr]
    # Default value for enabled is true
    enabled = true
    # exclude_namespaces setting holds good only if enabled is set to true
    # kube-system,gatekeeper-system log collection are disabled by default in the absence of 'log_collection_settings.stderr' setting. If you want to enable kube-system,gatekeeper-system, remove them from the following setting.
    # If you want to continue to disable kube-system,gatekeeper-system log collection keep the namespaces in the following setting and add any other namespace you want to disable log collection to the array.
    # In the absence of this configmap, default value for exclude_namespaces = ["kube-system","gatekeeper-system"]
    exclude_namespaces = ["gatekeeper-system"]
    # If you want to collect logs from only selective pods inside system namespaces add them to the following setting. Provide namespace:controllerName of the system pod. NOTE: this setting is only for pods in system namespaces
    # Valid values for system namespaces are: kube-system, azure-arc, gatekeeper-system, kube-public, kube-node-lease, calico-system. The system namespace used should not be present in exclude_namespaces
    # collect_system_pod_logs = ["kube-system:coredns"]

額外資源