如 Azure Monitor 中的 Kubernetes 监视中所述,Azure Monitor 的多个功能协同工作,以全面监视 Kubernetes 群集。 本文介绍如何为在其他云和本地运行的已启用 Arc 的群集启用以下功能:
- Prometheus 指标
- 托管型 Grafana
- 容器日志记录
- 控制平面日志
支持的群集
本文中所述的载入和配置过程支持以下群集。
- Azure 本地上的 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 节点上设置托管的 Prometheus,并配置从运行在 Windows 节点上的指标终结点抓取指标。 请查看 在启用 Arc 的集群中使用 Windows 节点进行指标收集
支持已启用 Azure Arc 的群集上的 ARM64 节点。 有关支持 ARM64 节点的已启用 Azure Arc 的群集的详细信息,请参阅 群集要求 。
先决条件
- 至少需要群集的参与者访问权限才能加入。
- 需要监视读取者或监视参与者才能在启用监视后查看数据。
- 请验证防火墙要求以及已启用 Azure Arc 的 Kubernetes 网络要求。
创建工作区
下表介绍了支持本文中启用的 Azure Monitor 功能所需的工作区。 如果还没有每种类型的现有工作区,则可以在载入过程中创建它们。 请参阅设计 Log Analytics 工作区体系结构,获取有关要创建多少个工作区以及应在何处放置工作区的指导。
| 功能 / 特点 | 工作空间 | 注释 |
|---|---|---|
| 托管 Prometheus | Azure Monitor 工作区 | 如果在载入时未指定现有的 Azure Monitor 工作区,将使用资源组的默认工作区。 如果群集所在区域尚不存在默认工作区,则将在一个名为 DefaultAzureMonitorWorkspace-<mapped_region> 的资源组中创建一个名称格式为 DefaultRG-<cluster_region> 的工作区。Contributor 权限足以允许加载项将数据发送到 Azure Monitor 工作区。 若要链接 Azure Monitor 工作区以查看 Azure 托管 Grafana 中的指标,则需要 Owner 级别权限。 这是必需项,因为执行入门步骤的用户需要能够在 Azure Monitor 工作区上为 Azure 托管 Grafana 系统标识授予 Monitoring Reader 角色,以便查询指标。 |
| 容器日志记录 控制平面日志 |
Log Analytics 工作区 | 可以将群集附加到同一Microsoft Entra 租户中不同 Azure 订阅中的 Log Analytics 工作区,但必须使用 Azure CLI 或 Azure 资源管理器模板。 目前不能使用 Azure 门户执行此配置。 如果要将现有群集连接到另一订阅中的 Log Analytics 工作区,则必须在订阅中向 Log Analytics 工作区注册 Microsoft.ContainerService 资源提供程序。 有关详细信息,请参阅注册资源供应商。 如果未指定现有的 Log Analytics 工作区,将使用资源组的默认工作区。 如果群集区域中尚不存在默认工作区,会使用 DefaultWorkspace-<GUID>-<Region> 格式的名称创建一个工作区。 |
| 托管型 Grafana | Azure 托管 Grafana 工作区](/managed-grafana/quickstart-managed-grafana-portal#create-an-azure-managed-grafana-workspace) | 将 Grafana 工作区链接到 Azure Monitor 工作区,以使从群集收集的 Prometheus 指标可供 Grafana 仪表板使用。 |
启用 Prometheus 指标和容器日志记录
在群集上启用 Prometheus 和容器日志记录时,群集中会安装 Azure Monitor 代理 的容器化版本。 可以在新的或现有群集上同时配置这些功能,也可以单独启用每个功能。
同时为集群启用托管的 Grafana 和 Prometheus 指标抓取。 有关连接 Azure Monitor 工作区和 Azure 托管 Grafana 工作区的选项,请参阅链接 Grafana 工作区。
先决条件
- 群集必须使用托管标识身份验证。
- 必须在群集和 Azure Monitor 工作区的订阅中注册以下资源提供程序:
- 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 Monitor 中默认 Prometheus 指标配置中所述的配置。 若要修改此配置,请参阅 在 Azure Monitor 托管服务中自定义抓取 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 |
是的 |
CloudEnvironment |
群集的云环境。 | Azure.Cluster.Cloud |
是的 |
MountCATrustAnchorsDirectory |
是否装载 CA 信任定位点目录。 | true |
否 |
MountUbuntuCACertDirectory |
是否装载 Ubuntu CA 证书目录。 |
除非 true 发行版,否则 aks_edge。 |
否 |
| 参数 | 名称和说明 |
|---|---|
| 批注键 | AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList在资源的 kube_resource_annotations 指标中使用的 Kubernetes 注释键的逗号分隔列表。 例如,kube_pod_annotations 是 pod 资源的注释指标。 默认情况下,此指标仅包含名称和命名空间标签。 若要包含更多注释,请提供资源名称(复数形式)和要允许使用的 Kubernetes 注释键的列表。 可为每个资源提供一个 * 以允许任何注释,但这会严重影响性能。 例如,pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],...。 |
| 标签键 | AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist资源的 kube_resource_labels 指标中使用的更多 Kubernetes 标签键的逗号分隔列表。 例如,kube_pod_labels 是 Pod 资源的标签指标。 默认情况下,此指标仅包含名称和命名空间标签。 若要包含更多标签,请提供一个复数形式的资源名称列表以及想要允许这些资源使用的 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"
支持 Arc 功能的具有前向代理的群集
如果群集配置了正向代理,则代理设置会自动应用于扩展。 对于使用 AMPLS + 代理的群集,应忽略代理配置。 使用配置设置 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
启用了 Arc 的 Windows 节点群集
已启用 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"]
}
下表描述了配置中的每个设置。
| Name | Description |
|---|---|
interval |
确定代理收集数据的频率。 有效值为 1m - 30 米(以 1 米为单位)如果该值超出允许的范围,则默认值为 1 m。 默认值:1m。 |
namespaceFilteringMode |
Include:只会从命名空间字段中的值收集数据。 Exclude:会从所有命名空间收集数据,但命名空间字段中的值除外。 Off:忽略任何命名空间选择并收集所有命名空间中的数据。 默认值:关闭 |
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 |
表流的数组。 请参阅Stream 值,了解有效流及其对应表的列表。 默认值:ContainerLogV2、KubeEvents、KubePodInventory |
数据流值
当指定要使用 CLI 或 ARM 收集的表时,请指定与 Log Analytics 工作区中的特定表相对应的流名称。 下表列出了每个表的流名称。
| Stream | 容器见解表 |
|---|---|
| Microsoft-容器清单 | ContainerInventory |
| Microsoft-ContainerLog | ContainerLog |
| Microsoft-ContainerLogV2 | ContainerLogV2 |
| Microsoft-ContainerLogV2-HighScale | ContainerLogV2(高缩放模式)1 |
| Microsoft-ContainerNodeInventory | 容器节点清单 |
| Microsoft-InsightsMetrics | InsightsMetrics |
| Microsoft-KubeEvents | KubeEvents |
| Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
| Microsoft-KubeNodeInventory | KubeNodeInventory |
| Microsoft-KubePodInventory | KubePodInventory |
| Microsoft-KubePVInventory | KubePVInventory |
| Microsoft-KubeServices | KubeServices |
| Microsoft-Perf | 性能 |
1 不要同时使用 Microsoft-ContainerLogV2 和MicrosoftContainerLogV2-HighScale。 这将导致出现重复数据。
适用的表和指标
收集频率和命名空间筛选的设置不适用于所有日志数据。 下表列出了 Log Analytics 工作区中的表以及应用于每个工作区的设置。
| 表名称 | 间隔? | 命名空间? | 注解 |
|---|---|---|---|
| ContainerInventory | 是的 | 是的 | |
| 容器节点清单 | 是的 | 否 | 数据收集的命名空间设置不适用,因为 Kubernetes 节点不是命名空间范围的资源 |
| KubeNodeInventory | 是的 | 否 | 数据收集的命名空间设置不适用,因为 Kubernetes 节点不是命名空间范围的资源 |
| KubePodInventory | 是的 | 是的 | |
| KubePVInventory | 是的 | 是的 | |
| KubeServices | 是的 | 是的 | |
| KubeEvents | 否 | 是的 | 数据收集的间隔设置不适用于 Kubernetes 事件 |
| 性能 | 是的 | 是的 | 数据收集的命名空间设置不适用于与 Kubernetes 节点相关的指标,因为 Kubernetes 节点不是命名空间范围的对象。 |
| InsightsMetrics | 是的 | 是的 | 数据收集设置仅适用于收集以下命名空间的指标:container.azm.ms/kubestate、container.azm.ms/pv 和 container.azm.ms/gpu |
注释
命名空间筛选不适用于 ama-logs 代理记录。 因此,即使 kube-system 命名空间列于排除的命名空间中,与 ama-logs 代理容器关联的记录仍将引入。
| 指标命名空间 | 间隔? | 命名空间? | 注解 |
|---|---|---|---|
| Insights.container/nodes | 是的 | 否 | 节点不是命名空间范围的资源 |
| 洞察.容器/组件 | 是的 | 是的 | |
| Insights.container/containers | 是的 | 是的 | |
| Insights.container/persistentvolumes | 是的 | 是的 |
特殊场景
请查看以下参考,了解特定方案的配置要求。
- 如果您正在使用私人链接,请查看 在 Azure Monitor 中为 Kubernetes 监控启用私人链接。
- 若要启用高缩放模式,请遵循为监视加载项启用高缩放模式中的加入过程。 还必须按照更新 ConfigMap 中的说明更新 ConfigMap,并且 DCR 流需要从
Microsoft-ContainerLogV2更改为Microsoft-ContainerLogV2-HighScale。
启用控制平面日志
控制平面日志作为 Azure Monitor 中的 资源日志 实现。 若要收集这些日志,请为群集创建 诊断设置 。 将它们发送到容器日志所在的 Log Analytics 工作区。
在 Azure CLI 中使用 az monitor diagnostic-settings create 命令来创建诊断设置。 有关参数说明,请参阅此命令的文档。
以下示例创建一个诊断设置,用于将所有 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 指标(预览版)
自托管 Prometheus 插件容器版本 6.4.0-main-02-22-2023-3ee44b9e 起,Windows 指标收集已在 Arc 启用的群集上启用。 加入 Azure Monitor 指标附加组件可使 Windows 守护进程集 pod 在节点池上开始运行。 支持 Windows Server 2019 和 Windows Server 2022。 按照以下步骤使 Pod 能够从 Windows 节点池收集指标。
注释
没有 CPU/内存限制windows-exporter-daemonset.yaml,因此可能会超额分配 Windows 节点。 有关详细信息,请参阅 资源预留
在部署工作负载时,请对容器设置资源内存和 CPU 限制。 这也会从 NodeAllocatable 中扣减,并且可以帮助群集范围的计划程序确定将哪些 pod 放置在哪些节点上。 在没有限制的情况下调度 Pod 可能会导致 Windows 节点过度配置,并且在极端情况下可能会导致节点不健康。
安装 Windows 导出程序
通过部署 windows 导出程序 YAML 文件,在节点上手动安装 Windows 导出程序以访问 Windows 指标。 启用以下收集器。 有关更多收集器,请参阅 用于 Windows 系统度量指标的 Prometheus 导出器。
[defaults]containermemoryprocesscpu_info
部署 windows-exporter-daemonset YAML 文件。 如果在节点中应用了任何污点,则需要应用适当的容忍度。
kubectl apply -f windows-exporter-daemonset.yaml
启用 Windows 指标
将windowsexporter和windowskubeproxy布尔值在指标设置 ConfigMap 中设置为true,然后将其应用到群集。 请参阅 使用 ConfigMap 自定义从 Kubernetes 集群收集 Prometheus 指标。
启用录制规则
启用开箱即用仪表板所需的录制规则:
- 如果使用 CLI 入门,请添加选项
--enable-windows-recording-rules。 - 如果使用 ARM 模板、Bicep 或 Azure Policy 载入,在参数文件中将
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
验证是否已在 Linux 节点池上正确部署 DaemonSet
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
验证是否为 Prometheus 部署了两个 ReplicaSet
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
容器日志记录
验证是否已在 Linux 节点池上正确部署 DaemonSet
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 工作区资源 ID 以及有关群集的摘要信息。
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
},
}
后续步骤
- 如果您在尝试注册时遇到问题,请查看故障排除指南。
- 了解如何在 Azure 门户的容器见解中分析 Kubernetes 监控数据。