我正在尝试调试一个 distroless POD,尝试kubectl debug
使用 aws eks 中默认禁用的临时容器。我使用的是 aws eks 1.21
✗ kubectl debug -it opentelemetry-collector-agent-6hqvf --image=busybox --target=some-app
error: ephemeral containers are disabled for this cluster (error from server: "the server could not find the requested resource")
那么如何为 EKS 启用它们?
答案1
Kubernetes v1.23 版本(尚未在 EKS 上提供)将临时容器功能从 alpha 版本移至 beta 版本。
当 EKS 增加对 Kubernetes v1.23 的支持时,可能会包括临时容器 API。目前还不能肯定地说 AWS 会朝哪个方向发展。
如果 EKS 确实添加了对此 API 的支持,请确保您应用了适当的限制。运行临时容器的能力会改变您的工作负载及其运行的集群的攻击面。
答案2
AWS EKS 1.23 现在包含以下功能
✗ k exec -ti ebs-csi-node-gn5g6 -- bash
Defaulted container "ebs-plugin" out of: ebs-plugin, node-driver-registrar, liveness-probe, debugger-sbn42 (ephem)
OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown
command terminated with exit code 126
并通过临时容器:
✗ k debug -ti ebs-csi-node-gn5g6 --image=busybox --target=ebs-plugin
Targeting container "ebs-plugin". If you don't see processes from this container it may be because the container runtime doesn't support this feature.
Defaulting debug container name to debugger-fzpnj.
If you don't see a command prompt, try pressing enter.
/ # ls
bin dev etc home proc root sys tmp usr var
/ #