こんにちは。
まゆみです。
Kubernetesについての記事をシリーズで書いています
今回の記事では、
ソースコードに変更があった場合、どのように新しいコードに更新させるか
ということに焦点を置いて書いていこうと思います。
ではさっそく始めていきますね。
#新しいコードに更新してみる
では、nodeのアプリを例に説明していきます
例えば、app.jsファイルのテキストに少し変更を加えてみましょう。
この場合、app.jsファイルを書き換えたあと
docker build -t <Image名> .
とImageを再度buildし直しますよね。
その時に、前のイメージ名と同じだと、Kubernetesが新しく更新されたものだと認識してダウンロードし直してくれません。
なので、イメージを新しく作り替えてDocker hubにpushし、そこからpodを作り直すには
docker build -t <image名>:2
と、-t でタグ付けしたイメージに新しいバージョンだと分かるように:(コロン)と数字を書きましょう
例えば、現在Docker hubにあるイメージが、下記のスクショのようなものだとすると
mayumidocker0612/kub-first-app:2
など末尾にバージョンの番号を振ります。
そして新しいイメージをdocker hub にpush します(Kubernetesを使う時はローカルにあるイメージからpodは作れません。Docker hubなどからイメージを引っ張ってpodを作ることになります。)
その後
kubectl set image <オブジェクトの種類>/<オブジェクトの名前> <コンテナ名>=<新しいバージョンのDocker hubにあるイメージ>
で更新する事ができます
ダッシュボードを見てみましょう
新しく更新したイメージによってpodが作られているのが分かります。
また
kubectl rollout status deployment/<deployment名>
で『deployment "deployment名" successfully rolled out』と表示されれば、上手くいっています
#まとめ
今回の記事はこのあたりで締めくくらせていただきます。
次回は今回とは逆にイメージをロールバックさせる時について書いていこうと思います