注意事项

这份流程会考虑到:

  1. Helm 的正确安装和卸载。
  2. Service 端口缺失的补丁方案
  3. tetra CLI 工具的正确使用。
  4. 多终端同步操作和日志过滤。
  5. 动态 Pod 名称查找。

请严格按照步骤执行,并确保在各自的终端窗口中操作。


Tetragon 完整部署与测试流程

前提条件

  1. Kubernetes 集群: 已准备就绪,推荐至少 2 个节点(一个 Master,一个 Worker)以模拟真实环境,确保 Tetragon DaemonSet 能部署到 Worker 节点。

  2. kubectl: 已配置好,可以连接到你的 Kubernetes 集群。

  3. Helm: 已安装并可用于管理 Kubernetes 应用。

  4. tetra CLI 工具: 已下载到你的工作目录,或者已添加到系统 PATH 中。如果它在当前目录,后续命令请使用 ./tetra

  5. 测试 Pod 定义文件: test-pod.yaml,内容如下:

    # test-pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
    name: busybox-test
    namespace: default # 确保是 default 命名空间,这样不会被 Tetragon 的默认 denylist 过滤
    spec:
    containers:
    - name: busybox
    image: busybox:latest
    command: ["sleep", "3600"]
    restartPolicy: Never

步骤 1: 清理现有 Tetragon 安装 (确保干净状态)

为了避免 cannot re-use a name 错误和残留配置,我们先进行一次彻底的卸载。

  1. 卸载 Tetragon Release:

    helm uninstall tetragon -n kube-system

    等待命令完成。

  2. 确认所有 Tetragon 资源已删除:

    kubectl get pods -n kube-system -l app.kubernetes.io/name=tetragon
    kubectl get service -n kube-system tetragon

    你应该看到 No resources foundNotFound 的输出。


步骤 2: 安装 Tetragon (不含 gRPC 端口)

我们将使用 Helm 安装 Tetragon,但由于 Chart 的默认行为或你环境的特定问题,Service 暂时不会包含 gRPC 端口。我们将在下一步手动添加它。

  1. 添加 Tetragon Helm 仓库 (如果尚未添加):

    helm repo add cilium https://helm.cilium.io/
    helm repo update
  2. 安装 Tetragon Chart:

    • 我们只启用 enablePolicyDeny,因为 grpc.enabled 暂时不会通过 Chart 生效。
    helm install tetragon cilium/tetragon -n kube-system --create-namespace \
    --set tetragon.enablePolicyDeny=true

    等待安装完成,会显示 STATUS: deployed

  3. 验证 Tetragon Pods 状态:

    kubectl get pods -n kube-system -l app.kubernetes.io/name=tetragon -o wide

    你应该看到每个工作节点上都有一个 tetragon-xxxxx Pod,且 STATUSRunningREADY2/2记下你 busybox-test Pod 所在的节点上的那个 Tetragon Pod 的完整名称 (例如 tetragon-2j8bb)。

    root@10-241-243-194:~# kubectl get pod -n kube-system -l app.kubernetes.io/name=tetragon -o wide
    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
    tetragon-2j8bb 2/2 Running 0 98m 10.241.243.195 10.241.243.195 <none> <none>
    tetragon-6hjvp 2/2 Running 0 98m 10.241.243.204 10.241.243.204 <none> <none>
    tetragon-fglkn 2/2 Running 0 99m 10.241.243.182 10.241.243.182 <none> <none>
    tetragon-jx8n2 2/2 Running 0 98m 10.241.243.200 10.241.243.200 <none> <none>
    tetragon-nz4f4 2/2 Running 0 98m 10.241.243.202 10.241.243.202 <none> <none>
    tetragon-qngrg 2/2 Running 0 98m 10.241.243.193 10.241.243.193 <none> <none>
    tetragon-z8h7g 2/2 Running 0 99m 10.241.243.194 10.241.243.194 <none> <none>

步骤 3: 手动打补丁,为 Tetragon Service 添加 gRPC 端口 (关键一步)

  1. 执行 Service 补丁命令:
    这个命令会为 tetragon Service 添加一个 grpc 端口 50051,并将其转发到 Tetragon Pod 内部的 54321 端口。

    kubectl patch service -n kube-system tetragon --type=json -p='[{"op":"add", "path":"/spec/ports/-", "value":{"name":"grpc", "port":50051, "protocol":"TCP", "targetPort":54321}}]'

    你应该看到 service/tetragon patched 的输出。

  2. 验证 Service 补丁是否成功:

    kubectl get service -n kube-system tetragon -o yaml

    在输出的 spec.ports 部分,确认除了 metrics 端口 2112 之外,还有一个 grpc 端口 50051 及其 targetPort: 54321

    ports:
    - name: metrics
    port: 2112
    protocol: TCP
    targetPort: 2112
    - name: grpc # <--- 这一段必须存在!
    port: 50051
    protocol: TCP
    targetPort: 54321

