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

GKE集群Ambassador Host报错无效TLS Secret被标记为非活跃求助

GKE Ambassador TLS Secret报错排查解决方案

对应报错信息:
Secret myapp-ssl-cert.ambassadorpoc unknown
Host myapp: invalid TLS secret myapp-ssl-cert, marking inactive

常见原因1:Secret不存在、名称拼写错误或命名空间不匹配

  • 你配置的Host资源位于ambassadorpoc命名空间,默认情况下Ambassador会优先从Host所在命名空间查找对应Secret,首先执行命令确认Secret存在且名称完全匹配:
    kubectl get secret myapp-ssl-cert -n ambassadorpoc
    
  • 如果返回NotFound错误,有三种可能:Secret名称拼写错误、Secret创建到了其他命名空间、Secret未创建,对应解决方式:
    • 核对Secret名称拼写,确保和Host配置的tlsSecret.name完全一致
    • 将Secret迁移到ambassadorpoc命名空间
    • 在Host的tlsSecret配置中增加namespace字段指定Secret所在命名空间,示例:
      tlsSecret:
        name: myapp-ssl-cert
        namespace: <实际Secret所在命名空间>
      

常见原因2:Secret格式不符合TLS Secret规范

  • Kubernetes标准TLS Secret要求类型为kubernetes.io/tls,且必须包含tls.crt(证书内容)和tls.key(私钥内容)两个字段,执行命令检查Secret配置:
    kubectl describe secret myapp-ssl-cert -n <Secret所在命名空间>
    
  • 若字段名不符(比如用了cert.pem、key.pem等自定义命名),或者类型错误,需要重建Secret,标准创建命令示例:
    kubectl create secret tls myapp-ssl-cert --cert=./你的证书文件路径.crt --key=./你的私钥文件路径.key -n ambassadorpoc
    

常见原因3:证书或私钥内容非法

  • 证书文件可能存在内容不完整、证书链断裂、私钥与证书不匹配、存在多余不可见字符等问题,执行命令验证有效性:
    # 验证证书有效性
    openssl x509 -in tls.crt -text -noout
    # 验证私钥有效性
    openssl rsa -in tls.key -check
    # 验证证书和私钥是否匹配,两个命令返回的哈希值必须一致
    openssl x509 -pubkey -in tls.crt -noout | openssl md5
    openssl rsa -in tls.key -pubout -noout | openssl md5
    
  • 验证不通过的话需要重新申请/导出合法的证书和私钥文件。

常见原因4:Ambassador 缺少Secret读取权限

  • 如果Ambassador部署在独立的命名空间(默认是ambassador),默认RBAC规则可能不允许它读取其他命名空间的Secret,需要为Ambassador的服务账号新增对应命名空间的Secret读取权限,示例RBAC配置:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: secret-reader
      namespace: ambassadorpoc
    rules:
    - apiGroups: [""]
      resources: ["secrets"]
      verbs: ["get", "list", "watch"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: ambassador-secret-reader
      namespace: ambassadorpoc
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: secret-reader
    subjects:
    - kind: ServiceAccount
      name: ambassador # 替换为你实际的Ambassador服务账号名
      namespace: ambassador # 替换为你实际的Ambassador部署命名空间
    

内容的提问来源于stack exchange,提问作者Soorya Prakash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:45:03