신입 자라기 6일 차
쿠버네티스 디플로이먼트
파드와 레플리카셋(ReplicaSet)에 대한 선언적 업데이트를 제공
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
- spec.replicas : 디플로이먼트는 3개의 레플리카 파드를 생성
- spec.selector : 디플로이먼트가 관리할 파드를 찾는 방법 정의, 정의된 레이블(app : nginx) 선택
- spec.selector.matchLabels 필드는 {key , value}의 형태
명령어
conf 파일 깔끔하게 보기
- python3- m json.tool a.conf
kubectl get po -o wide
- 파드의 상세목록 출력
kubectl describe po <name>
- 상세 출력을 위한 describe 커맨드
- NAME : 디플로이먼트 이름
- READY : 사용자가 사용할 수 있는 애플리케이션 레플리카 수
kubectl get deployment
- 실행 중인 디플로이먼트 확인
kubectl get rs
- 디플로이먼트로 생성된 레플리카셋(rs) 확인
- CURRENT : 현재 실행 중인 레플리카의 수
kubectl get pods —show-labels
- 파드에 자동으로 생성된 레이블 확인
-
NAME READY STATUS RESTARTS AGE LABELS nginx-deployment-75675f5897-7ci7o 1/1 Running 0 18s app=nginx,pod-template-hash=3123191453
출근길에 보는 CS
표준의 중요성
- 상호 운용성 제공
- 비용 절감
- 시장 진출 도구
- 자유도 상승
모노레포(Monorepo) : 두 개 이상의 프로젝 코드를 하나의 저장소(repository)에 저장
- 모든 프로젝트가 공통 코드 사용 가능
- 소스 코드 분석이 편리함
- 패키지들의 변경사항을 한 개의 커밋과 PR로 제출 가능
- 팀 간 협업
- 마스터 브랜치를 항상 배포할 수 있도록 유지 가능(트렁크 기반 개발)