본문 바로가기

카테고리 없음

[Study]신입 자라기 - 6

 

신입 자라기 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로 제출 가능
  • 팀 간 협업
  • 마스터 브랜치를 항상 배포할 수 있도록 유지 가능(트렁크 기반 개발)