1 분 소요

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