K8s Ingress 多个 TLS 主机的设置

6
我正在尝试在gke上配置一个ingress,以便在两个不同的主机上提供两个不同的ssl证书。
我的SSL证书存储为secrets,我的k8s版本是1.10.9-gke.0(我目前正在尝试升级到1.11,看看是否会有变化)。
这是我的ingress配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/backends: '{"k8s-be-30086--b1574396a1d7162f":"HEALTHY","k8s-be-31114--b1574396a1d7162f":"HEALTHY"}'
    ingress.kubernetes.io/forwarding-rule: k8s-fw-default-si-preproduction-ingress--b1574396a1d7162f
    ingress.kubernetes.io/https-forwarding-rule: k8s-fws-default-si-preproduction-ingress--b1574396a1d7162f
    ingress.kubernetes.io/https-target-proxy: k8s-tps-default-si-preproduction-ingress--b1574396a1d7162f
    ingress.kubernetes.io/ssl-cert: k8s-ssl-default-si-preproduction-ingress--b1574396a1d7162f
    ingress.kubernetes.io/static-ip: k8s-fw-default-si-preproduction-ingress--b1574396a1d7162f
    ingress.kubernetes.io/target-proxy: k8s-tp-default-si-preproduction-ingress--b1574396a1d7162f
    ingress.kubernetes.io/url-map: k8s-um-default-si-preproduction-ingress--b1574396a1d7162f
  creationTimestamp: 2018-10-26T09:45:46Z
  generation: 9
  name: si-preproduction-ingress
  namespace: default
  resourceVersion: "1846219"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/si-preproduction-ingress
  uid: e9bba9ad-d903-11e8-872e-42010a840feb
spec:
  tls:
  - hosts:
    - domain_1
    secretName: cert_1
  - hosts:
    - domain_2
    secretName: cert_2
  rules:
  - host: domain_1
    http:
      paths:
      - backend:
          serviceName: si-preproduction-service
          servicePort: 80
        path: /*
  - host: domain_2
    http:
      paths:
      - backend:
          serviceName: si-preproduction-service
          servicePort: 80
        path: /*
status:
  loadBalancer:
    ingress:
    - ip: our_ip

我的cert_1正确地在domain_1上提供,但它也在domain_2上提供(而不是cert_2),因此没有像它应该的那样保护我的连接。

我还在github上开了一个问题这里


"Hosts是TLS证书中包含的主机列表。此列表中的值必须与tlsSecret中使用的名称匹配。如果未指定,则默认为负载均衡器控制器为此Ingress提供通信服务的通配符主机设置。您能确认每个密钥中的主机和域名是否正确匹配吗?" - Patrick W
1
是的,他们确实这样做了。无论如何,升级到最新的k8s版本解决了问题。感谢您的时间。 - Mathieu K.
1个回答

3

升级到k8s 1.11+版本解决了该问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接