【Kubernetes】更新したイメージをロールバックさせるには? no.6


こんにちは。まゆみです

Kubernetesについての記事をシリーズで書いています。

前回の記事でContainerのイメージを更新した時にどのようにしたら反映されるかを書いてきました。

今回の記事では、逆に更新したイメージをまた元に戻すにはどうしたらいいのか書いていきますね。

ではさっそくはじめていきます。

1つ前のバージョンに戻りたい時

更新させる『1つ前』のものにロールバックさせたい時は下記のコマンドになります

kubectl rollout undo deployment/<deployment名>

特定の時点まで戻りたい

では何回か更新をした後、ある特定の時点までロールバックさせたい場合どうしたら良いのでしょうか?

kubectl rollout history deployment/<deployment名>

で今まで何回更新してきたかを見ることができます

そして先ほどのコマンドに --revision=オプションを付けることで特定の時点で使っていたImageなどを調べることができます

私の場合で言いますと

latest は英語で 『Hello from this NodeJS app!』
2 は『こんにちは。nodeのアプリです』
3 は『こんにちは。nodeのアプリです。バージョン3です。』

とテキストを変えてバージョンを分けてみました。

Docker hubでは下のようにバージョン分けして保存されています

--revision=を付けてそれぞれを詳しく調べると、--revision=5がタグが付いていない、latestバージョンのイメージで作ったdeploymentだと分かったので、この時点までロールバックさせます。

1つ前のバージョンにロールバックをする時に使ったコマンドに『--to-revision=』オプションを付けます

kubectl rollout undo deployment/<deployment名> --to-revision=5

--revision=4 ではImageのバージョン3が使われて更新されていたみたいなので、こちらの時点まで戻してみます。

kubectl rollout undo deployment/<deployment名> --to-revision=4