本文介绍如何在 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 undeploy或helm uninstall。
在本文的命令中,将 myResourceGroup 和 myAKSCluster 替换为适合你的环境的值。
安装扩展
使用 az k8s-extension create 和 microsoft.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 都应为 Running 和 Ready。
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、、debug、infowarning、error、或fatalpanic。 |
info |
inspektor-gadget.config.hookMode |
守护程序如何获取容器通知:auto、、crio、podinformer或nrifanotify+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