[실습3] kubectl 명령어 익히기
minikube 내에서 아래 명령어들을 이어서 실습해보세요! [실습2] Minikube 사용해보기Minikube 란?01. 기본 개념단일 노드 k8s 클러스터를 가상머신(VM) 또는 컨테이너 기반 환경(docker 등) 위에 생성해 줌로
dream-coding.tistory.com
실습 3에서 익힌 명령어를 기반으로 nginx pod 를 띄워봅시다!
01. 클러스터 확인
# minikube를 정지시켜놓은 상태라면 다시 실행시켜줘야 함
minikube start
# 클러스터 정보 출력
kubectl cluster-info
# node 정보 출력
kubectl get no
02. Nginx 웹 서버 배포
# nginx 이미지를 기반으로 test-nginx 라는 이름의 deployment를 생성
kubectl create deploy test-nginx --image=nginx
# deployment 확인
kubectl get deploy
# pod 확인
kubectl get po
03. NodePort 서비스 만들기
- deployment를 배포한 후에, 이를 외부로 노출시키기 위한 service를 생성하여야 함
- Service Type의 종류
- ClusterIP : 클러스터 내부에서만 접근할 수 있는 IP를 할당 (외부통신 불가능)
- NodePort : 노드의 특정 port를 사용하여 접근하는 방식, port당 하나의 서비스만 사용 가능
- LoadBalancer : NodePort 앞단에 특정 LoadBalancer를 사용하여 접근
- ExternalName : DNS 이름에 대해 서비스를 매핑
- Service Type의 종류
- 때문에 외부에서 접속 가능하도록 NodePort type으로 expose하여야 함
# 80번 port를 사용하여 service 생성
## 생성시 --name 옵션을 사용하지 않으면 deployment와 동일한 이름으로 service가 생성됨
kubectl expose deploy test-nginx --type=NodePort --port=80
# service 확인
kubectl get svc
# minikube로 실행
minikube service test-nginx
04. 로그와 상태 확인
# pod 확인
kubectl get po
# pod 상태 확인
kubectl describe pod [pod 이름]
# pod log 확인
kubectl logs [pod 이름]
05. Pod 갯수 변경
- 동일한 app을 3개로 확장 (scale-out)
# replicas(복제본)를 3으로 변경
kubectl scale deployment test-nginx --replicas=3
# pod 확인
kubectl get po
# edit 명령을 통해 yaml file을 변경하여 다시 scale-in 할 수 있음
kubectl edit deploy test-nginx
06. Nginx 업데이트 & 롤백
- image가 update되었을 때, version 변경이 가능함
# nginx version 설정
kubectl set image deployment/test-nginx nginx=nginx:1.19
# deployment image 변경 확인
kubectl describe deploy test-nginx
- 이미지가 정상적으로 동작하지 않거나, 롤백이 필요할 때는 하기 명령어를 사용할 수 있음
# 배포 상태 확인
## 만약 set image로 배포를 시작한 후, 시간이 걸린다면 해당 명령어로 상태를 확인할 수 있음
kubectl rollout status deployment/test-nginx
# 직전에 실행한 업데이트를 롤백 (이전 이미지 버전으로 복원)
kubectl rollout undo deployment/test-nginx
# 현재 deployment image 확인
kubectl describe deploy test-nginx
- 이때까지의 배포 내역을 확인해 볼 수도 있음
# 기존 배포 내역 확인
kubectl rollout history deployment/test-nginx
# 배포 시에 주석을 추가하여 CHAGE-CAUSE를 명확하게 하는 것이 좋음
# 재배포 방법
## 1. annotate 작성
kubectl annotate deployment/test-nginx kubernetes.io/change-cause="nginx 1.19로 성능 개선" --overwrite
## 2. image 업데이트
kubectl set image deployment/test-nginx nginx=nginx:1.19
## 3. 변경 이력 확인
kubectl rollout history deployment/test-nginx
07. 실습 리소스 정리
# service 삭제
kubectl delete svc test-nginx
# deployment 삭제
kubectl delete deploy test-nginx
# minikue 정지
minikube stop
More
- 다른 이미지(httpd, redis 등) 배포해보기
- 다른 port를 사용하여 NodePort 서비스 생성해보기
- kubectl explain 으로 리소스 구조 탐색해보기
728x90
'Study > Kubernetes' 카테고리의 다른 글
[실습5] YAML로 Deployment, Service 생성하기 (2) | 2025.07.21 |
---|---|
[실습3] kubectl 명령어 익히기 (0) | 2025.06.25 |
[실습2] Minikube 사용해보기 (1) | 2025.06.25 |
[실습1] WSL에 Docker 및 Minikube 설치 (0) | 2025.06.23 |
[이론] 쿠버네티스 구성요소 (1) | 2025.06.23 |
댓글