🕌
kubernetesで更新したコンテナをロールバックする!
はじめに
くーばねてすを倒すために今回はkubernetesで更新されたコンテナをもとに戻すためのロールバックを勉強する。
概要
■ロールバックとは
■ロールバックしてみる
をまとめた!(^^)!
■ロールバックとは
kubernetesでのロールバックはロールアウト前のコンテナにするためにポッドを入れ替えることを意味する。
ここでもクライアントのリクエストに答えられるように稼働コンテナを維持しつつポッドを入れ替えていく。
たとえば新機能と搭載したアプリケーションが不具合を起こしたときなどに前の状態に戻すなどをすることができる。
■ロールバックしてみる
コンテナを:前の状態に戻すためにポッドを入れ替えるには、
$ kubectl rollout undo deployment デプロイメント名
と入力する。
前回更新したnginx:1.17をnginx:1.16にロールバックする。
ロールバックする
$ kubectl rollout undo deployment web-deploy
deployment.apps/web-deploy rolled back
デプロイメント詳細取得
ロールバック開始直後
kubectl describe deployment web-deploy
Name: web-deploy
Namespace: default
CreationTimestamp: Tue, 23 Feb 2021 12:16:52 +0000
Labels: app=web-deploy
Annotations: deployment.kubernetes.io/revision: 4
Selector: app=web-deploy
Replicas: 10 desired | 10 updated | 10 total | 10 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=web-deploy
Containers:
nginx:
Image: nginx:1.16 # ここ注目
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: web-deploy-859565657d (10/10 replicas created)# ここ注目
NewReplicaSet: web-deploy-56865ddd5c (0/0 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 56m deployment-controller Scaled down replica set web-deploy-56865ddd5c to 2
Normal ScalingReplicaSet 56m deployment-controller Scaled down replica set web-deploy-56865ddd5c to 0
ロールバック中
kubectl describe deployment web-deploy
Name: web-deploy
Namespace: default
CreationTimestamp: Tue, 23 Feb 2021 12:16:52 +0000
Labels: app=web-deploy
Annotations: deployment.kubernetes.io/revision: 5
Selector: app=web-deploy
Replicas: 10 desired | 5 updated | 8 total | 8 available | 5 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=web-deploy
Containers:
nginx:
Image: nginx:1.16
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True ReplicaSetUpdated
OldReplicaSets: web-deploy-859565657d (3/3 replicas created)
NewReplicaSet: web-deploy-56865ddd5c (5/10 replicas created)# ここ注目
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 4m18s deployment-controller Scaled up replica set web-deploy-56865ddd5c to 3
Normal ScalingReplicaSet 4m18s deployment-controller Scaled down replica set web-deploy-859565657d to 8
Normal ScalingReplicaSet 4m18s deployment-controller Scaled up replica set web-deploy-56865ddd5c to 5
Normal ScalingReplicaSet 55s deployment-controller Scaled down replica set web-deploy-859565657d to 3
Normal ScalingReplicaSet 55s deployment-controller Scaled up replica set web-deploy-56865ddd5c to 10
ロールバック終了
kubectl describe deployment web-deploy
Name: web-deploy
Namespace: default
CreationTimestamp: Tue, 23 Feb 2021 12:16:52 +0000
Labels: app=web-deploy
Annotations: deployment.kubernetes.io/revision: 5
Selector: app=web-deploy
Replicas: 10 desired | 10 updated | 13 total | 13 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=web-deploy
Containers:
nginx:
Image: nginx:1.16
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True ReplicaSetUpdated
OldReplicaSets: <none>
NewReplicaSet: web-deploy-56865ddd5c (10/10 replicas created)# ここ注目
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 16m deployment-controller Scaled up replica set web-deploy-56865ddd5c to 3
Normal ScalingReplicaSet 16m deployment-controller Scaled down replica set web-deploy-859565657d to 8
Normal ScalingReplicaSet 16m deployment-controller Scaled up replica set web-deploy-56865ddd5c to 5
Normal ScalingReplicaSet 12m deployment-controller Scaled down replica set web-deploy-859565657d to 3
Normal ScalingReplicaSet 12m deployment-controller Scaled up replica set web-deploy-56865ddd5c to 10
Normal ScalingReplicaSet 35s deployment-controller Scaled down replica set web-deploy-859565657d to 0
まえのバージョンのコンテナに戻った!(^^)!
まとめ
ロールバックとロールバックの確認ができた!(^^)!
Discussion