步骤 4: 部署测试 Pod

  1. 部署 busybox-test Pod:

    kubectl apply -f test-pod.yaml

    等待 Pod 变为 Running 状态。

  2. 确认 busybox-test Pod 所在的节点:

    kubectl get pod busybox-test -o wide

    确认 NODE 列显示的节点名称(例如 10.241.243.195)。确保它与步骤 2 中 Tetragon Pod 所在节点一致。

    root@10-241-243-194:~# kubectl get pod busybox-test -o wide
    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
    busybox-test 0/1 Completed 0 102m 10.227.12.143 10.241.243.195 <none> <none>

步骤 5: 启动端口转发 (连接 tetra CLI)

新的终端窗口 (称之为 终端 A) 中执行。这个命令会将你本地机器的端口转发到 Tetragon Service,让 tetra CLI 可以连接。

kubectl port-forward -n kube-system service/tetragon 50051:50051 &
  • & 会让命令在后台运行。
  • 你应该看到 Forwarding from 127.0.0.1:50051 -> 54321 的输出。
  • 重要:请保持此终端窗口打开,不要关闭它,也不要按 Ctrl+C

步骤 6: 使用 tetra CLI 监听事件

新的终端窗口 (称之为 终端 B) 中执行。这将是你在命令执行后观察事件的主要窗口。

# 假设 tetra 可执行文件在当前目录
./tetra getevents --pod busybox-test
  • 这个命令会启动,连接到 Tetragon Service,并开始等待事件。它会保持打开状态。

步骤 7: 在测试 Pod 中生成活动 (触发事件)

新的终端窗口 (称之为 终端 C) 中执行。

  1. 进入 busybox-test Pod 的 shell:

    kubectl exec -it busybox-test -- sh
  2. 在 Pod 内部执行以下命令,并立即观察 终端 B (步骤 6 的窗口):

    / # ls -l /
    / # cat /etc/resolv.conf
    / # echo "Hello Tetragon! Events should appear now." > /tmp/successful_test.txt
    / # rm /tmp/successful_test.txt
    / # ping -c 3 google.com # 如果 Pod 有网络连接,可以尝试
    / # exit

步骤 8: 观察 tetra CLI 输出 (验证成功)

回到 终端 B (运行 ./tetra getevents --pod busybox-test 的窗口)。

你应该会看到实时输出的 JSON 格式事件日志,清晰地显示了你在 busybox-test Pod 中执行的命令 (例如 process_exec 事件)、文件操作 (例如 file 事件) 和网络活动 (例如 network 事件)。

这些事件的 pod 字段中将包含 name: busybox-test,明确表明事件来源于你的测试 Pod。


步骤 9: 直接查看 Tetragon Agent 容器的日志 (备用验证/调试)

如果终端 B 仍然没有输出,作为备用方案,你可以直接查看 Tetragon Agent 容器的日志。

  1. 打开一个新的终端窗口 (称之为 终端 D)。
  2. 获取正确节点上的 Tetragon Pod 名称:
    # 请替换 busybox-test 所在的节点IP,例如 10.241.243.195
    TETRAGON_POD_NAME=$(kubectl get pod -n kube-system -l app.kubernetes.io/name=tetragon -o wide | grep 10.241.243.195 | awk '{print $1}')
    echo $TETRAGON_POD_NAME
  3. 查看 export-stdout 容器的实时日志,并过滤 busybox-test:
    kubectl logs -n kube-system -f $TETRAGON_POD_NAME -c export-stdout | grep busybox-test
    再次在终端 C 中执行命令,观察终端 D。如果这里有输出,那么问题就可能在于 tetra CLI 工具本身或其与 gRPC 服务的交互上。如果这里也没有输出,那么 Tetragon Agent 可能有更深层次的问题 (尽管我们已经排除了很多,但值得再次确认)。

步骤10:大部分情况步骤8和9都会过滤数据导致并没有内容输出

所以我们可以使用这个命令来进行观察tetragon-2j8bb是和busybox-test在同一个节点的容器

kubectl logs -n kube-system -f tetragon-2j8bb -c export-stdout | grep busybox-test

接着就可以看到具体的命令内容了

