使用 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