안녕하세요?
Kubernetes 기반에서 앱을 개발하다 보면, 로컬에 있는 IDE에서 Kubernetes에서 동작하고 있는 container에 연결해서 리모트 디버깅을 해야 할 경우가 있습니다. Java에서는 JMX를 enable해서 포트만 오픈하면 상대적으로 쉽게 접근이 가능합니다만, Python에서는 이러한 리모트 디버깅을 할려면 별도의 debuging 패키지를 설치해서 실행해야만 합니다. 이러한 특정 경우를 위해서 디버깅용 서비스를 항상 띄우는 것은 굉장히 비효율적입니다.
그렇기 때문에, Kubernetes에서는 이렇게 임시적으로 POD에 임시 container를 붙이기 위한 Ephemral Container라는 기능을 제공해줍니다.
https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/
Ephemeral Container를 사용하면, 이미 동작중인 POD에 별도의 서비스 중지 및 변경없이 kubectl을 사용해서 라도 쉽게 side container처럼 추가적인 container를 붙일 수 있습니다.
kubectl debug -it <pod_name> --image=busybox --target=<container_name>
kubectl debug 명령어를 사용해서 --target으로 debugging을 위한 container name을 주면 해당 container의 namespace에 대해서도 공유를 받을 수 있어서 ps -ef 로 해당 container에서 동작중인 프로세스도 확인이 가능합니다.
그러면, 다음 글에서는 이러한 Ephemeral Container를 사용해서 VS Code/Pycharm에서 리모트 디버깅을 하는 방법에 대해서 알아보도록 하겠습니다.
'개발 > AWS EKS' 카테고리의 다른 글
[EKS] Gatekeeper (1) | 2024.04.15 |
---|---|
[EKS] Knative volume support - PVC (0) | 2024.03.06 |
DockerHub 이미지를 Private Registry에 업로드 (0) | 2024.02.19 |
[Kubernetes] initContainer 와 containers의 volume 공유 (2) | 2024.02.07 |
Containerd와 AWS ECR login 방법 (1) | 2024.01.31 |