运行小工具以检查 AKS 上的工作负载(预览版)

安装 Inspektor 小工具群集扩展后,使用 kubectl gadget 插件运行 小工具。 小工具是一种专用的工具,用于捕获特定类型的系统活动,例如 DNS 查询、文件访问、进程执行或网络连接,并将其与 Kubernetes 元数据相关联。

若要安装扩展,请参阅 在 AKS 上安装和配置 Inspektor 小工具扩展

Tip

本文中的示例使用一些常见的小工具。 若要浏览所有可用的小工具并选择适合你的任务,请参阅 Inspektor 小工具目录

Important

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

Prerequisites

  • 在 AKS 群集上安装的 Inspektor 小工具扩展。 请参阅 在 AKS 上安装和配置 Inspektor 小工具扩展

  • 用于运行小工具的 kubectl gadget 插件。

    若要改为从自己的工作站运行小工具,请使用 kubectl gadgetKrew 安装插件:

    kubectl krew install gadget
    

    或者,从kubectl-gadget下载 二进制文件,并将其添加到你的PATH。 验证安装:

    kubectl gadget version
    

Tip

kubectl gadget插件也可从适用于 Azure Linux 和 Ubuntu 的 Microsoft Cloud-Native 包存储库packages.microsoft.com中获取。 添加存储库后,请使用 OS 包管理器进行安装,例如tdnf install -y kubectl-gadgetAzure Linux 或 apt install -y kubectl-gadget Ubuntu 上。

界定小工具的范围

可以将小工具的范围限定为命名空间、Pod 或整个群集:

  • 用于 --namespace <namespace> 将小工具限制为单个命名空间。
  • 使用 --all-namespaces 在整个集群中运行小工具。
  • 使用 --timeout <seconds> 可在设定时长后停止小工具。
  • 使用 --fields <field-list> 选择输出中显示的列。

跟踪 DNS 查询

使用原始 Pod 捕获 DNS 查询和响应:

kubectl gadget run trace_dns \
    --namespace default \
    --timeout 30 \
    --fields k8s.node,k8s.podName,id,qr,name,rcode,nameserver

查找成功时会显示 rcodeNoError

跟踪文件访问

记录文件打开事件,包括文件名和访问标志:

kubectl gadget run trace_open \
    --namespace default \
    --timeout 30 \
    --fields k8s.node,k8s.podName,comm,fname,flags,error

flags 字段显示访问模式,例如 O_RDONLY 读取和 O_WRONLY 写入。

跟踪进程执行过程

使用命令、PID 和参数报告进程创建事件:

kubectl gadget run trace_exec \
    --namespace default \
    --timeout 30 \
    --fields k8s.node,k8s.podName,comm,pid,args

comm 字段显示执行的二进制文件的名称。

跟踪 TCP 连接

捕获所有命名空间中带有源地址和目标地址的 TCP accept 和 close 事件:

kubectl gadget run trace_tcp \
    --all-namespaces \
    --timeout 30

后续步骤