[따배쿠] 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)파일을 사용해서 생성