使用 gke ingress 密钥时出现错误

使用 gke ingress 密钥时出现错误

使用 gke 集群但 ingress 没有加载负载均衡器

错误:同步到 gcp 时出错:运行负载均衡器时出错,同步例程机密不存在

我想知道为什么我得到错误的原因

我想修复这个问题

答案1

根据这位官员的说法文档

此错误的原因是空的 secretName 字段不再是可接受的配置,并且不受支持。Google Kubernetes Engine 不使用 hosts 字段,因为 Common Name 是从证书中读取的。因此,Google 管理的证书不需要在入口清单中指定 IngressTLS 对象,但自管理证书只需要在 IngressTLS 对象中指定 secretName 字段。

修复此错误

您必须验证负载均衡器是否正在使用 Google 管理的证书,并且 Google Kubernetes Engine 入口清单中的 IngressTLS 对象(例如 tls)是否包含主机的条目。例如:

   apiVersion: networking.k8s.io/v1beta1
        
        kind: Ingress
        
        metadata:
        
          name: my-ingress-1
        
          annotations:
        
            ...
        
            networking.gke.io/managed-certificates: <certificate-name>
            kubernetes.io/ingress.class: "gce"
      spec:
        
         rules:
        
          ...
        
          tls:
        
          - hosts:
            - a
            - b 

status:   

   loadBalancer: {}

正如您确认的那样,您正在使用 Google 管理的证书,因此 IngressTLS 对象是不必要的,应该从入口清单中删除。例如:

 tls:
  - hosts:
    - a
    - b

相关内容