자주 사용하는 쿠버네티스 명령어 정리
쿠버네티스 명령어
네임스페이스 목록 확인
kubectl get namespaces
네임스페이스를 사용하면 Pod, Service, Deployment 등 쿠버네티스 리소스를 논리적으로 구분할 수 있습니다.
네임스페이스에 속한 Pod 목록 확인
kubectl get pods -n 네임스페이스명
네임스페이스에 속한 Pod 목록을 확인할 수 있습니다.
kube-system 네임스페이스에는 kube-apiserver, kube-scheduler,
kube-controller-manager, CoreDNS 등 쿠버네티스 시스템 관련 Pod들이 있습니다.
k9s 툴에서 네임스페이스에 속한 Pod 목록 확인
:namespace 입력 후 :pods 입력
또는
:ns 입력 후 :po 입력
선택한 네임스페이스에 속한 Pod 목록을 보고, 방향키나 단축키를 이용해 컨테이너 정보도 볼 수 있습니다.
Pod 목록에서 Pod 선택 후 l 키를 누르면, UI상으로도 쉽게 Pod 로그를 확인할 수 있습니다.
Pod를 선택한 상태에서 Ctrl + D를 누르면, Pod 삭제도 가능합니다.
Deployment는 설정된 replicas 수를 유지하기 위해 관리하는 Pod를 자동 생성합니다.
Pod를 선택한 상태에서 Y를 누르면, Pod YAML 정보를 확인할 수 있습니다.
각 컨테이너가 어떤 이미지 기반으로 실행되는지도 확인할 수 있습니다.
전체 Pod 목록 확인
kubectl get pods -A
클러스터의 모든 네임스페이스에 속한 Pod들을 확인할 수 있습니다.
AGE는 Pod가 생성된 후 경과한 시간을 나타냅니다.
파드 로그 확인
kubectl logs Pod명
파드 상세 정보 확인
kubectl describe pod Pod명
k9s 툴에서 파드 상세 정보 확인
파드 목록에서 파드 선택 후 D를 누르면, 하단에서 Events를 확인할 수 있습니다.
scheduler가 Pod를 실행할 노드에 배치하고,
kubelet이 컨테이너 런타임을 통해 이미지를 받아 컨테이너를 실행하는 과정 등을 볼 수 있습니다.
Deployment 목록 확인
kubectl get deployments
k9s 툴에서 deployment 목록 확인
:deployment 입력
또는
:deploy
현재 선택된 네임스페이스에 속한 Deployment 목록을 확인할 수 있습니다.
현재 네임스페이스 이벤트 목록 확인
kubectl get events
k9s 툴에서 현재 네임스페이스 이벤트 목록 확인
:events 입력
현재 K9s에서 선택된 네임스페이스에 속한 이벤트 목록을 확인할 수 있습니다.
클러스터 전체 네임스페이스 이벤트 목록 확인
kubectl get events -A
kubeconfig 설정 정보 확인
kubectl config view
kubeconfig 설정을 통해 클러스터명, 사용자명, Context 등의 정보를 확인할 수 있습니다.
클러스터 인증서, API Server 주소 및 포트, Context에 설정된 네임스페이스 등도 보여집니다.
Deployment 재시작
kubectl rollout restart deployment Deployment명
Deployment를 재시작하여 해당 Deployment가 관리하는 Pod들을 순차적으로 새로 생성합니다.
Deployment 기본 전략이 RollingUpdate인 경우,
신규 Pod들이 Ready 상태가 된 후 기존 Pod들은 순차적으로 삭제됩니다.
서비스 목록 확인
kubectl get services
LoadBalancer TYPE 서비스 EXTERNAL-IP가 pending인 것을 확인할 수 있습니다.
클러스터 내부에서 Service에 접근할 때 사용하는 CLUSTER-IP도 알 수 있습니다.
클러스터 내부 Pod는 Service의 CLUSTER-IP로 요청하고, Service는 해당 요청을 연결된 Pod로 전달합니다.
서비스를 선택한 상태에서 Y를 누르면, services yaml 정보를 확인할 수 있습니다.
- nodePort : 각 Node에 열리는 Service 접근용 포트
- port : Service가 요청을 받는 포트
- targetPort : 요청을 전달할 Pod의 애플리케이션 포트
k9s 툴에서 서비스 목록 확인
:service 입력
또는
:svc 입력
Kubernetes HPA를 사용하면 CPU 사용량 등을 기준으로 Pod 수 자동 확장 및 축소가 가능합니다.
Cluster Autoscaler와 연동하면 Pod를 실행할 노드의 리소스가 부족할 때
EC2 워커 노드 수도 자동으로 확장하거나 축소할 수 있습니다.
미니큐브 실습 사전세팅부터 보면 됨.
?? ㅇㅁㄴㅇㅁㄴㅇ
kubectl apply -f deployment.yaml
쿠버네티스의 Deployment를 사용하면 한 줄로 배포가 가능합니다.