GKE使っていると定期的にアップグレードの圧がやってきますね。
エイヤッと不用意にクラスタのアップグレードを行うと、deprecatedとなるapiVersionを使ってしまい最悪サービスが不通になる可能性もあります。
本記事ではアップグレード時にいつもやっていることをまとめていますが、暫定のものになるので変遷とともに各々改善していってください。
やっていること
まずは上げたいバージョンにアップグレードしても大丈夫かを調査するところから開始します。 確認することは以下の2つ。
上げるバージョンに対して非推奨APIを使っていないかを確認
Cloud Loggingを使うことで対象バージョンでの非推奨APIを使っていないかどうかをチェックすることができます。 以下のクエリを実行して非推奨APIを使っていないかを確認してみましょう。
resource.type="k8s_cluster" labels."k8s.io/removed-release"="[上げるバージョンを指定]" protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@") protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")
[上げるバージョンを指定]
は対象が仮に1.26であれば1.26とそのまま入れてください。
もし非推奨APIが存在する場合はGKEのドキュメント内にアップグレードガイドがあると思うので、そちらを参考に対応を進めるのが良いです。
k8s Change Logを確認
基本的には非推奨APIの指定だけで問題ないと思いますが、念の為k8sのChange Logにも目を通し、 Upgrade Notes
などアップグレードに関する情報を読むことをオススメします。
k8s Change Log:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/README.md
以上が、私がGKEのアップグレード時にやっていることになります。最近ではコンソール上でも非推奨APIを使っていないか?などを出してくれるのですが、上記のようなやり方もありますよというご紹介でした。