Kubernetes

컨테이너 root로 접속하는 방법(containerd)

백곰곰 2023. 11. 7. 22:34
728x90
반응형

EKS 1.24 이후부터 EKS optimized AMI에 docker 명령어가 포함되지 않습니다.
간혹 테스트를 위해 파드의 컨테이너가 실행된 user가 아닌 root user로 컨테이너에 접근이 필요할 때 아래 방법을 사용할 수 있습니다.
 

방법 1) ctr 명령어

1. 접근 필요한 파드가 배포된 노드에 ssh로 접속
2. 컨테이너 id 및 task 확인

## container id
$ ctr -n k8s.io containers list | grep -i <image 명>
## task id
$ ctr -n k8s.io task ls | grep <ContainerID>

 
3. 컨테이너 접속

$ ctr -n k8s.io task exec -t --exec-id 0 --user root <ContainerID> /bin/bash

 

방법 2) runc 명령어

1. 컨테이너 id 확인

$ kubectl describe po <Pod명> -n <Namespace>

 
2. 접근 필요한 파드가 배포된 노드에 ssh로 접속
3. 컨테이너 접속

$ runc --root /run/containerd/runc/k8s.io/ exec -t -u 0 <ContainerID> sh

 

728x90