k8s 入口多个与 tls 主机
k8s ingress multiple with tls hosts
我正在尝试在 gke 上配置入口以在两个不同的主机上提供两个不同的 ssl 证书。
我的 SSl 证书存储为机密,我的 k8s 版本是 1.10.9-gke.0(我目前正在尝试升级到 1.11 以查看是否有任何变化)。
这是我的入口配置:
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 here 上打开了一个问题。
升级到 k8s 1.11+ 解决了问题。
我正在尝试在 gke 上配置入口以在两个不同的主机上提供两个不同的 ssl 证书。
我的 SSl 证书存储为机密,我的 k8s 版本是 1.10.9-gke.0(我目前正在尝试升级到 1.11 以查看是否有任何变化)。
这是我的入口配置:
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 here 上打开了一个问题。
升级到 k8s 1.11+ 解决了问题。