2021/11/08
EKSのバージョンをアップグレードする
今回は、弊社で管理している開発用に使っている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が使いやすくていいかなと思います。
以上です。
関連する記事
[小〜中規模向け]GKEにTiDBをデプロイする
MySQL互換のNewSQLであるTiDBをGKEにデプロイしてみました。
NATS JetStream Controllerを使ってNATSをGKEにデプロイする
helm chartのnackを使って、NATS JetStreamサーバーをデプロイして、Stream/Consumerをk8sリソースとして管理する
GKEにDragonflydbをデプロイする
redis互換のdragonflydbをGKEにデプロイしました
[GKE]Kafka Strimziをアップグレードする
GKEにデプロイしているKafka Strimzi 0.26.0を0.30.0にアップグレードする