Docker, Kubernetes

쿠버네티스 deployment 업데이트 방법

dev우크 2021. 2. 23. 23:05

첫번째 방법

example-depl.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: example
          image: [docker hub id]/example:0.0.1

1. 코드 변경

2. 도커 컨테이너 이미지 다시 build, 새 이미지 버전으로 바꾸기

docker build -t [docker hub id]/example:0.0.2 .

3. example-depl.yaml 파일 변경

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: example
          image: [docker hub id]/example:0.0.2

4. 명령어 실행

kubectl apply -f [deployment file name]

두번째 방법 (추천!!!)

1. 도커 이미지 버전 정보 변경

example-depl.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
        - name: example
          image: [docker hub id]/example (or [docker hub id]/example:latest)

2. 코드 변경

3. 도커 컨테이너 이미지 다시 build

docker build -t [docker hub id]/example .

4. 도커 허브에 이미지 push

docker push [docker hub id]/example

주의사항!!

docker push denied requested access to the resource is denied

1) 에러가 발생하면 docker login 으로 도커 허브에 로그인 되어 있는지 확인

2) [docker hub id] 에서 도커 허브 아이디와 동일한지 확인

5. 명령어 실행

kubectl rollout restart deployment [deployment name]

pods와 deployment 상태 확인

kubectl get deployments
kubectl get pods