LoginSignup
2
1

EKSのPlatformVersion更新でcorednsのpodが起動しなくなった話

Last updated at Posted at 2024-01-26

corednsがずっとPending

EKS作成後、なぜかcorednsがずっとpending

$ kubectl get pod -n kube-system
NAME                      READY   STATUS    RESTARTS   AGE
coredns-5cb878ffc-ppxd6   0/1     Pending   0          171m
coredns-5cb878ffc-tb578   0/1     Pending   0          171m

今までは以下の2番の手順でアノテーションを削除することで起動できていた。
image.png

しかしある日そのアノテーションは使用されなくなり、以下のコマンドが失敗する。

$ kubectl patch deployment coredns \
>     -n kube-system \
>     --type json \
>     -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'
The request is invalid

というかこのアノテーションって何のために記載されていたのだろうか。

原因と対処

結果的には、podを再起動することで解決。

原因はFargate profileが適用される前にcorednsのpodが起動したためだと思われる。
しかしEKS作成時点でcorednsのpodはFargate profile適用前に自動で起動するので、Fargate Profile適用後にかならずpodを再起動しなくてはならないのでは。

そして、今までの手順に記載されていたアノテーションの削除は、
アノテーションの削除が必要なのではなく、podを再起動させるための手段だったのかなと推測。

PlatformVersionの更新には注意を!

こういう小さな変更は告知なしで実施される傾向があると思います。
どうやら、EKSのPlatformVersionが更新されるタイミングで細かい仕様が変更が行われているようです。

今回は、公開されているドキュメントの更新より先にEKSのPlatformVersionが更新されていました。
EKS Clusterのバージョンは当然意識すると思いますが、PlatformVersionの更新には注意が必要ですね。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1