【EKS】アドオンバージョンを更新する手順

本記事では、EKS アドオンのバージョンを更新する手順について解説する。

dashboard

前提


今回は、下記ケースのEKSアドオンの更新を行う。

  • アドオンバージョンアップ先:最新
  • EKSクラスターバージョン:EKS 1.29

説明


EKSを運用していく上でバージョンアップ必要なサービスは大きく以下の3つに分けられる。

EKS アドオンとは、Kubernetes の運用機能を拡張するための一般的な運用ソフトウェアである。マネージドノードグループの場合、VPC CNI plugin、CoreDNS、Kube-proxyはデフォルトでインストールされている。

他にも、EBSを利用可能にするためのAmazon EBS CSI ドライバーなどがある。

  • EKSクラスター(kubernetes APIサーバー、kubernetes)
  • EKSノードグループ
  • EKSアドオン
  • ALB Load Balancer Controller

アドオン以外の3つのバージョンアップ手順についても、本ブログで詳細に解説している。

ダウンタイム・影響


バージョンアップ中のアプリケーションへのダウンタイム

EKSアドオンのバージョンアップ中に、そのEKSでホストしているアプリケーションに対して、ダウンタイムは発生しない。

各アドオンのバージョンアップは、デフォルトでは、他のPodと同様にローリングリスタートで行われるため、ダウンタイムは基本発生しない。

各アドオンのバージョンアップ戦略の詳細は、アドオンのPodを確認するとよい。

バージョンアップによるアプリケーションへの影響

EKSアドオンのバージョンアップ中や後に、アプリケーションへの影響は発生する可能性がある。

各アドオンのReleaseを確認するとよい。

Releases · kubernetes-sigs/aws-ebs-csi-driver

バージョンアップ手順


EKSアドオンをバージョンアップする

  1. 下記コマンドを実行し、利用されているアドオンを確認する
eksctl get addon --<cluster name>
  1. 1の手順でで表示されたアップデート可能なアドオンをaddons:以下に記載し、ファイルを作成する
  • Versionは最新バージョンのLatestを指定
  • serviceAccountRoleARNは1のコマンドでIAMROLE列にRoleが表示された場合のみそれを記載する
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: <cluster-name>
  region: <region-code>

addons:
- name: vpc-cni
  version: latest
- name: aws-guardduty-agent
  version: latest
- name: coredns
  version: latest
- name: kube-proxy
  version: latest
- name: aws-ebs-csi-driver
  version: latest
  serviceAccountRoleARN: arn:aws:iam::111122223333:role/role-name #最初のコマンドでIAMROLE列にRoleが表示された場合のみそれを記載
  resolveConflicts: preserve
  1. 下記コマンドを実行し、アドオンをアップデートする
eksctl update addon -f <file name>.yaml
  1. 下記コマンドを実行し、アドオンが正常に更新されたことを確認する
eksctl get addon --<cluster name>

※EKSクラスターのバージョンアップの詳細はAmazon EKS アドオンの管理を参照