반응형
command 살펴보기
- command 정보
-
kubectl --help
- command 정보 표시
-
kubectl [command] --help
- 해당 command 설명
- 예시 및 옵션 정보 또한 제공
-
- object 정보
- kubectl api-resources
- object 정보(목록, 약어 등) 표시
- kubectl api-resources
- 노드 정보
- kubectl get nodes
- 노드 정보
- kubectl get nodes -o wide
- 노드 정보 상세히
- kubectl describe node [name]
- 해당 노드의 더욱 상세한 정보
- kubectl get nodes
여러 방법으로 nginix pod 생성하기
run으로 pod 생성
-
pod 생성
- kubectl run webserver --image=nginx:1.14 --port 80
- run은 컨테이너 하드를 만드는 command
- webserver라는 이름의 pod 생성
- nginx:1.14의 도커 이미지 다운로드
- 포트 80번 연결
- kubectl run webserver --image=nginx:1.14 --port 80
![](https://blog.kakaocdn.net/dn/bdWx4i/btrYBW5Fg5I/1QnB1mUAgvzOCkB2sg3J60/img.png)
- pod 생성 확인
- kubectl get pods
- kubectl get pods -o wide
- kubectl describe pod webserver
![](https://blog.kakaocdn.net/dn/HAs0u/btrYCiAL1uK/NgMVp7wfH3qIZ10gD9j4GK/img.png)
- pod 정보 다양한 형태로 확인
- kubectl get pod webserver -o yaml
- kubectl get pod webserver -o json
- web server 동작 확인
- curl 10.44.0.1
- curl은 command 형식의 웹 브라우저
- curl 10.44.0.1
![](https://blog.kakaocdn.net/dn/bqLkcH/btrYzFDPM0T/BN3DZOgB64nwCeeIzZrgTK/img.png)
- web server 이름 바꾸기
- 컨테이너에 접속
- kubectl exec webserver -it -- /bin/bash
- exec는 실행하는 command
- kubectl exec webserver -it -- /bin/bash
- 컨테이너 안에서 index.html 파일을 찾아 제목 수정
- cd /usr/share/nginx/html/
- cat index.html
- echo "SMLEE web" > index.html
- exit
- 컨테이너에서 나와 web server 접속하여 이름 확인
- curl 10.44.0.1
- 컨테이너에 접속
![](https://blog.kakaocdn.net/dn/bvISxu/btrYz9ki0fv/aoiK4qK6qdd3VHnujN7Jak/img.png)
![](https://blog.kakaocdn.net/dn/bAacJ0/btrYzLDY99I/HbCfloc03990mJ4Q8kKCs1/img.png)
- webserver 로그 확인
- kubectl logs webserver
![](https://blog.kakaocdn.net/dn/b9FyU3/btrYDeSzAzX/DIvWEySia0HqKuWIbmK7eK/img.png)
- webserver 포트 포워딩
- kubectl port-forward webserver 8080:80
![](https://blog.kakaocdn.net/dn/Of0wj/btrYCjsW1mC/luRjzdyKlFK5KeKmCAg051/img.png)
create으로 deployment 생성
- deployment 생성
- kubectl create deployment mainui --image=httpd:latest --replicas=3
- create deployment는 컨테이너 하드를 여러 개 생성하는 command
- mainui라는 이름의 deployment 생성
- replicas는 hpptd라는 웹 서버 3개 실행을 요청하는 옵션
- kubectl create deployment mainui --image=httpd:latest --replicas=3
![](https://blog.kakaocdn.net/dn/76CX9/btrYAmKykjz/VQWGOexFkPbAICSuwpqNPK/img.png)
- deployment 생성 확인
- kubectl get deployments.apps
- kubectl get deployments.apps-o wide
- kubectl describe deployments.apps mainui
![](https://blog.kakaocdn.net/dn/muRXf/btrYAnbBMxg/mwTLpV9VNrQYgdviYcf5EK/img.png)
- pod 생성 확인
- kubectl get pods
- kubectl get pods -o wide
![](https://blog.kakaocdn.net/dn/4AS6C/btrYzKE4aNG/SP1s10jEaI7ER9eenj2Jrk/img.png)
- main ui pod 중 하나의 pod web server 동작 확인
- curl 10.36.0.1
![](https://blog.kakaocdn.net/dn/cYX5eb/btrYBXwKU95/kpkteZE0eiHdcvHtWiTd60/img.png)
- 컨테이너 하드 개수 조절하기
- kubectl edit deployments.apps mainui
- edit command는 동작 중인 api 리소스를 수정할때 사용
- vi에디터에서 replicas 수정
- kubectl edit deployments.apps mainui
![](https://blog.kakaocdn.net/dn/XqawH/btrYycWHMaq/I1QStZmmtRYexjFx9xrT71/img.png)
yaml파일로 pod 생성
-
yaml파일 생성
- kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml > webserver-pod.yaml
- webserver pod는 이미 존재하므로 kubectl run webserver --image=nginx:1.14 --port 80 실행 x
- --dry-run로 실행이 되는지 안되는지 체크
- --dry-run -o yaml로 실행할 수 있는 상태를 yaml 포맷으로 표기
- --dry-run -o yaml > webserver-pod.yaml로 yaml파일로 저장
- kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml > webserver-pod.yaml
- webserver pod 삭제
- kubectl delete pod webserver
- yaml파일로 pod 생성
- kubectl create -f webserver-pod.yaml
- pod 생성 확인
- kubectl get pods
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes namespace (0) | 2023.02.10 |
---|---|
[k8s]Kubernets 아키텍처 - 동작 원리 & 컴포넌트 (0) | 2023.02.10 |
[k8s]kubectl 개요 (0) | 2023.02.08 |
[k8s]쿠버네티스 설치하기 (0) | 2023.02.08 |
[k8s]설치 없이 쿠버네티스 사용하기 (0) | 2023.02.07 |