본문 바로가기
Come on IT/DevOps

쿠버네티스(K8s) 명령어 정리

by JONGSKY 2024. 10. 1.
728x90
SMALL

1. 글을 작성하게 된 계기

 

K8s를 자주 사용하게 되면서

자주 사용하는 명령어를 정리하고자 한다.

 

2. 명령어 정리

 

기본 명령어

  • kubectl get: 리소스를 조회하는 명령어
    • 예시:
      • kubectl get pods: 클러스터 내의 모든 Pod 목록을 조회
      • kubectl get nodes: 클러스터 내의 모든 Node 목록을 조회
      • kubectl get services: 모든 서비스 목록을 조회
  • kubectl describe: 특정 리소스에 대한 상세 정보를 확인
    • 예시:
      • kubectl describe pod <pod_name>: 특정 Pod의 상세 정보를 확인
      • kubectl describe node <node_name>: 특정 Node의 상세 정보를 확인
  • kubectl apply: 리소스를 생성하거나 업데이트할 때 사용 (YAML 파일 적용)
    • 예시:
      • kubectl apply -f <file.yaml>: YAML 파일에 정의된 리소스를 생성 또는 업데이트
  • kubectl delete: 리소스를 삭제
    • 예시:
      • kubectl delete pod <pod_name>: 특정 Pod 삭제
      • kubectl delete service <service_name>: 특정 서비스 삭제
  • kubectl create: 새로운 리소스를 생성
    • 예시:
      • kubectl create -f <file.yaml>: YAML 파일에 정의된 리소스를 생성
      • kubectl create namespace <namespace_name>: 새로운 네임스페이스 생성
  • kubectl exec: Pod 안에서 명령어 실행
    • 예시:
      • kubectl exec -it <pod_name> -- /bin/bash: 특정 Pod 안에서 bash 셸로 접속
      • kubectl exec <pod_name> -- ls /app: 특정 Pod의 /app 디렉터리 내 파일 목록을 확인
  • kubectl logs: 특정 Pod의 로그를 확인
    • 예시:
      • kubectl logs <pod_name>: Pod의 기본 컨테이너 로그 확인
      • kubectl logs <pod_name> -c <container_name>: 특정 컨테이너의 로그 확인
  • kubectl port-forward: 로컬 포트와 클러스터 내의 특정 Pod 또는 서비스의 포트를 연결
    • 예시:
      • kubectl port-forward pod/<pod_name> 8080:80: 로컬의 8080 포트를 Pod의 80 포트로 포워딩

리소스 관리

  • kubectl scale: 리소스의 복제본 수를 조정
    • 예시:
      • kubectl scale deployment <deployment_name> --replicas=3: Deployment의 복제본을 3개로 조정
  • kubectl rollout: 배포 관련 명령어
    • 예시:
      • kubectl rollout status deployment <deployment_name>: Deployment의 롤아웃 상태를 확인
      • kubectl rollout undo deployment <deployment_name>: 이전 배포로 롤백
  • kubectl edit: 리소스의 YAML 설정 파일을 직접 편집
    • 예시:
      • kubectl edit pod <pod_name>: Pod의 설정 파일을 직접 편집하여 수정

네임스페이스 관련

  • kubectl get namespaces: 모든 네임스페이스 조회
  • kubectl get pods --namespace <namespace_name>: 특정 네임스페이스의 Pod 목록 조회
  • kubectl config set-context --current --namespace=<namespace_name>: 기본 네임스페이스를 설정

클러스터 정보 확인

  • kubectl cluster-info: 클러스터 정보 확인
  • kubectl get events: 클러스터 내의 이벤트 로그 확인
  • kubectl top: 리소스 사용량 확인 (Metric 서버가 활성화되어 있어야 함)
    • 예시:
      • kubectl top node: 각 노드의 리소스 사용량 확인
      • kubectl top pod: 각 Pod의 리소스 사용량 확인

기타 유용한 명령어

  • kubectl explain: 리소스의 필드 설명 확인
    • 예시:
      • kubectl explain pod: Pod 리소스의 필드 설명 확인
      • kubectl explain deployment.spec: Deployment의 spec 필드에 대한 설명 확인
  • kubectl version: 클러스터와 클라이언트의 Kubernetes 버전 확인
  • kubectl config view: 현재 kubectl 설정 정보 확인
  • 테스트를 위한 임시 Pod 생성
    • 예시: auw-ai namespace에 net-test pod 생성 + 접속 테스트
      • kubectl run net-test-ubuntu --image=ubuntu -n auw-ai -- sleep 3600
        kubectl exec -it net-test-ubuntu -n auw-ai -- /bin/bash
  • 처음에 연결했던 연결토큰 확인하는 명령어
    • sudo kubeadm token create --print-join-command
728x90
LIST