쿠버네티스
다수의 컨테이너들을 관리하면서 자동 배포, 배포된 컨테이너의 동작 보증, 부하에 따른 동적 확장 등의 기능을 담당하는 역할을 한다.
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
Volumes
- PV(PersistentVolume): 클러스터 내에 존재하는 스토리지를 추상화한 것
- PVC(PersistentVolumeClaim): (사용자에 의한) PV를 이용하기 위한 요청
젠킨스
설치
cmd를 관리자 권한으로 실행하여 진행한다.
choco install kubernetes-helm
helm repo add jenkinsci https://charts.jenkins.io
helm repo update
helm install jenkins jenkinsci/jenkins
비밀번호 확인
아래 결과를 base64로 디코딩한다. 윈도우 운영체제에서 바로 디코딩하는 방법은 모르겠어서 구글에 base64 디코딩 사이트 들어가서 디코딩했다.
젠킨스 서버 가동
아래 명령을 cmd에서 실행하고 웹브라우저에서 localhost:8080에 접속하여 아이디는 admin, 비밀번호는 앞서 알아낸 비밀번호를 입력하면 로그인이 된다.
kubectl port-forward svc/jenkins 8080:8080
파이프라인 예제
아이템 이름을 입력하고 파이프라인을 클릭하고 OK 버튼을 누른다.
위와 같이 입력하고 저장을 누르고 나서 왼쪽 탭에서 Build Now를 누른다.
위와 같이 초록색 체크 표시가 뜨면 빌드가 성공적으로 완료된 것이다.
'데브코스' 카테고리의 다른 글
[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 |
[16주차 - DAY3] 도서 정보 사이트 - 메인 화면 (1) | 2024.06.12 |