PaaS/Kubernetes

(Kubernetes) kubectl 커맨드 모음 -1

armyost 2021. 3. 13. 23:54
728x90

POD 관리의 기초

■ 조회
kubectl get all

kubectl get pods :
kubectl get pods -o wide : 더자세히

kubectl describe pod [myapp-pod] :

kubectl get pods --namespace kube-system : Kubernetes의 시스템 POD를 볼수 있다

kubectl get pod [rabbit] -o yaml > pod.yaml : 운영중인 rabbit POD를 YAML로 내려 받기 

kubectl cluster-info

■ 빌드/실행
kubectl create/apply -f [pod-definition.yml] :

kubectl run [redis] --image=[redis123]
kubectl run [redis] -o yaml --dry-run=client : 이를 쿠버네티스 API 서버에 전송하는 대신 YAML 형식으로 stdout에 출력한다.
(추가)> pod.yaml : YAML파일로 내리기

■ 삭제

kubectl delete pod [web-app]

■ 수정
kubectl edit pod [redis]

■ 도움말

kubectl explain pods --recursive | less

■ 리소스 종류 확인
kubectl api-resources

■ 실행

kubectl exec [ubuntu-sleeper] -- [whoami]  
kubectl exec [ubuntu-sleeper] -- [date -s '19 APR 2012 11:14:00']

 

REPLICA와 DEPLOY

■ 조회

kubectl get replicationcontroller
kubectl get replicaset
kubectl get deployments

■ 빌드/실행
kubectl create deployment --image=nginx nginx --dry-run=client -o yaml
kubectl create deployment --image=httpd:2.4-alpine httpd:2.4-alpine --dry-run=client -o yaml > httpd:2.4-alpine-deployment.yaml

■ 삭제
kubectl delete replicaset [myapp-replicaset]
kubectl delete deployment [myapp-deployment]

■수정
kubectl replace -f [replicaset-definition.yml]
kubectl edit replicaset [new-replica-set]
kubectl scale --replicas=6 -f replicaset-definition.yml
kubectl scale --replicas=6 replicaset [myapp-replicaset]

 

NAMESPACE

■ 조회

kubectl get namespaces
kubectl get pods --namespace=[dev]
kubectl get pods --all-namespaces
kubectl config set-context $(kubectl config current-context) --namespace=[dev] :이후 모든 kubectl 명령에서 사용하는 네임스페이스를 컨텍스트에 영구적으로 저장할 수 있다.
kubectl get pods -n [research] 

kubectl config current-context : 현재 context 조회

■ 빌드/실행

kubectl create namespace [namespace name]

 

SERVICE

■ 조회
kubectl get services
kubectl get svc

■ 빌드/실행
kubectl expose deployment [simple-webapp-deployment] --name=[webapp-service] --port=8080 --dry-run=client -o yaml > svc.yaml
kubectl expose: 파드에 걸쳐 트래픽을 로드 밸런스하도록 새로운 서비스 오브젝트를 생성한다.

kubectl expose pod [redis] --port=[6379] --target-port=[6379] --name=[redis-service]
kubectl run [httpd] --image=[httpd:alpine] --port=[80] --expose : ClusterIP 세팅을 한꺼번에

 

LABEL

kubectl run redis --image=[redis:alpine] -l [tier=db] : POD에 라벨링

kubectl label node [node01] [color=blue] : 노드에 라벨링