2021/11/08

EKSのバージョンをアップグレードする

eksk8saws

今回は、弊社で管理している開発用に使っているEKSクラスターのバージョンをアップさせる際の手順の備忘録です。

操作内容

  • AWS管理コンソールにて、EKS > クラスター > 対象のクラスターにてコントロールプレーンのバージョンをアップさせる(1バージョンをアップさせるのに、10分程度?かかる)
  • EKSのworker nodeに使っている、Auto Scaling グループ / 起動設定を編集する
    • 起動の際に使うインスタンスのimage idは、以下のコマンドを使って取得しておく
# EKS optimized ami instance id.
# see https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/eks-optimized-ami.html
# eksのバージョンや、regionは利用している環境のものに合わせる必要があります。
aws ssm get-parameter \
  --name /aws/service/eks/optimized-ami/1.21/amazon-linux-2/recommended/image_id \
  --region ap-northeast-1 \
  --query Parameter.Value \
  --output text
ami-0c78e48568f9ea043
  • AWS管理コンソールにて、EC2 > Auto Scaling グループ > 対象のAuto Scaling Group > 「インスタンスの更新」タブにて、インスタンスの更新を行う。

今回は、開発用に使っているgitlabやopenprojectなどをhostingしているeksの更新だったため、サービスの一時的な停止(瞬断)を許容できたため
結構乱暴に行いました。

サービスを無停止でバージョンをアップグレードするには、もう少し慎重に行う必要があるため注意してください。
(具体的には、auto scalingグループを新規に一つ追加して、別のnode groupを構築して、実行しているpodやreplicationされているものを先に新規のnode groupに逃がしてから、古いauto scalingグループを削除するような感じにする必要があります。)

感想

割と簡単にアップグレードできましたが、操作のしやすさや視認性の良さはGKEの方が優っていると感じました。

細かいチューニング等(特に権限管理操作)はAWSに軍配が上がるかなというのは感じますが、KubernetesではややGKEが使いやすくていいかなと思います。

以上です。