[따배쿠] 5. pod 생성하기

( 참고 : 따배쿠 https://www.youtube.com/watch?v=6n5obRKsCRQ&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c )


1. 기본 명령어

kubectl api-resources

  • kubectl에서 사용할 수 있는 resource들에 대한 약어 정보


kubectl --help

  • 어떠한 종류의 명령어들이 있는지 도움말 정보
  • kubectl logs --help
    • logs 명령어에 대한 설명/사용법


(1) get

kubectl get nodes

  • 모든 노드 확인

kubectl get nodes -o wide

  • 모든 노드 자세히 확인

kubectl get nodes -o yaml

  • 모든 노드 자세히 확인 ( yaml 형태로 )

kubectl describe node master.example.com

  • master.example.com이라는 특정 노드를 아주 자세히 확인하기


(2) run

kubectl run webserver --image=nginx:1.14 --port 80

  • webserver 파드를 생성해라!
  • nginx:1.14 이미지를 사용해서!
  • 80번 포트

\(\rightarrow\) webserver 파드가 생성되었다.


생성된 pod확인하기

  • kubectl get pods -o wide
    • IP 주소 : 10.44.0.1
  • kubectl describe pod webserver


curl 명령어로 접속하기

  • curl 10.44.0.1로, 위에서 만든 webserver에 접속 가능


(3) create

run vs create :

  • run : 컨테이너 1개 실행할 때
  • create : 컨테이너 n개 실행할때


ex) kubectl create deployment mainui --image=httpd --replicas=3

  • deployment라는 리소스를
  • apache webserver (httpd) 이미지를 사용하여
  • mainui라는 이름으로
  • 3개 생성해라!


(4) exec

컨테이너 내부로 들어가서 파일 수정하려면?

kubectl exec webserver -it -- /bin/bash

  • 컨테이너 내부로 들어간다


( 컨테이너 내부에서…)

  • cd /usr/share/nginx/html/

  • cat index.html
  • echo "Seunghan's Web" > index.html ( 수정 완료 )

  • exit ( 컨테이너에서 나오기 )


curl 10.44.0.1

  • 방금 수정한 내용으로 웹페이지가 바뀐 것을 확인할 수 있다


지금은, “내”가 접속한 것!

만약, 외부 유저가 접속가능하게 하려면, 포트 포워딩 해줘야!

  • kubectl port-forawrd webserver 8080:80

  • curl localhost:8080하면, 잘 접속됨을 알 수 있다!


(5) edit

동작 중인 object를 수정하기 위해서!

  • ex) kubectl edit deployment.apps mainui
    • replicas를 3에서 5로 수정하면, pod를 3개에서 5개로 바꿈!


(6) 동작 중인 리소스의 yaml파일 생성

1) kubectl run webserver --image=nginx:1.14 --port 80

  • webserver pod를 run 하기


2) kubectl run webserver --image=nginx:1.14 --port 80 --dry-run

  • dry-run : 실행되는지만 check만 하기


3) kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml

  • 실행되는 내용을 yaml파일로 확인


4) kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml > webserver-pod.yaml

  • 실행되는 내용을 yaml파일로 생성

  • 쿠버네티스가 사용하는 yaml 파일이 만들어짐!

    이제, 편집기로, 이 파일을 쫌만 수정해서 재사용!


5) kubectl delete pod webserver

  • 동작 중이던 webserver pod 삭제하기


6) kubectl create -f webserver-pod.yaml

  • 방금 4)에서 수정한걸로 다시 pod 생성
  • f : (yaml)파일을 사용해서 생성