You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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服务完全不可用,可临时跳过验证:

    1. 给ExternalSecret资源添加注解:
      metadata:
        annotations:
          external-secrets.io/webhook: "false"
      
    2. 或者直接删除验证webhook配置:
      kubectl delete validatingwebhookconfiguration external-secrets-validating-webhook-configuration
      
  • 排查权限变更影响:
    检查External Secrets Operator的服务账号权限,确认是否有权限访问AWS Secrets Manager(若使用IRSA);同时验证EKS节点权限是否足够拉取镜像、运行Pod。

内容的提问来源于stack exchange,提问作者Carlos Soler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:57:31