本文主要是介绍备考ICA----Istio实验11---为多个主机配置TLS Istio Ingress Gateway实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
备考ICA----Istio实验11—为多个主机配置TLS Istio Ingress Gateway实验
1. 部署应用
kubectl apply -f istio/samples/helloworld/helloworld.yaml -l service=helloworld
kubectl apply -f istio/samples/helloworld/helloworld.yaml -l version=v1
2. 证书准备
接上一个实验,准备第二个证书
openssl req -out example_certs_pana/pana.example.com.csr -newkey rsa:2048 \
-nodes -keyout example_certs_pana/pana.example.com.key \
-subj "/CN=pana.example.com/O=httpbin organization"
签发证书
openssl x509 -req -sha256 -days 365 -CA example_certs_root/example.com.crt \
-CAkey example_certs_root/example.com.key \
-set_serial 0 -in example_certs_pana/pana.example.com.csr \
-out example_certs_pana/pana.example.com.crt
将证书生成secret
因为后续也是使用istio/ingressgateway所以必须放着istio-system命名空间下
kubectl create secret -n istio-system tls pana-credential \
--key=example_certs_pana/pana.example.com.key \
--cert=example_certs_pana/pana.example.com.crt
确认secret被正确创建
kubectl get secrets -n istio-system
3. Istio配置
3.1 Gateway配置
这里新的hello服务和上个实验合用mygateway这个gateway对外提供访问,但各自使用各自的TLS证书.
tls-ingress/2-TLS-gateway.yaml
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:name: mygateway
spec:selector:istio: ingressgateway # use istio default ingress gatewayservers:- port:number: 443name: httpbinprotocol: HTTPStls:mode: SIMPLEcredentialName: httpbin-credential # must be the same as secrethosts:- httpbin.example.com- port:number: 443name: panaprotocol: HTTPStls:mode: SIMPLEcredentialName: pana-credential # must be the same as secrethosts:- pana.example.com
3.2 VirtualService配置
在vs中定义了监听mygateway的hosts是pana.example.com,匹配上uri:/hello后转发给svc helloworld的后端进行响应.
tls-ingress/2-TLS-VirtualService.yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:name: pana
spec:hosts:- "pana.example.com"gateways:- mygatewayhttp:- match:- uri:prefix: /helloroute:- destination:port:number: 5000host: helloworld
可以看到2个服务使用了同一个gw,但各自又有自己的Vs
4. 访问测试
4.1 pana.example.com
linux下
curl -v -HHost:pana.example.com --resolve "pana.example.com:443:192.168.126.220" \--cacert example_certs_root/example.com.crt "https://pana.example.com:443/hello"
4.2 httpbin.example.com
上一个实验部署的httpbin.example.com
linux下
curl -v -HHost:httpbin.example.com --resolve \
"httpbin.example.com:443:192.168.126.220" \
--cacert example_certs_root/example.com.crt \
"https://httpbin.example.com:443/status/418"
至此为多个主机配置TLS Istio Ingress Gateway实验完成
这篇关于备考ICA----Istio实验11---为多个主机配置TLS Istio Ingress Gateway实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!