执行Helm升级遇external-secrets-webhook无可用端点错误求助
问题:Helm升级失败,ExternalSecret Webhook无可用端点
执行命令与错误信息
执行命令:
helm upgrade --install backend ./k8s "$@"
出现错误:
Error: UPGRADE FAILED: cannot patch "api" with kind ExternalSecret: Internal error occurred: failed calling webhook "validate.externalsecret.external-secrets.io": Post "https://external-secrets-webhook.external-secrets.svc:443/validate-external-secrets-io-v1beta1-externalsecret?timeout=5s": no endpoints available for service "external-secrets-webhook"
已尝试操作
添加--atomic参数执行回滚,失败原因与上述一致。
相关配置
Helm模板配置
{{- if .Values.awsSecret.enabled }} apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: {{ .Values.applicationName }} namespace: {{ .Values.namespace }} labels: {{- include "application.labels" . | nindent 4 }} spec: refreshInterval: 1m secretStoreRef: name: cluster-secret-store kind: ClusterSecretStore target: name: {{ .Values.applicationName }} creationPolicy: Owner dataFrom: - extract: key: {{ .Values.awsSecret.name }} {{- end }}
GitHub Actions配置
- helm/upgrade-helm-chart: atomic: false chart: ./k8s helm-version: v3.8.2 release-name: backend namespace: default values: ./k8s/values-${ENV}.yaml values-to-override: "image.tag=${CIRCLE_TAG},\ image.repository=trak-${ENV}-backend,\ image.registry=${AWS_ECR_ACCOUNT},\ env=${ENV},\ applicationName=api,\ applicationVersion=${CIRCLE_TAG}"
错误原因分析
核心问题是External Secrets Operator的webhook服务external-secrets-webhook没有可用的后端端点,即该服务对应的Pod未正常运行,或者Pod与Service的标签匹配失败。权限调整如果涉及到EKS节点权限、External Secrets Operator服务账号权限,也可能间接导致Pod启动失败,但优先排查Pod与服务的状态。
调试与解决步骤
检查External Secrets Operator命名空间下的Pod状态:
kubectl get pods -n external-secrets若出现
CrashLoopBackOff、Pending等异常状态,查看Pod日志定位问题:kubectl logs <异常Pod名称> -n external-secrets验证webhook服务的端点关联情况:
kubectl describe service external-secrets-webhook -n external-secrets查看
Endpoints字段,若为空则说明没有Pod匹配该服务的标签选择器,需检查Pod标签与Service标签是否一致。检查ClusterSecretStore状态:
kubectl get clustersecretstore cluster-secret-store确认
Status为Ready,排除SecretStore配置错误导致的连锁问题。紧急恢复方案(绕过webhook):
如果确认webhook服务完全不可用,可临时跳过验证:- 给ExternalSecret资源添加注解:
metadata: annotations: external-secrets.io/webhook: "false" - 或者直接删除验证webhook配置:
kubectl delete validatingwebhookconfiguration external-secrets-validating-webhook-configuration
- 给ExternalSecret资源添加注解:
排查权限变更影响:
检查External Secrets Operator的服务账号权限,确认是否有权限访问AWS Secrets Manager(若使用IRSA);同时验证EKS节点权限是否足够拉取镜像、运行Pod。
内容的提问来源于stack exchange,提问作者Carlos Soler
相关产品推荐
相关产品推荐

