쿠버네티스 기본 명령어 모음

1. 클러스터 정보 확인

# 클러스터 정보 확인
kubectl cluster-info

# 노드 상태 확인
kubectl get nodes
kubectl get nodes -o wide

# 전체 네임스페이스의 모든 리소스 확인
kubectl get all --all-namespaces

# API 리소스 목록 확인
kubectl api-resources

2. Pod 관련 명령어

# Pod 목록 조회
kubectl get pods
kubectl get po -o wide
kubectl get pods --show-labels

# Pod 상세 정보 확인
kubectl describe pod [pod-name]

# Pod 로그 확인
kubectl logs [pod-name]
kubectl logs -f [pod-name]  # 실시간 로그
kubectl logs --tail=100 [pod-name]  # 마지막 100줄

# Pod 내부 접속
kubectl exec -it [pod-name] -- /bin/bash

# Pod 생성
kubectl run nginx --image=nginx
kubectl run nginx --image=nginx --port=80

# Pod 삭제
kubectl delete pod [pod-name]
kubectl delete pod --all

3. Deployment 관련 명령어

# Deployment 목록 조회
kubectl get deployments
kubectl get deploy

# Deployment 생성
kubectl create deployment nginx --image=nginx
kubectl create deployment nginx --image=nginx --replicas=3

# Deployment 스케일 조정
kubectl scale deployment nginx --replicas=5

# Deployment 상세 정보
kubectl describe deployment [deployment-name]

# Deployment 수정
kubectl edit deployment [deployment-name]

# Deployment 삭제
kubectl delete deployment [deployment-name]

# 롤아웃 상태 확인
kubectl rollout status deployment [deployment-name]

# 롤아웃 히스토리 확인
kubectl rollout history deployment [deployment-name]

# 롤백 실행
kubectl rollout undo deployment [deployment-name]

4. Service 관련 명령어

# Service 목록 조회
kubectl get services
kubectl get svc

# Service 생성
kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl expose pod nginx --port=80 --type=NodePort

# Service 상세 정보
kubectl describe service [service-name]

# Service 삭제
kubectl delete service [service-name]

5. ConfigMap과 Secret 관련 명령어

# ConfigMap 관리
kubectl get configmaps
kubectl create configmap [name] --from-file=[path/to/file]
kubectl create configmap [name] --from-literal=key1=value1
kubectl describe configmap [name]

# Secret 관리
kubectl get secrets
kubectl create secret generic [name] --from-literal=key1=value1
kubectl describe secret [name]

6. 네임스페이스 관련 명령어

# 네임스페이스 목록
kubectl get namespaces
kubectl get ns

# 네임스페이스 생성
kubectl create namespace [name]

# 네임스페이스 전환
kubectl config set-context --current --namespace=[name]

# 특정 네임스페이스의 리소스 조회
kubectl get all -n [namespace]

7. 리소스 모니터링 명령어

# 리소스 사용량 확인
kubectl top nodes
kubectl top pods

# 이벤트 확인
kubectl get events
kubectl get events --sort-by=.metadata.creationTimestamp

8. 구성 및 컨텍스트 관련 명령어

# 현재 컨텍스트 확인
kubectl config current-context

# 컨텍스트 목록 확인
kubectl config get-contexts

# 컨텍스트 전환
kubectl config use-context [context-name]

# kubeconfig 보기
kubectl config view

9. 리소스 관리 명령어

# 리소스 생성/수정
kubectl apply -f [file.yaml]
kubectl create -f [file.yaml]

# 리소스 삭제
kubectl delete -f [file.yaml]

# 여러 리소스 한번에 삭제
kubectl delete all --all

10. 디버깅 관련 명령어

# 임시 디버깅용 Pod 생성
kubectl run debug --image=busybox --rm -it -- /bin/sh

# 네트워크 테스트용 Pod
kubectl run test-pod --image=nginx --restart=Never

# Pod 문제 해결
kubectl describe pod [pod-name]
kubectl logs [pod-name] --previous  # 이전 컨테이너 로그

# 클러스터 상태 진단
kubectl get componentstatuses

11. 고급 명령어

# JSON 경로 사용 예시
kubectl get pods -o jsonpath='{.items[*].metadata.name}'

# 커스텀 컬럼 출력
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase

# Watch 모드로 모니터링
kubectl get pods -w

# 레이블 선택자 사용
kubectl get pods -l app=nginx

# 필드 선택자 사용
kubectl get pods --field-selector status.phase=Running

12. 유용한 옵션들

--all-namespaces, -A: 모든 네임스페이스
--output, -o: 출력 형식 지정 (yaml, json, wide 등)
--selector, -l: 레이블 선택
--force: 강제 실행
--dry-run=client: 실제 실행 없이 시뮬레이션
-v: 로그 레벨 지정

'IT > kubernetes[k8s]' 카테고리의 다른 글

Kubernetes Pod 개요  (2) 2024.11.16
쿠버네티스(Kubernetes)란?  (2) 2024.11.15
Taints와 Tolerations  (1) 2024.11.15
Kubernetes Ingress  (0) 2024.11.14
쿠버네티스 서비스(Service)  (0) 2024.11.13

+ Recent posts