ssl - 带有 tls 主机的 k8s 入口多个
问题描述
我正在尝试在 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 上打开了一个问题。
解决方案
升级到 k8s 1.11+ 解决了这个问题。
推荐阅读
- php - Laravel 模型中的几个类
- php - 如何在 MacOS 上修复“警告:mysqli::__construct(): (HY000/1045): Access denied for user 'user'@'localhost' (using password: YES)”
- python - 如何冻结可变的默认参数值?
- javascript - 在按钮单击时将部分视图加载为模态
- random - 寻找一个简单的伪随机数生成函数的值
- c++ - 使用 Open GL 无法正确加载 bmp 纹理
- pointers - OCAML 中的命令式指针类型数据结构
- php - 我应该如何为 php 中的每个问题提供一个答案进行测验?
- unity3d - Unity UI 未在脚本中将可交互性设置为 true
- arrays - Vue.js 创建选择器,显示来自选定数据集的数据