Closed7
EKS CoreDNSアドオン v1.10.1-eksbuild.2 にはPDBが含まれる(v1.9.3-eksbuild.5も)
クラスターを 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"
自前で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がコンフリクトした
アドオンが提供するようになった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
CoreDNS デプロイメントの安定性と可用性を向上させるために、バージョン v1.9.3-eksbuild.5 以降および v1.10.1-eksbuild.2 は PodDisruptionBudget を使用してデプロイされます。既存の PodDisruptionBudget をデプロイしている場合、これらのバージョンへのアップグレードは失敗する可能性があります。アップグレードが失敗した場合は、次のいずれかのタスクを完了すると問題が解決します。
- Amazon EKS アドオンのアップグレードを行うときは、競合解決オプションとして既存の設定をオーバーライドすることを選択します。デプロイメントに他のカスタム設定を行った場合は、アップグレード後に他のカスタム設定を再適用できるように、アップグレードする前に必ず設定をバックアップしてください。
- 既存の PodDisruptionBudget を削除し、アップグレードを再試行してください。
v1.10.1-eksbuild.2
とv1.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
アドオンのオプションでPDBのspecをいじることはまだできない
このスクラップは2023/08/02にクローズされました