EKS アップデート手順ざっくりまとめ (1)
ユーザーガイド確認
アップデート対象のバージョンについて重要な記載がないか確認しておく。
例えば 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
(オプション) クラスターを更新する前に、そのクラスターに Kubernetes Cluster Autoscaler をデプロイしてある場合は、更新後の Kubernetes のメジャーバージョンとマイナーバージョンに一致するように、Cluster Autoscaler を最新バージョンに更新します。
現在のバージョンの確認方法は以下。
kubectl get deployment cluster-autoscaler -n kube-system -o yaml | grep "image:"
AWS Load Balancer Controller
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
上記ユーザーガイドを確認しアップグレードが必要か判断する。
現在のバージョンの確認方法は以下。
kubectl describe daemonset aws-node -n kube-system | grep amazon-k8s-cni: | cut -d : -f 3
CoreDNS
上記ユーザーガイドを確認しアップグレードが必要か判断する。
現在のバージョンの確認方法は以下。
kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
kube-proxy
上記ユーザーガイドを確認しアップグレードが必要か判断する。
現在のバージョンの確認方法は以下。
kubectl describe daemonset kube-proxy -n kube-system | grep Image | cut -d ":" -f 3
開発環境を使って、調査した情報を踏まえ実際の手順書に落とし込んでいく。
EKS アップデート手順ざっくりまとめ (2) につづく。
Discussion