教程:使用 OS Guard 为 Azure Linux 启用遥测和监视(预览版)群集

Note

带有 OS Guard(预览版)的 Azure Linux 正被 Azure Container Linux(ACL)取代。

Azure容器 Linux 是用于Azure Kubernetes 服务 (AKS)的长期、不可变、容器优化的 Linux 操作系统(OS)。 它提供了一个安全、最少且可操作一致的主机 OS,旨在大规模运行容器化工作负荷。

有关详细信息,请参阅 Azure 容器 Linux (ACL) 概述

在本教程 的第 4 部分(共 5 部分)中,你将了解如何:

  • 启用 Container Insights 以监控现有集群。
  • 验证代理是否已成功部署。
  • 验证解决方案是否已启用。

下一教程介绍如何升级 Azure Linux 节点。

先决条件

  • 在前面的教程中,你已创建并部署了具有 OS Guard 群集的 Azure Linux。 若要完成本教程,需要一个现有群集。 如果尚未完成此步骤并想要继续学习,请从 教程 1 开始:使用适用于 AKS 的 OS Guard 创建具有 Azure Linux 的群集
  • 如果要将现有 AKS 群集连接到另一订阅中的 Log Analytics 工作区,则需要在订阅中向 Log Analytics 工作区注册 Microsoft.ContainerService 资源提供程序。 有关详细信息,请参阅注册资源供应商
  • 需要最新版本的 Azure CLI。 使用az version命令查找版本。 若要升级到最新版本,请使用 az upgrade 命令。

Azure Linux 使用 OS Guard 时的注意事项和限制

在开始之前,请查看以下 Azure Linux 与 OS Guard 的注意事项和限制(预览版):

连接到您的集群

启用监视之前,请务必确保已连接到正确的群集。 使用 OS Guard 群集获取 Azure Linux 的凭据,并将 kubectl 配置为使用 az aks get-credentials 命令。

az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME

启用监视

可以使用 默认 Log Analytics 工作区,或通过 指定 Log Analytics 工作区,为 Azure Linux with OS Guard 群集启用监视。 以下步骤演示如何使用任一方法为群集启用监视。

选项 1:使用默认 Log Analytics 工作区

使用以下命令检查是否已为群集启用监视加载项。 如果不是这样,该命令将使用 AKS 群集订阅的默认资源组中的默认 Log Analytics 工作区,为启用了 OS Guard 的 Azure Linux 群集启用监视。 如果区域中尚不存在工作区,则创建的默认工作区类似于以下格式: DefaultWorkspace-< GUID >-< Region >

# Check if monitoring addon is already enabled
MONITORING_ENABLED=$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query "addonProfiles.omsagent.enabled" -o tsv)

if [ "$MONITORING_ENABLED" != "true" ]; then
  az aks enable-addons --addons monitoring --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP
fi

选项 2:指定 Log Analytics 工作区

可以指定Log Analytics工作区,以便通过 OS Guard 群集监视 Azure Linux。 工作区的资源 ID 采用以下格式:"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>"

az aks enable-addons --addons monitoring --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --workspace-resource-id <workspace-resource-id>

验证代理和解决方案部署

  1. 使用以下命令验证是否已成功部署代理:

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

    示例输出:

    NAME       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    ama-logs   3         3         3       3            3           <none>          3m22s
    
  2. 使用以下命令验证解决方案的部署:

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

    示例输出:

    NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE    AGE
    ama-logs-rs    1         1         1            1            3h
    

验证解决方案配置

使用 az aks show 命令获取解决方案的配置。 使用此命令,可以检查解决方案是否已启用、Log Analytics工作区资源 ID 是什么,并获取有关群集的摘要信息。

az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query "addonProfiles.omsagent"

片刻之后,该命令将会完成,并返回有关解决方案的 JSON 格式信息。 命令结果应显示监视加载项配置文件,并类似于以下示例输出:

{
  "config": {
    "logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxx/resourceGroups/xxxxx/providers/Microsoft.OperationalInsights/workspaces/xxxxx"
  },
  "enabled": true
}

后续步骤

在本教程中,你将使用 OS Guard 群集为 Azure Linux 启用遥测和监视。 下一教程介绍如何使用 OS Guard 节点升级 Azure Linux。