본문 바로가기

리눅스

쿠버네티스에서 실행 중인 컨테이너에 대화형 셀로 접근하는 방법

반응형

쿠버네티스에서 실행 중인 컨테이너에 대화형 셀로 접근하는 방법

kubectl exec 명령어를 통해 Kubernetes 클러스터에서 실행 중인 컨테이너 내부로 들어가서 대화형 셀을 실행할 수 있습니다.

1. 실행 중인 Pod 확인

쿠버네티스 클러스터에서 실행 중인 Pod를 확인해야 합니다.

kubectl get pods

현재 네임스페이스에서 실행 중인 모든 Pod의 목록을 출력합니다. 특정 네임스페이스에서 Pod를 확인하려면 -n 플래그를 사용합니다.

kubectl get pods -n <namespace>

2. Pod의 컨테이너 목록 확인

만약 Pod 안에 여러 컨테이너가 있을 경우 해당 Pod의 컨테이너 목록을 확인할 수 있습니다.

kubectl get pod <pod-name> -o jsonpath='{.spec.containers[*].name}'

3. Pod의 컨테이너에 대화형 셀로 접근

kubectl exec 명령어를 사용하여 실행 중인 Pod의 컨테이너에 대화형 셀로 접근할 수 있습니다.

기본적으로 /bin/sh 또는 /bin/bash 셸을 사용합니다.

kubectl exec -it <pod-name> -- /bin/sh

만약 Pod에 여러 컨테이너가 있고 특정 컨테이너에 접속하려면 -c 플래그를 사용하여 컨테이너 이름을 지정합니다.

kubectl exec -it <pod-name> -- /bin/sh

4. Bash 셸 사용

일부 컨테이너에서는 sh 대신 bash가 기본 셸로 설정되어 있을 수 있습니다. 이 경우 sh 대신 bash를 사용하여 접속합니다.

kubectl exec -it <pod-name> -- /bin/bash

또는 특정 컨테이너에 대해서

kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
728x90

사용 예시

파드, 서비스, 디플로이먼트 확인

kubectl get pod,service,deployment -o wide -n jenkins
$ kubectl get pod,service,deployment -o wide -n jenkins
NAME                           READY   STATUS    RESTARTS   AGE   IP           NODE     NOMINATED NODE   READINESS GATES
pod/jenkins-794699f9bc-pwtrh   1/1     Running   0          8d    10.244.3.6   bk8sn3   <none>           <none>

NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE   SELECTOR
service/jenkins        NodePort    10.98.152.104   <none>        8080:30000/TCP   8d    app=jenkins
service/jenkins-jnlp   ClusterIP   10.110.21.239   <none>        50000/TCP        8d    app=jenkins

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES                SELECTOR
deployment.apps/jenkins   1/1     1            1           8d    jenkins      jenkins/jenkins:lts   app=jenkins

컨테이너에 대화형 셀로 접근

kubectl exec -it pod/jenkins-794699f9bc-pwtrh -n jenkins -- bash
$ kubectl exec -it pod/jenkins-794699f9bc-pwtrh -n jenkins -- bash
jenkins@jenkins-794699f9bc-pwtrh:/$ date
Wed Nov 11 06:56:41 UTC 2020

파드 로그 확인

kubectl logs pod/jenkins-794699f9bc-zx8mv -n jenkins

파드 실시간 로그 확인

kubectl logs -f pod/jenkins-794699f9bc-zx8mv -n jenkins

파드 삭제

kubectl delete pod/jenkins-794699f9bc-pwtrh -n jenkins

 

이제 kubectl exec 명령어를 통해 Kubernetes 클러스터 내의 컨테이너에 대화형 셀로 접속할 수 있습니다. 이를 통해 컨테이너 내부에서 명령어를 실행하거나 디버깅 작업을 수행할 수 있습니다.

 

728x90
반응형