"애플리케이션 그린-블루 롤아웃 수행"의 두 판 사이의 차이

(새 문서: ==개요== ;애플리케이션의 그린-블루 롤아웃 수행 * https://killercoda.com/killer-shell-ckad/scenario/rollout-green-blue 분류: killer-shell-ckad)
 
2번째 줄: 2번째 줄:
;애플리케이션의 그린-블루 롤아웃 수행
;애플리케이션의 그린-블루 롤아웃 수행
* https://killercoda.com/killer-shell-ckad/scenario/rollout-green-blue
* https://killercoda.com/killer-shell-ckad/scenario/rollout-green-blue
==시나리오==
* "wonderful" 애플리케이션이 <code>default</code> 네임스페이스에서 실행중이고, 애플리케이션 YAML은 <code>/wonderful/init.yaml</code>에 있음
* 기존 애플리케이션을 바탕으로 새 Deployment <code>wonderful-v2</code> 생성
* 단, 이미지는 <code>nginx:alpine </code> 사용, Pod에는 <code>app: wonderful</code>과 <code>version: v2</code> 레이블
* 새 Pod이 실행되면, Service <code>wonderful</code>에 <code>version: v2</code> 레이블
* Deployment <code>wonderful-v1</code>을 0 replicas로 스케일 다운
==실습==
<syntaxhighlight lang='console'>
$ cp /wonderful/init.yaml /wonderful/v2.yaml
$ vi /wonderful/v2.yaml
</syntaxhighlight>
<syntaxhighlight lang='yaml' line>
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: wonderful
  name: wonderful-v2
spec:
  replicas: 4
  selector:
    matchLabels:
      app: wonderful
      version: v2
  template:
    metadata:
      labels:
        app: wonderful
        version: v2
    spec:
      containers:
      - image: nginx:alpine
        name: httpd
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: wonderful
  name: wonderful
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30080
  selector:
    app: wonderful
    version: v2
  type: NodePort
</syntaxhighlight>


[[분류: killer-shell-ckad]]
[[분류: killer-shell-ckad]]

2024년 6월 6일 (목) 15:15 판

1 개요

애플리케이션의 그린-블루 롤아웃 수행

2 시나리오

  • "wonderful" 애플리케이션이 default 네임스페이스에서 실행중이고, 애플리케이션 YAML은 /wonderful/init.yaml에 있음
  • 기존 애플리케이션을 바탕으로 새 Deployment wonderful-v2 생성
  • 단, 이미지는 nginx:alpine 사용, Pod에는 app: wonderfulversion: v2 레이블
  • 새 Pod이 실행되면, Service wonderfulversion: v2 레이블
  • Deployment wonderful-v1을 0 replicas로 스케일 다운

3 실습

$ cp /wonderful/init.yaml /wonderful/v2.yaml
$ vi /wonderful/v2.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: wonderful
  name: wonderful-v2
spec:
  replicas: 4
  selector:
    matchLabels:
      app: wonderful
      version: v2
  template:
    metadata:
      labels:
        app: wonderful
        version: v2
    spec:
      containers:
      - image: nginx:alpine
        name: httpd
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: wonderful
  name: wonderful
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
    nodePort: 30080
  selector:
    app: wonderful
    version: v2
  type: NodePort
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}