Kubernetes/Udemy - CKAD with Tests

Deployments

비번변경 2021. 7. 3. 19:22

Rolling Update

서버를 실제로 서비스할 때 서비스적인 장애와 배포에 있어서 부담감을 최소화하고, 서비스가 중단되지 않도록 배포하는 무중단 배포 방법 중 하나

새 버전을 배포하면서, 새 버전 인스턴스를 하나씩 늘려가고 기존 버전의 인스턴스를 하나식 줄여나가는 방식

새 버전의 인스턴스로 트래픽이 이전되기 전까지 이전 버전과 새 버전의 인스턴스가 동시에 존재할 수 있다는 단점이 있지만, 시스템을 무중단으로 업데이트할 수 있다.

 

Deployment

RC를 이용한 롤링 업데이트 과정을 자동화해주는 추상화 개념

Rolling Update를 이용하여 인스턴스를 업그레이드하고, 변경 내용을 실행 취소하며, 필요에 따라 변경을 일시 중지/재개하는 기능 제공

배포 정의 파일을 이용해 생성하며, 정의 파일의 내용은 ReplicaSet의 정의 파일과 유사하다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-replicaset
  labels:
    app: myapp
    type: front-end
spec:
  template:
    # pod 정의 파일의 메타데이터부분부터 옮기면 됨
    metadata:
      name: myapp-pod
      labels:
        app: myapp
        type: front-end
      spec:
        container:
          - name: nginx-container
            image: nginx

  replicas: 3
  selector:
    matchLabels:
      tier: front-end

 

명령어

# 생성
kubectl create -f deployment-definition.yml

# doployments 조회
kubectl get doployments

# 자동 생성된 replicaset 조회
kubectl get replicaset

# 자동 생성된 pod 조회
kubectl get pods

# 모든 개체 조회
kubectl get all

 

참고문서

https://ooeunz.tistory.com/124