Nexus Kubernetes 叢集概觀
每個 Nexus Kubernetes 叢集都包含多個層:
- 虛擬機器 (VM)
- Kubernetes 層
- 應用程式 Pod
圖:範例 Nexus Kubernetes 叢集
在執行個體上,Nexus Kube 叢集會透過選擇性的容器深入解析可檢視性解決方案來傳遞。 容器深入解析會從 Nexus Kubernetes 叢集和工作負載擷取記錄和計量。 要啟用此工具或是部署您自己的遙測堆疊完全取決於您。
具有 Azure 監視工具的 Nexus Kubernetes 叢集如下所示:
圖: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"]
額外資源
- 檢閱活頁簿文件,然後使用運算子連接點遙測範例運算子連接點活頁簿。
- 檢閱 Azure 監視器警示、如何建立 Azure 監視器警示規則,並使用範例運算子連接點警示範本。