Kubernetes 학습
Keyword
- 사이즈: Node ← Pod ← Container
- Node?: 컴퓨팅 자원
- Pod?: 쿠버네티스 에서의 최소한의 배포 단위
- Container?: 어플리케이션 배포가 가능한 최소 단위
MiniKube
- 쿠버네티스 학습 도구
- 가상 컴퓨팅 환경을 구축해 클러스터로써 동작하게 해줌 → 테스트 용이!
Command
- minikube Command
- start : 가상머신 시작
- —driver=docker : 도커로 시작
- p name : 이름 지정 가능
- profile : 현재 사용중인 프로 파일 출력
- minikube profile name : 프로 파일 이름 변경
- profile list : 프로파일 리스트 출력
- delete : 현재 사용중인 profile의 가상머신 제거
Kubectl
- 쿠버네티스 CLI
Command

스크린샷 2023-10-30 오후 3.55.42.png
- kubectl Command
- apply : 원하는 상태 적용
- f : 파일 → kubectl -f [파일명 or URL]
- get : 리소스 목록 출력 → 여러개 조회도 가능 pod,service,svc
- kubectl get type/resource -o : 아웃풋 출력 변경 [yaml, wide, json]
- kubectl get type/resource —show-labels: 설정한 라벨 태깅 조회
- get pod : 팟 조회 [pod or po or pods 가능]
- get replicaset : 레플리카 서비스 조회 [replicaset, rs 가능]
- get service : 서비스 조회 [service or svc 가능]
- get job : 작업 현황 조회
- get deployment : 배포 현황 조회 [deployment, deploy 가능]
- get endpoint : 서비스의 접속 정보 [endpoint, ep 가능]
- describe : 리소스 상태 출력
- kubectl describe type/name : 상세 상태 보기
- delete : 리소스 제거
- kubectl delete type/name : 리소스 제거
- logs : 컨테이너 로그 확인
- kubectl logs name : 로그 확인
- exec : 컨테이너에 명령 전달 & 실행
- kubectl exec -it name — command : 컨테이너 명령어 전달
- 컨테이너 접속시 : kubectl exec -it 이름 – bash
- c : 여러개의 컨테이너가 있는경우 지정 하는 옵션
- config : kubectl 설정 관리
- current-context : 현재 컨텍스트 확인
- use-context : 컨텍스트 설정
- api-resources : 전체 오브젝트 종류 확인
- explain obj : 특정 오브젝트 설명 보기
- rollout : 한개 또는 여러개의 리소스 관리 [deployments, daemonsets, statusfulsets 타입들 가능]
- rollout history name : 변경 내역 확인
- rollout undo name : 바로 전으로 롤백
- rollout pause name : 업데이트 중지
- rollout resume : 업데이트 재개
- get
Spec = 설정 파일 작성
-
yaml 로 작성 가능
- refs:
Kubernetes API Reference Docs
- version : 오브젝트 버전 [v1, app/v1, …]
- kind : 배포 종류 [Pod, Deployment, ReplicaSet, Service]
- metadata : 메타데이터 [name, label, Annotation으로 구성]
- spec : 상세 명세 [리소스 마다 다름]
- containers: 1-Pod, 1-container가 일반적이나 여러개의 컨테이너도 가능하며
흔한 편 서로 네트워크와 동일한 디렉터리 공유 가능
- 옵션
- name: 앱 이름
- image: 이미지 경로
- env: 설정값, - name과 value를 별도로 정의 해야 함
- name: REDIS_HOST
- value: “localhost”
- livenessProbe: 컨테이너가 정상적으로 동작하는지 체크 후 이상하면 재시작
- readinessProbe: 컨테이너 준비되었는지 체크 후 준비 되지 않았다면 Pod로 요청하는 요청 제외
- 위 4종류는 필수로 정의 해야 함
Pod