knative 配置https

1、部署istio  (当前的istio 1.12.0 不用这样整了,直接进入第2步)

首先按照正常部署istio,部署时开启SDS

 

 

 2、创建secret

首先根据域名创建证书和密匙:

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ./tls.key -out ./tls.crt -subj "/C=CN/ST=BeiJing/L=BeiJing/O=Company/OU=Company/CN=*.test.domain"

在K8s集群的某台机器上放置证书文件,进到证书文件目录,后基于kubectl命令创建证书secret

kubectl create -n istio-system secret tls istio-ingressgateway-certs --key tls.key --cert tls.crt

 

注意:
secret命令空间一定要选istio-system,否则Istio ingress-gateway pod容器无法加载secret

ingress-gateway正确加载证书日志:

 

 

3、创建gateway

knative 创建的ksvc指向gateway的方式:route -> kingress(ingress.networking.internal.knative.dev) -> vs->gateway

http时配置文件:

 

 

https更改为:

可以同时支持http和https:

 

 

4、通过virtualservice关联gateway

这一步knative会自动创建vs

 

 如果使用http,那么第一步正常装,第二步略过,第三步选http配置就可以了。

 

 

也可以自动生成TLS证书,但是要求istio 1.3以上:https://www.cnblogs.com/muzinan110/p/17067047.html

 

注意,  按照以上方法配置了后,发现curl服务会在 queue-proxy sidecar那个地方出现connection reset by peer,看了下knative的queue-proxy的源码,发现1.1版本在queue-proxy这个地方不支持https端口,到了1.4版本才开始支持。

https://github.com/knative/serving/blob/release-1.1/pkg/reconciler/revision/resources/queue.go

https://github.com/knative/serving/blob/release-1.4/pkg/reconciler/revision/resources/queue.go

 

 参考:

https://blog.csdn.net/luo15242208310/article/details/109491845

https://cloud.tencent.com/developer/news/617053

https://www.jianshu.com/p/0f8fa5ad7290

posted on 2021-11-02 14:15  MissSimple  阅读(67)  评论(0编辑  收藏  举报

导航