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

External Secrets Operator因Webhook证书问题无法创建External Secret

External Secrets Operator Webhook证书验证失败问题

问题描述

External Secrets Operator(ESO)的三个部署在external-secrets命名空间初始运行正常,ClusterSecretStore配置完成后,External Secret可正常创建与同步。但运行一段时间后Webhook部署发生重启,此时创建新External Secret时出现如下错误:

Error from server (InternalError): error when creating "test-preprod.yaml": Internal error occurred: failed calling webhook "validate.externalsecret.external-secrets.io": failed to call webhook: Post "https://external-secrets-operator-webhook.external-secrets.svc:443/validate-external-secrets-io-v1beta1-externalsecret?timeout=5s": x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "external-secrets")

同时Webhook Pod日志报错:

2023/11/17 08:06:25 http: TLS handshake error from xx.xxx.xx.x:xxxxx: remote error: tls: bad certificate

部署未配置certManager,依赖ESO自身的证书创建与管理机制,但该机制出现异常。

复现步骤

  • 等待ESO运行一段时间,直到Webhook部署发生重启
  • 创建新的External Secret,触发上述错误

解决方案

手动重新生成ESO Webhook证书

  1. 删除ESO自动创建的证书相关资源:
kubectl delete secret external-secrets-operator-webhook -n external-secrets
kubectl delete certificaterequest external-secrets-operator-webhook -n external-secrets
kubectl delete validatingwebhookconfiguration validate.externalsecret.external-secrets.io
  1. 重启ESO控制器部署,触发证书重新生成:
kubectl rollout restart deployment external-secrets-operator -n external-secrets
  1. 验证证书状态:
kubectl get secret external-secrets-operator-webhook -n external-secrets
kubectl get validatingwebhookconfiguration validate.externalsecret.external-secrets.io

确认新证书已生成,且ValidatingWebhookConfiguration的CA bundle已更新。

临时绕过Webhook验证(仅用于紧急排查)

如果需要快速恢复功能,可临时禁用Webhook验证:

kubectl patch validatingwebhookconfiguration validate.externalsecret.external-secrets.io -p '{"webhooks":[{"name":"validate.externalsecret.external-secrets.io","clientConfig":{"caBundle":""},"rules":[],"failurePolicy":"Ignore"}]}'

注意:此方法会关闭External Secret的验证逻辑,仅建议在紧急场景下使用,问题解决后需恢复Webhook配置。

长期优化方案

考虑部署cert-manager来管理ESO的Webhook证书,避免ESO自带证书管理机制的不稳定问题:

  1. 安装cert-manager
  2. 重新部署ESO,启用cert-manager集成:
helm upgrade --install external-secrets external-secrets/external-secrets -n external-secrets --set webhook.certManager.enabled=true

内容的提问来源于stack exchange,提问作者Satyam Bhatia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:33:19