【Kubernetes】Recreateをやってみる

2022.03.02
2024.03.24
Kubernetes
Recreate

本ページはAmazonアフィリエイトのリンクを含みます。

はじめに

Kubernetesのデプロイ戦略として、Recreateを実際に動かして試してみます。

Kubernetesでの代表的なデプロイ戦略については、下記でざっくりまとめています。

unknown link

Recreateとは

Recreateは、全てのPodを同時に終了し、新しいバージョンのPodを同時に起動するデプロイ方法です

メリットデメリット
・異なるバージョンが同時に実行されない・ダウンタイムがある

Deploymentのマニフェストで下記のように設定するだけです。

1spec:
2  strategy:
3    type: Recreate

実際に試してみる

実際にRecreateしてみます。

まずは、Deploymentのマニフェストdeployment.ymlを作成します。

1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  name: myapp
5  labels:
6    app: myapp
7spec:
8  replicas: 10
9  strategy:
10    type: Recreate # Recreateの設定
11  selector:
12    matchLabels:
13      app: myapp
14  template:
15    metadata:
16      labels:
17        app: myapp
18    spec:
19      containers:
20      - name: web-container
21        image: nginx:1.20
22        ports:
23          - containerPort: 80

マニフェストを適用してDeploymentをデプロイします。

1kubectl apply -f deployment.yml

Deploymentを確認すると10個のレプリカがあることがわかります。

1❯ kubectl get deploy
2NAME    READY   UP-TO-DATE   AVAILABLE   AGE
3myapp   10/10   10           10          11s

マニフェストのイメージのバージョンを変更して、反映します。

1image: nginx:1.21
1kubectl apply -f deployment.yml

Deploymentを確認してみると、一度全てのPodが全て削除してから、新しいPodが起動していることがわかります。

1❯ kubectl get deploy -w
2NAME    READY   UP-TO-DATE   AVAILABLE   AGE
3myapp   10/10   10           10          2m41s
4myapp   10/10   0            10          2m42s
5myapp   0/10    0            0           2m50s # 全てのPodがすべて終了し、起動しているPodがなくなる
6myapp   0/10    10           0           2m50s
7myapp   1/10    10           1           2m56s # 徐々に新しいPodが起動
8myapp   2/10    10           2           2m57s
9myapp   3/10    10           3           2m57s
10myapp   4/10    10           4           2m58s
11myapp   5/10    10           5           2m58s
12myapp   6/10    10           6           2m58s
13myapp   7/10    10           7           2m59s
14myapp   8/10    10           8           2m59s
15myapp   9/10    10           9           3m
16myapp   10/10   10           10          3m    # 全ての新しいPodが起動

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee