file

Task:

使用 Trivy 开源容器扫描器检测 namespace kamino 中 具有严重漏洞的镜像 的 Pod。

查找具有 HighCritical 严重性漏洞的镜像,并删除使用这些镜像的 Pod 。

注意:Trivy 仅安装在 cluster 的 master 节点上, 在工作节点上不可使用。 你必须切换到 cluster 的 master 节点才能使用 Trivy


参考资料:

https://kubernetes.io/zh-cn/docs/reference/kubectl/cheatsheet/#格式化输出


解答:
  1. 切换集群

    kubectl config use-context KSSC00401
  2. 查看namespace下pod 和image

    kubectl get pods -n kamino -o=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image"

    file

  3. 提取镜像名并进行扫描

    kubectl describe pod -n kamino | grep -i image: |awk '{print $2}' | sort -u

    file 扫描并显示结果

    for i in `kubectl describe pod -n kamino | grep -i image: |awk '{print $2}' | sort -u`; do trivy -q image -s HIGH,CRITICAL $i | grep -iEB3 "HIGH:|CRITICAL:" ; done

    file 可以看到除了amazonlinux:2 其他镜像都存在高危漏洞, 对应之前的pod和images列表 删除包含漏洞的image即可

  4. 删除包含漏洞的pod

    kubectl -n kamino delete pod tri111 tri222 tri333

    file