生涯未熟

生涯未熟

プログラミングをちょこちょこと。

GKEアップグレードの時にいつもやっていること

GKE使っていると定期的にアップグレードの圧がやってきますね。
エイヤッと不用意にクラスタのアップグレードを行うと、deprecatedとなるapiVersionを使ってしまい最悪サービスが不通になる可能性もあります。

本記事ではアップグレード時にいつもやっていることをまとめていますが、暫定のものになるので変遷とともに各々改善していってください。

やっていること

まずは上げたいバージョンにアップグレードしても大丈夫かを調査するところから開始します。 確認することは以下の2つ。

  • 上げるバージョンに対して非推奨APIを使っていないかを確認
  • k8s Change Logを確認

上げるバージョンに対して非推奨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のドキュメント内にアップグレードガイドがあると思うので、そちらを参考に対応を進めるのが良いです。

cloud.google.com

k8s Change Logを確認

基本的には非推奨APIの指定だけで問題ないと思いますが、念の為k8sのChange Logにも目を通し、 Upgrade Notes などアップグレードに関する情報を読むことをオススメします。

k8s Change Log:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/README.md

以上が、私がGKEのアップグレード時にやっていることになります。最近ではコンソール上でも非推奨APIを使っていないか?などを出してくれるのですが、上記のようなやり方もありますよというご紹介でした。