📒

EKS アップデート手順ざっくりまとめ (1)

2023/05/16に公開

ユーザーガイド確認

アップデート対象のバージョンについて重要な記載がないか確認しておく。

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/update-cluster.html

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html

例えば Kubernetes 1.22 の場合だと下記の部分などが該当し、事前対応が必要となる。

Kubernetes 1.22 では、使用できなくなった複数の API が削除されます。Amazon EKS バージョン 1.22 にアップグレードする前に、アプリケーションを変更する必要がある場合もあります。クラスターを更新する前に、必ず「Kubernetes バージョン 1.22 の前提条件」を確認してください。

開発環境の情報確認

開発環境を使って、アップデートに必要な情報を確認していく。

クラスターコントロールプレーンとノードの Kubernetes バージョンを比較

マイナーバージョンが +/-1 であれば問題ない。

kubectl config use-context {コンテキスト}

kubectl version --short

ノードグループの Kubernetes バージョン確認

1つ前の手順で取得したバージョンと一致すれば問題ない。

kubectl get nodes

pod セキュリティポリシー確認

エラーが出なければ問題ない。

kubectl get psp eks.privileged

eksctl のバージョン確認

ユーザーガイドに記載されているバージョン以降であれば問題ない。

eksctl version

eksctlのインストール方法こちら

サードパーティのバージョン確認

cluster-autoscaler や aws-load-balancer-controller などのモジュールに対してアップグレードが必要か調査していく。

主に使われるモジュールのバージョン確認方法は以下。

Cluster Autoscaler

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/cluster-autoscaler.html

(オプション) クラスターを更新する前に、そのクラスターに Kubernetes Cluster Autoscaler をデプロイしてある場合は、更新後の Kubernetes のメジャーバージョンとマイナーバージョンに一致するように、Cluster Autoscaler を最新バージョンに更新します。

現在のバージョンの確認方法は以下。

kubectl get deployment cluster-autoscaler -n kube-system -o yaml | grep "image:"

AWS Load Balancer Controller

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/aws-load-balancer-controller.html

GitHub のリリースを確認しアップグレードが必要か判断する。

現在のバージョンの確認方法は以下。

kubectl get deployment aws-load-balancer-controller -n kube-system -o yaml | grep "image:"

Kubernetes Metrics Server

GitHub の対応表を確認してアップグレードが必要か判断する。

現在のバージョンの確認方法は以下。

kubectl get deployment -n kube-system metrics-server -o yaml | grep "image:"

Amazon VPC CNI plugin for Kubernetes

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/managing-vpc-cni.html

上記ユーザーガイドを確認しアップグレードが必要か判断する。

現在のバージョンの確認方法は以下。

kubectl describe daemonset aws-node -n kube-system | grep amazon-k8s-cni: | cut -d : -f 3

CoreDNS

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/managing-coredns.html

上記ユーザーガイドを確認しアップグレードが必要か判断する。

現在のバージョンの確認方法は以下。

kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3

kube-proxy

https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/managing-kube-proxy.html

上記ユーザーガイドを確認しアップグレードが必要か判断する。

現在のバージョンの確認方法は以下。

kubectl describe daemonset kube-proxy -n kube-system | grep Image | cut -d ":" -f 3

開発環境を使って、調査した情報を踏まえ実際の手順書に落とし込んでいく。
EKS アップデート手順ざっくりまとめ (2) につづく。

Discussion