{"process_exec":{"process":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzUwMDU2MDQ0MzkxODE6MzUzNzE2Mg==", "pid":3537162, "uid":0, "cwd":"/", "binary":"/bin/ls", "arguments":"-l /", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:55:57.842249287Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":18}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "tid":3537162, "in_init_tree":false}, "parent":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "pid":3521685, "uid":0, "cwd":"/", "binary":"/bin/sh", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:41:33.835403377Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":7}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1MjM5NjgyNTI6MzUyMTY3Ng==", "tid":3521685, "in_init_tree":false}}, "node_name":"10.241.243.195", "time":"2025-05-28T07:55:57.842248921Z"}
{"process_exit":{"process":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzUwMDU2MDQ0MzkxODE6MzUzNzE2Mg==", "pid":3537162, "uid":0, "cwd":"/", "binary":"/bin/ls", "arguments":"-l /", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:55:57.842249287Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":18}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "tid":3537162, "in_init_tree":false}, "parent":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "pid":3521685, "uid":0, "cwd":"/", "binary":"/bin/sh", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:41:33.835403377Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":7}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1MjM5NjgyNTI6MzUyMTY3Ng==", "tid":3521685, "in_init_tree":false}, "time":"2025-05-28T07:55:57.843689313Z"}, "node_name":"10.241.243.195", "time":"2025-05-28T07:55:57.843689040Z"}
{"process_exec":{"process":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzUxMDgxNTAzMzY2MjI6MzUzOTA2MQ==", "pid":3539061, "uid":0, "cwd":"/", "binary":"/bin/ls", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:57:40.388146458Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":19}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "tid":3539061, "in_init_tree":false}, "parent":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "pid":3521685, "uid":0, "cwd":"/", "binary":"/bin/sh", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:41:33.835403377Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":7}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1MjM5NjgyNTI6MzUyMTY3Ng==", "tid":3521685, "in_init_tree":false}}, "node_name":"10.241.243.195", "time":"2025-05-28T07:57:40.388146343Z"}
{"process_exit":{"process":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzUxMDgxNTAzMzY2MjI6MzUzOTA2MQ==", "pid":3539061, "uid":0, "cwd":"/", "binary":"/bin/ls", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:57:40.388146458Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":19}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "tid":3539061, "in_init_tree":false}, "parent":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "pid":3521685, "uid":0, "cwd":"/", "binary":"/bin/sh", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:41:33.835403377Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":7}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1MjM5NjgyNTI6MzUyMTY3Ng==", "tid":3521685, "in_init_tree":false}, "time":"2025-05-28T07:57:40.389316320Z"}, "node_name":"10.241.243.195", "time":"2025-05-28T07:57:40.389316160Z"}
{"process_exec":{"process":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzUxMTk1MDQyMjQyMDQ6MzUzOTM0Mw==", "pid":3539343, "uid":0, "cwd":"/", "binary":"/bin/whoami", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:57:51.742034053Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":20}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "tid":3539343, "in_init_tree":false}, "parent":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "pid":3521685, "uid":0, "cwd":"/", "binary":"/bin/sh", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:41:33.835403377Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":7}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1MjM5NjgyNTI6MzUyMTY3Ng==", "tid":3521685, "in_init_tree":false}}, "node_name":"10.241.243.195", "time":"2025-05-28T07:57:51.742033918Z"}
{"process_exit":{"process":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzUxMTk1MDQyMjQyMDQ6MzUzOTM0Mw==", "pid":3539343, "uid":0, "cwd":"/", "binary":"/bin/whoami", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:57:51.742034053Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":20}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "tid":3539343, "in_init_tree":false}, "parent":{"exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1OTc1OTMwODE6MzUyMTY4NQ==", "pid":3521685, "uid":0, "cwd":"/", "binary":"/bin/sh", "flags":"execve rootcwd clone", "start_time":"2025-05-28T07:41:33.835403377Z", "auid":4294967295, "pod":{"namespace":"default", "name":"busybox-test", "container":{"id":"containerd://aa1009c7d69d06276b0dcf55b29f8c3303df59ca92d29f647e4bb56d1f8dde8a", "name":"busybox", "image":{"id":"ascotbe.com/library/busybox@sha256:ce4f0c0a6e67a3a1469e7a8e1fe781f64ba7c652823fdf2d5eac677dd4d095d6", "name":"ascotbe.com/library/busybox:latest"}, "start_time":"2025-05-28T07:41:31Z", "pid":7}, "workload":"busybox-test", "workload_kind":"Pod"}, "docker":"aa1009c7d69d06276b0dcf55b29f8c3", "parent_exec_id":"MTAuMjQxLjI0My4xOTU6MTg4MzQxNDE1MjM5NjgyNTI6MzUyMTY3Ng==", "tid":3521685, "in_init_tree":false}, "time":"2025-05-28T07:57:51.743016824Z"}, "node_name":"10.241.243.195", "time":"2025-05-28T07:57:51.743016640Z"}

清理资源

测试完成后,清理你的 Kubernetes 资源:

  1. 删除测试 Pod:
    kubectl delete -f test-pod.yaml
  2. 停止端口转发:
    回到 终端 A,按下 Ctrl+C 来终止 kubectl port-forward 命令。
  3. 卸载 Tetragon:
    helm uninstall tetragon -n kube-system

查看容器日志

进入容器

kubectl exec -it -n kube-system tetragon-2j8bb -c tetragon -- sh

查看日志

tail -f /var/run/cilium/tetragon/tetragon.log

日志每10M大小就会进行打包