쿠버네티스
다수의 컨테이너들을 관리하면서 자동 배포, 배포된 컨테이너의 동작 보증, 부하에 따른 동적 확장 등의 기능을 담당하는 역할을 한다.
docker의 설정에서 쿠버네티스를 설정하면 된다.
pod
한 개 이상의 컨테이너로 단일 목적의 일을 하기 위해서 모인 단위이다.
독립적인 공간과 사용 가능한 IP를 가지고 있으며, 언제든지 죽을 수 있다.
다음과 같이 포드를 생성한다.
kubectl run 포드이름 --image=이미지이름
다음의 명령으로 포드를 확인할 수 있다.
kubectl get pods
deployment
상태가 없는(stateless) 앱을 배포할 때 사용하는 가장 기본적인 컨트롤러이다.
deployment에 의해 배포된 포드의 컨테이너 실행에 문제가 생기면 k8s는 이 포드에서 실행하던 컨테이너를 삭제하고 다시 컨테이너를 생성해 응용을 지속 실행한다.
kubectl create deployment 이름 --image=이미지이름
kubectl get deployment
레플리카 수 설정
레플리카 수를 설정하면 그 개수만큼의 포드가 실행되고 있는 것을 확인할 수 있다.
kubectl scale deployment deployment이름 --replicas=숫자
pod expose
포드를 노출시켜주면 로컬호스트에서 접근할 수 있다.
kubectl expose pod 포드이름 --type=NodePort --name=pod-svc --port=포트번호
다음은 서비스를 확인하는 명령이다.
kubectl get services
해당 포트로 접속하면 정상 접속되는 것을 확인할 수 있다.
삭제
서비스 삭제
kubectl delete service 서비스이름
포드 삭제
kubectl delete pod 포드이름
deployment 삭제
kubectl delete deployment 디플로이먼트이름
manifest
yaml 파일에 정의한 내용으로 디플로이먼트와 포드를 생성할 수 있다.
kubectl apply -f yaml파일명
이미지 업데이트
kubectl set image deployment 디플로이먼트이름 이미지이름=이미지이름:1.17.0
kubectl set image deployment dpy-nginx nginx=nginx:1.17.0
배포 이력 기록
kubectl annotate deployment 디플로이먼트이름 kubernetes.io/change-cause="설명"
kubectl annotate deployment dpy-nginx kubernetes.io/change-cause="설명"
배포 이력 확인
kubectl rollout history deployment 디플로이먼트이름
kubectl rollout history deployment dpy-nginx
HPA(동적 수평 오토스케일링)
부하량에 따라 deployment 포드 수를 유동적으로 관리하는 k8s의 기능이다.
스케일링 기준이 되는 값과 최소/최대 포드의 수를 지정할 수 있다.
CPU 사용률 50%를 기준으로 동적 스케일링하며, 최소 1개, 최대 10개의 포드 운용하는 예시이다.
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
'데브코스' 카테고리의 다른 글
[17주차 - DAY3] 인수 테스트 (1) | 2024.06.19 |
---|---|
[17주차 - DAY2] CI 파이프라인 (0) | 2024.06.18 |
[17주차 - DAY1] 쿠버네티스, 젠킨스 (0) | 2024.06.17 |
[16주차 - DAY4] 도커 이미지 생성 (1) | 2024.06.13 |
[16주차 - DAY4] 도서 정보 사이트 - 모바일 대응, 도커 (0) | 2024.06.12 |