Kubernetes 명령 치트 시트
이 페이지에서
- 전제 조건
- 무엇을 보게 될까요?
- 중요 명령
- 클러스터 정보
- 구성 정보
- 네임스페이스
- 포드
- 배포
- 서비스
- .yaml/.yml 파일에서 개체 관리
Kubernetes에서 작업하는 동안 최소한 기본 명령을 아는 것이 매우 중요합니다. 이 기사에서는 클러스터에서 작업하는 동안 대부분 필요한 명령을 찾을 수 있습니다. 명령을 알고 있으면 간단한 개체에 대한 개체 정의 파일을 작성하고 해당 파일을 사용하여 개체를 생성하지 않아도 됩니다. 대신 명령을 사용하고 순식간에 생성된 개체를 볼 수 있습니다.
이 문서에서는 개체의 세부 정보를 가져오는 명령뿐만 아니라 개체를 만드는 명령도 볼 수 있습니다. 이 문서는 해당 명령에 대한 설명이 아닌 명령에만 초점을 맞춥니다. 각각의 모든 명령을 자세히 알고 싶다면 여기에서 공식 문서를 방문할 수 있습니다.
이 기사는 Kubernetes 클러스터의 핵심 개체와 관련된 치트 시트입니다.
전제 조건
- Kubernetes에 대한 기본적인 이해\n
- 워커 노드가 1개 이상 있는 Kubernetes 클러스터.
Kubernetes 클러스터를 만드는 방법을 알아보려면 여기를 클릭하세요. 이 안내서는 AWS Ubuntu EC2 인스턴스에서 1개의 마스터와 2개의 노드가 있는 Kubernetes 클러스터를 생성하는 데 도움이 됩니다.\n
우리는 무엇을 볼 것인가?
- 중요 명령
- 클러스터 정보
- 구성 정보
- 네임스페이스
- 포드
- 배포
- 서비스
- .yaml/.yml 파일에서 개체 관리
중요한 명령
클러스터 정보
클라이언트 및 서버 버전 정보 인쇄
kubectl version
서버에서 지원되는 API 리소스 인쇄
kubectl api-resources
"그룹/버전" 형식으로 서버에서 지원되는 API 버전을 인쇄합니다.
kubectl api-versions
클러스터 정보 인쇄
kubectl cluster-info
클러스터의 노드 목록 가져오기
kubectl get nodes
마스터 노드 정보 얻기
kubectl get nodes master -o wide
마스터 노드에 대한 자세한 정보 얻기
kubectl describe nodes master
구성 정보
병합된 kubeconfig 설정 표시
kubectl config view
현재 컨텍스트 보기
kubectl config current-context
컨텍스트를 설정합니다. 여기서 [email 는 컨텍스트 이름입니다.
kubectl config use-context
kubeconfig에 정의된 클러스터 표시
kubectl config get-clusters
하나 이상의 컨텍스트 설명
kubectl config get-contexts
네임스페이스
모든 네임스페이스 가져오기
kubectl get namespaces
yaml 형식으로 네임스페이스 정보 가져오기
kubectl get namespaces -o yaml
기본 네임스페이스 설명
kubectl describe namespace default
새 네임스페이스 만들기
kubectl create namespace my-namespace
네임스페이스 삭제
kubectl delete namespace my-namespace
포드
현재 네임스페이스에서 포드 가져오기
kubectl get pods
모든 네임스페이스에서 팟(Pod) 가져오기
kubectl get pods --all-namespaces
지정된 네임스페이스에서 pod 가져오기
kubectl get pods -namespace=my-namespace
포드 만들기
kubectl run my-pod-1 --image=nginx:latest --dry-run
pod가 어떻게 처리되는지 확인하세요.
kubectl run my-pod-1 --image=nginx:latest --dry-run=client
지정된 네임스페이스에 포드 생성
kubectl run my-pod-2 --image=nginx:latest --namespace=my-namespace
레이블이 있는 팟(Pod) 작성
kubectl run nginx --image=nginx -l --labels=app=test
레이블 출력이 있는 모든 팟(Pod) 가져오기
kubectl get pods --show-labels
확장/와이드 출력이 있는 포드 가져오기
kubectl get pods -o wide
정렬된 순서로 포드 나열
kubectl get pods --sort-by=.metadata.name
포드의 로그 가져오기
kubectl logs my-pod-1
확장/와이드 출력으로 지정된 네임스페이스 내에서 포드 가져오기
kubectl get pods my-pod-2 --namespace=my-namespace -o wide
지정된 네임스페이스 내에서 포드의 로그 가져오기
kubectl logs my-pod-2 --namespace=my-namespace
포드 설명
kubectl describe pod my-pod-1
지정된 네임스페이스 내의 팟(Pod) 설명
kubectl describe pods my-pod-1 --namespace=my-namespace
현재 네임스페이스에서 포드를 삭제합니다.
kubectl delete pod my-pod-1
지정된 네임스페이스에서 pod 삭제
kubectl delete pods my-pod-1 --namespace=my-namespace
배포
현재 네임스페이스에서 배포 목록 가져오기
kubectl get deployments
지정된 네임스페이스에서 배포 목록 가져오기
kubectl get deployments --namespace=my-namespace
배포 만들기
kubectl create deployment my-deployment-1 --image=nginx
지정된 배포 가져오기
kubectl get deployment my-deployment-1
레이블이 있는 지정된 배포 가져오기
kubectl get deployment my-deployment-1 --show-labels
지정된 배포 설명
kubectl describe deployments my-deployment-1
yaml 형식으로 배포 세부정보 가져오기
kubectl get deployment my-deployment-1 -o yaml
기존 배포에서 이미지 변경
kubectl set image deployment my-deployment-1 nginx=nginx:1.16.1
롤아웃 기록 보기
kubectl rollout history deployment my-deployment-1
이전 롤아웃 실행취소
kubectl rollout undo deployment my-deployment-1
롤아웃 기록의 특정 버전으로 돌아가기
kubectl rollout undo deployment my-deployment-1 --to-revision=2
롤아웃 상태 표시
kubectl rollout status deployment my-deployment-1
리소스 다시 시작
kubectl rollout restart deployment my-deployment-1
배포를 3개로 확장
kubectl scale --replicas=3 deployment my-deployment-1
현재 카운트에서 원하는 값으로 조정
kubectl scale --current-replicas=3 --replicas=5 deployment my-deployment-1
그러면 HPA(Horizontal Pod Aotuscaler)가 생성됩니다.
kubectl autoscale deployment my-deployment-1 --min=2 --max=10
서비스
먼저 app=myapp 레이블이 있는 팟(Pod)을 작성하십시오.
그 다음에:
레이블이 있는 포드 만들기
kubectl run my-pod --image=nginx --labels=app=myapp
선택기에 포드 레이블을 사용할 NodePort 유형의 서비스를 생성하지만 유형을 지정해야 하므로 먼저 정의 파일을 생성한 다음 서비스를 생성합니다.
kubectl expose pod my-pod --port=80 --name nginx-service --type=NodePort --dry-run=client -o yaml
유형 유형이 NodePort이지만 선택기가 my-app이 아닌 서비스를 작성하십시오.
kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml
현재 컨텍스트에서 서비스 가져오기
kubectl get service
서비스 세부 정보 얻기
kubectl get service -o wide
레이블이 있는 서비스 받기
kubectl get service --show-labels
모든 네임스페이스에서 서비스 가져오기
kubectl get services --all-namespaces
서비스에 대해 자세히 알아보려면 서비스를 설명하세요.
kubectl describe service nginx-service
특정 서비스 받기
kubectl get service nginx-service
서비스 삭제
kubectl delete service nginx-service
.yaml/.yml 파일에서 개체 관리
먼저 포드에 대한 정의 파일을 만듭니다.
Pod용 정의 파일 만들기
kubectl run mypod --image=nginx --dry-run=client -o yaml > my-pod.yml
개체 만들기
kubectl create -f my-pod.yml
개체 삭제
kubectl delete -f my-pod.yml
결론
이 기사에서는 Kubernetes에서 작업하는 동안 필요한 중요한 명령을 살펴보았습니다. Kubernetes의 명령은 이러한 명령에만 국한되지 않고 이러한 명령은 "반드시 알아야 하는" 명령과 같습니다.