K8S Commands
0. Cheat Sheet
https://kubernetes.io/docs/reference/kubectl/cheatsheet
1. 사전 작업
- Pod Test
1초마다 시간을 찍고, Service에 연결된 Pod의 Hostname을 보여준다. (IP는 Service의 IP 임)
$ while true; do date && curl 10.97.190.80:8080/hostname; sleep 1; done
- Curl로 특정Pod에 임의로 500 error 발생시키기. 해당 Pod에서는 계속 500 error 발생한다.
$ curl [Pod IP]:8080/status500
- delete deployment nginxCurl로 특정Pod의 hostname보기
$ curl [Pod IP]/hostname
2. 조회
1) Pod 조회
- 전체 Pod 현황 보기
$ kubectl get pods -A
# watch 걸기
$ kubectl get pods -w
- Pod의 Event 상황보기
$ kubectl get events -w | grep [POD Name]
- Pod의 Lifecycle State 보기
$ kubectl describe pod [POD Name] | grep -A5 Conditions
- 실행 코드 보기
# 실행되었을 때의 코드를 yaml롤 보여준다 (실제 실행 됨)
$ kubectl run nginx --image=nginx -o yaml
# 실행되었을 때의 코드를 yaml롤 보여준다 (실제 실행 되지 않음)
# 이렇게 보여진 코드를 수정해서 yaml을 재생성 할때 많이 사용한다.
$ kubectl run nginx --image=nginx --dry-run=client -o yaml
2) Service 조회
- Service의 Endpoint 보기
$ kubectl describe endpoints [Service Name]
- 전체 Service 보기
$ kubectl get service
3. Control
1) Label
- Node에 Lable 달기
$ kubectl label nodes k8s-node1 kr=az-1
$ kubectl label nodes k8s-node2 us=az-1
2) Job
- Job 삭제
$ kubectl delete -n default job job-1
3) YAML
- 삭제
$ kubectl delete -f demo.yaml
- 생성
$ kubectl apply -f demo.yaml
4) Pod
- 쿠버네티스 Pod 쉘 열기
$ kubectl exec --stdin --tty [Pod 이름] -- /bin/bash
5) Deployment
- 실행 코드 보기
# 실행되었을 때의 코드를 yaml롤 보여준다 (실제 실행 됨)
$ kubectl create deployment nginx --image=nginx -o yaml
# 실행되었을 때의 코드를 yaml롤 보여준다 (실제 실행 되지 않음)
# 이렇게 보여진 코드를 수정해서 yaml을 재생성 할때 많이 사용한다.
$ kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > dry_nginx.yaml
# deployment 삭제
- 삭제
$ kubectl delete deployments.apps nginx
$ kubectl delete -f dry_nginx.yaml
$ kubectl delete deployment nginx
4. 기타
1) Event
- events 보기
# 모든 pod가 create, run 등을 하면서 발생시키는 에러를 볼 수 있다.
$ kubectl get events
# 해당 pod가 발생시키는 event를 보려면
$ kubectl describe pod nginx
2) Log
- log 보기
$ kubectl get pod
$ kubctl logs logs-6656cc589d-s6bcg