Tetragon的實踐
tetragon是cilium的子項目,基于ebpf監控容器的進程行為、文件訪問、網絡訪問,以及特權的使用,本周按照官方指導進行了簡單實踐,
安裝tetragon,
helm repo add cilium https://helm.cilium.io,
helm repo update,
helm install tetragon cilium/tetragon -n kube-system,
安裝Tetragon CLI工具,
GOOS=$(go env GOOS),
GOARCH=$(go env GOARCH),
curl -L --remote-name-all https://github.com/cilium/tetragon/releases/download/tetragon-cli/tetragon-${GOOS}-${GOARCH}.tar.gz{,.sha256sum},
sha256sum --check tetragon-${GOOS}-${GOARCH}.tar.gz.sha256sum,
sudo tar -C /usr/local/bin -xzvf tetragon-${GOOS}-${GOARCH}.tar.gz,
rm tetragon-${GOOS}-${GOARCH}.tar.gz{,.sha256sum},
驗證進程執行監控,安裝測試容器,
wget https://raw.githubusercontent.com/cilium/cilium/v1.11/examples/minikube/http-sw-app.yaml,
kubectl apply -f http-sw-app.yaml,
進入容器執行命令,
kubectl exec -it xwing -- /bin/bash,
whoami,
查看監控效果,
kubectl logs -n kube-system ds/tetragon -c export-stdout -f | tetragon observe --namespace default --pod xwing,

驗證文件訪問監控,安裝文件訪問監控策略,
wget https://raw.githubusercontent.com/cilium/tetragon/main/crds/examples/sys_write_follow_fd_prefix.yaml,
kubectl apply -f sys_write_follow_fd_prefix.yaml,
進入容器執行命令,
kubectl exec -it xwing -- /bin/bash,
vi /etc/passwd,
查看監控效果,
kubectl logs -n kube-system ds/tetragon -c export-stdout -f | tetragon observe --namespace default --pod xwing,

驗證網絡訪問監控,安裝網絡訪問監控策略,
wget https://raw.githubusercontent.com/cilium/tetragon/main/crds/examples/tcp-connect.yaml,
kubectl apply -f tcp-connect.yaml,
執行網絡訪問命令,kubectl exec -it xwing -- curl http://cilium.io,
查看監控效果,
kubectl logs -n kube-system ds/tetragon -c export-stdout -f | tetragon observe --namespace default --pod xwing,

驗證特權使用監控,安裝測試容器,
wget https://raw.githubusercontent.com/cilium/tetragon/main/testdata/specs/testpod.yaml,
kubectl apply -f testpod.yaml,
查看監控效果,
kubectl logs -n kube-system ds/tetragon -c export-stdout -f | tetragon observe --namespace default --pod test-pod,
