在 AKS 上安装和配置 Inspektor 小工具扩展(预览版)

本文介绍如何在 Azure Kubernetes 服务 (AKS) 群集上安装 Inspektor 小工具群集扩展,更改其配置,并将其删除。

该扩展在 gadget 命名空间中将 Inspektor Gadget 部署为名为 gadget 的 DaemonSet。 使用az k8s-extension命令通过Azure资源管理平面对其进行管理。 若要了解如何在安装扩展后检查工作负载,请参阅 “运行小工具”以检查 AKS 上的工作负载

Important

AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

Prerequisites

  • 具有对 kubectl 访问权限的 AKS 群集。 如果还没有群集,请参阅创建 AKS 群集

  • 已安装 k8s-extension 扩展的 Azure CLI:

    az extension add --name k8s-extension
    
  • 在安装扩展之前,删除了任何现有的 Inspektor 小工具安装。 如果以前手动部署了它,请运行 kubectl gadget undeployhelm uninstall

在本文的命令中,将 myResourceGroupmyAKSCluster 替换为适合你的环境的值。

安装扩展

使用 az k8s-extension createmicrosoft.inspektorgadget 扩展类型安装扩展:

az k8s-extension create \
    --cluster-type managedClusters \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup \
    --name inspektor-gadget \
    --extension-type microsoft.inspektorgadget \
    --release-train preview

默认情况下,该扩展会自动升级其次要版本。 若要改为将其保留在已安装的版本上,请添加到 --auto-upgrade-minor-version false install 命令。

验证安装

确认已成功预配扩展,并且 DaemonSet 正在运行。 预配状态应显示 Succeeded,并且所有 gadget Pod 都应为 RunningReady

az k8s-extension show \
    --cluster-type managedClusters \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup \
    --name inspektor-gadget
kubectl get ds gadget -n gadget
kubectl get pods -n gadget -l k8s-app=gadget

配置扩展

使用 --configuration-settings 上的 az k8s-extension update 参数传递配置设置。 将设置分为两个层级:

  • 顶层的扩展设置配置扩展本身,例如集成。
  • Inspektor Gadget 设置位于 inspektor-gadget. 键下,其下又分为运行时设置(inspektor-gadget.config)和 Kubernetes 资源设置(根级)。

扩展设置

顶层设置用于配置扩展集成:

Setting Description 默认
azureMonitor.enabled 将 Gadget 指标导出到 Azure Monitor 托管的 Prometheus。 false

Inspektor 小工具设置

inspektor-gadget.config 下的运行时设置用于配置 gadget 守护程序:

Setting Description 默认
inspektor-gadget.config.daemonLogLevel 守护程序日志级别:trace、、debuginfowarningerror、或fatalpanic info
inspektor-gadget.config.hookMode 守护程序如何获取容器通知:auto、、criopodinformernrifanotify+ebpf auto
inspektor-gadget.config.operator.oci.verify-image 在运行 gadget 镜像之前验证其签名。 true
inspektor-gadget.config.operator.oci.allowed-gadgets 限制允许哪些小工具图像运行。 []

根级的 Kubernetes 资源设置用于配置 gadget DaemonSet:

Setting Description 默认
inspektor-gadget.nodeSelector 限制运行 DaemonSet 的节点。 kubernetes.io/os: linux
inspektor-gadget.tolerations gadget 容器的容忍设置。 {}
inspektor-gadget.resources CPU 和内存请求和限制。 {}
inspektor-gadget.hostPID 使用主机 PID 命名空间。 true
inspektor-gadget.additionalEnv 小工具容器的额外环境变量。 []

有关 Inspektor 小工具值的完整列表,请参阅 上游图表 values.yaml

Important

az k8s-extension update 是累加性的。 新的配置设置与现有配置设置合并。 如果更新失败,损坏的设置可能会持续存在,并阻止后续更新。 若要恢复,请再次运行 az k8s-extension update 并显式还原有问题的设置。

注释

Inspektor Gadget 不会实时获取配置更改。 更新设置后,重启 DaemonSet 以应用它们:

kubectl rollout restart daemonset/gadget -n gadget
kubectl rollout status daemonset/gadget -n gadget --timeout=120s

例如,将守护程序日志级别设置为 debug

az k8s-extension update \
    --cluster-type managedClusters \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup \
    --name inspektor-gadget \
    --configuration-settings inspektor-gadget.config.daemonLogLevel=debug \
    --yes

删除扩展

如果不再需要 Inspektor 小工具,请删除该扩展。 此操作将删除小工具 Pod、DaemonSet 和相关资源。

az k8s-extension delete \
    --cluster-type managedClusters \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup \
    --name inspektor-gadget \
    --yes

后续步骤