включить эфемерные контейнеры AWS EKS
Я пытаюсь отладить 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?
2 ответа
В выпуске Kubernetes v1.23 (пока недоступном в EKS) функция эфемерных контейнеров перешла из альфа-версии в бета-версию.
Когда EKS добавит поддержку Kubernetes v1.23, возможно, это будет включать в себя API эфемерного контейнера. Невозможно с уверенностью сказать, по какому пути пойдет здесь AWS.
Если EKS добавляет поддержку этого API, убедитесь, что вы применяете соответствующие ограничения. Возможность запуска эфемерного контейнера меняет поверхность атаки для вашей рабочей нагрузки и кластера, на котором он работает.
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
/ #