我有一个Kubernetes集群,它有多个租户(在不同的名称空间中)。我想在每个租户中部署一个独立的Istio网关对象,我似乎能够做到这一点。但是,设置TLS需要包含TLS密钥/证书的K8s秘密。文档指出“secret必须在istio-system命名空间中命名为istio-ingressgateway-certs”。这似乎表明每个集群只能有一个TLS秘密。也许我读错了。有没有一种方法可以在它们自己的名称空间中配置独立的Istio网关,并使用它们自己的TLS秘密?我该怎么做呢?
正如istio文档中提供的那样,这是可能的。
在本节中,您将为多个主机配置入口网关httpbin.example.com和bookinfo.com。
因此您需要为bookinfo和Httpin创建私钥,并更新istio-ingressGateway。
bookinfo证书和网关
kubectl exec -it -n istio-system $(kubectl -n istio-system get pods -l istio=ingressgateway -o jsonpath='{.items[0].metadata.name}') -- ls -al /etc/istio/ingressgateway-bookinfo-certs
lrwxrwxrwx 1 root root 14 Jan 3 10:12 tls.crt -> ..data/tls.crt
lrwxrwxrwx 1 root root 14 Jan 3 10:12 tls.key -> ..data/tls.key
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 443
name: https-bookinfo
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-bookinfo-certs/tls.crt
privateKey: /etc/istio/ingressgateway-bookinfo-certs/tls.key
hosts:
- "bookinfo.com"
httpbin证书和网关
kubectl exec -it -n istio-system $(kubectl -n istio-system get pods -l istio=ingressgateway -o jsonpath='{.items[0].metadata.name}') -- ls -al /etc/istio/ingressgateway-certs
lrwxrwxrwx 1 root root 14 Jan 3 10:07 tls.crt -> ..data/tls.crt
lrwxrwxrwx 1 root root 14 Jan 3 10:07 tls.key -> ..data/tls.key
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
spec:
selector:
istio: ingressgateway # use istio default ingress gateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
hosts:
- "httpbin.example.com"
还没有做一个完整的复制,以检查他们是否都工作,但如果这对你不起作用,我会尝试使它和更新的问题。
这个链接可能会有帮助。
我有一个在kubernetes pod中运行的应用程序(在我的本地docker桌面上,启用kubernetes),监听端口8080。然后我有以下kubernetes配置 这个很好用。但我想把443端口改成其他端口,比如8443(因为我将有多个网关)。当我有这个,我不能再访问应用程序了。是否有一些配置我遗漏了?我猜我需要配置Istio来接受8443端口?我使用以下命令安装了istio: 编辑:我读了
我知道10.254.0.1:443实际上提供来自主节点(端口6443上的api)(192.168.0.200)的证书,但如何解析,10.254.0.1提供其有效证书。 以下是clusterip API的描述:[root@master01 dns]#kubectl description service kubernetes namespace:default labels:component=ap
通过本任务,将学习如何: 验证Istio双向TLS认证配置 手动测试认证 开始之前 本任务假设已有一个Kubernetes集群: 已根据Istio安装任务安装Istio并支持双向TLS认证。 注意,要在”Installation steps“中的第5步选择”enable Istio mutual TLS Authentication feature”。 验证Istio双向TLS认证配置 以下命令假
从外部客户端到库伯内特斯集群内的服务器的TLS握手失败。这是关于理解为什么。 我已经配置了一个Istio入口网关,以通过端口15433上接收的TLS,并将其路由到端口433上的服务器。 当客户端尝试TLS握手时,入口网关日志显示活动,但不显示服务器日志,也不显示istio代理日志。 TLS客户端: 日志 Istio入口网关日志: 其中192.168.101.136是myservice pod的IP
我有一个kubernetes cluster 1.6.1运行在kuberentes dashboard(gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.1)上,我无法更新我们域的tls证书,该站点显示为不安全。 它使用的是使用KOPS设置集群时创建的kubernetes-master证书。 在其他部署/吊舱上,我能够使用具有正确tl
服务器{ } 服务器{ curl-v-hhost:subdomain.mydomain.com https://subdomain.mydomain.com:30588 curl-v-hhost:subdomain.mydomain.com--解析subdomain.mydomain.com:30588:ip-address--cacert/opt/psa/var/certificates/scf