Closed7

EKS CoreDNSアドオン v1.10.1-eksbuild.2 にはPDBが含まれる(v1.9.3-eksbuild.5も)

mikutasmikutas

クラスターを 1.26 から 1.27 へ更新するとき、あわせてCoreDNSアドオンも更新した

  # module.eks.aws_eks_addon.this["coredns"] will be updated in-place
  ~ resource "aws_eks_addon" "this" {
      ~ addon_version     = "v1.9.3-eksbuild.5" -> "v1.10.1-eksbuild.2"
mikutasmikutas

自前でPDBを用意していた

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: coredns
  namespace: kube-system
spec:
  minAvailable: 1
  selector:
    matchLabels:
      eks.amazonaws.com/component: coredns
      k8s-app: kube-dns

これとアドオンが提供するようになったPDBがコンフリクトした

mikutasmikutas

アドオンが提供するようになったPDB

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  labels:
    eks.amazonaws.com/component: coredns
    k8s-app: kube-dns
  name: coredns
  namespace: kube-system
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      eks.amazonaws.com/component: coredns
      k8s-app: kube-dns
mikutasmikutas

https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html

CoreDNS デプロイメントの安定性と可用性を向上させるために、バージョン v1.9.3-eksbuild.5 以降および v1.10.1-eksbuild.2 は PodDisruptionBudget を使用してデプロイされます。既存の PodDisruptionBudget をデプロイしている場合、これらのバージョンへのアップグレードは失敗する可能性があります。アップグレードが失敗した場合は、次のいずれかのタスクを完了すると問題が解決します。

  • Amazon EKS アドオンのアップグレードを行うときは、競合解決オプションとして既存の設定をオーバーライドすることを選択します。デプロイメントに他のカスタム設定を行った場合は、アップグレード後に他のカスタム設定を再適用できるように、アップグレードする前に必ず設定をバックアップしてください。
  • 既存の PodDisruptionBudget を削除し、アップグレードを再試行してください。
mikutasmikutas

v1.10.1-eksbuild.2v1.9.3-eksbuild.5ではPDBのspecが異なる

だからv1.9.3-eksbuild.5に上がるときはコンフリクトせず、v1.10.1-eksbuild.2に上げるときにコンフリクトした

v1.10.1-eksbuild.2

maxUnavailable: 1

spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      eks.amazonaws.com/component: coredns
      k8s-app: kube-dns

v1.9.3-eksbuild.5

minAvailable: 1

spec:
  minAvailable: 1
  selector:
    matchLabels:
      eks.amazonaws.com/component: coredns
      k8s-app: kube-dns
このスクラップは2023/08/02にクローズされました