为EKS 1.22升级更新pod-identity-webhook突变Webhook配置
EKS 1.21升级至1.22时Pod Identity Webhook的API版本处理
首先纠正一个关键细节:Kubernetes 1.22中弃用并移除的是admissionregistration.k8s.io/v1beta1 API版本,而admissionregistration.k8s.io/v1是该API组的稳定版本,并非弃用状态。推测你可能混淆了版本号,实际遇到的是该Webhook配置使用了v1beta1版本,需要升级到v1以适配1.22集群。
自动更新说明
由AWS官方管理的Pod Identity Webhook属于EKS托管组件,会随集群升级流程自动完成API版本的更新。AWS在发布EKS新版本时,会同步迭代所有托管组件的配置,确保其符合对应Kubernetes版本的API规范。正常情况下,你无需手动干预,集群升级过程中AWS会自动将Webhook配置迁移到兼容的v1版本。
需要注意:如果之前你手动修改过这个AWS托管的Webhook资源(比如自定义了规则或参数),可能会破坏AWS的自动更新逻辑,导致组件无法自动升级。这种情况下,建议先将Webhook恢复为AWS默认配置,再执行集群升级。
手动升级操作(仅当自动更新失败时)
若自动更新未触发,可按以下步骤手动升级:
- 备份当前配置
先导出Webhook的现有配置,留作备份:kubectl get mutatingwebhookconfiguration pod-identity-webhook -o yaml > pod-identity-webhook-backup.yaml - 修改API版本及配置结构
编辑备份的YAML文件,做以下调整:- 将
apiVersion从admissionregistration.k8s.io/v1beta1改为admissionregistration.k8s.io/v1 - 将原
rules数组外的failurePolicy、namespaceSelector、sideEffects等字段保留在顶层(v1版本要求这些字段位于顶层而非rules内) - 添加
admissionReviewVersions字段,设置为["v1", "v1beta1"]以兼容新旧版本的准入请求 - 确保
rules中的apiGroups、apiVersions、operations、resources配置保持不变
- 将
- 应用更新后的配置
执行命令替换现有Webhook配置:kubectl replace -f pod-identity-webhook-backup.yaml - 验证更新结果
检查Webhook的API版本是否已更新:kubectl get mutatingwebhookconfiguration pod-identity-webhook -o yaml | grep apiVersion
内容的提问来源于stack exchange,提问作者shivams
相关产品推荐
相关产品推荐

