Kubernetes 通过Helm在GKE中部署Kong API网关并使用Google管理的证书
我们目前正在尝试在GKE集群中部署Kong,目标是将证书管理委托给Google的负载平衡器(SSL终止应该在这里进行) 我们面临的问题是,谷歌的所有文档都专注于部署一些服务,并使用其专用的负载平衡器直接连接到入口 当前有效的配置(不含Kong)如下所示:Kubernetes 通过Helm在GKE中部署Kong API网关并使用Google管理的证书,kubernetes,google-cloud-platform,google-kubernetes-engine,kong,google-cloud-load-balancer,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Kong,Google Cloud Load Balancer,我们目前正在尝试在GKE集群中部署Kong,目标是将证书管理委托给Google的负载平衡器(SSL终止应该在这里进行) 我们面临的问题是,谷歌的所有文档都专注于部署一些服务,并使用其专用的负载平衡器直接连接到入口 当前有效的配置(不含Kong)如下所示: # values.yml (from Service X inside GKE, using Helm) ... ingress: enabled: true hostname: example.com annotations:
# values.yml (from Service X inside GKE, using Helm)
...
ingress:
enabled: true
hostname: example.com
annotations:
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: example-static-ip
ingress.gcp.kubernetes.io/pre-shared-cert: example-cert
...
但是,当我们将gce
的kong
更改为ingress.class时,所有其他注释都不会继续工作。这是意料之中的,因为现在Kong的代理是负载均衡器,应该是告诉Google的LB如何生成自己的代理
因此,将这些注释添加到代理服务中应该相当简单
根据这一系列事件:
- K8s入口创建代理服务
- 香港代理服务产生谷歌的LB
#values.yml(金刚,使用头盔)
...
代理:
类型:负载平衡器
注释:{}TL;DR
不幸的是,无法将谷歌管理的证书与Kong Ingress一起使用。
确切地说,GKE
中的谷歌托管证书只能与以下内容一起使用:
- 外部HTTP负载平衡入口
正如文件所指出的:
注意:此功能仅适用于用于外部HTTP负载平衡的入口
--
解释
根据文件(稍加修改):
创建具有以下类的入口对象时:
kubernetes.io/ingres.class:gce
控制器创建并根据入口及其相关服务中的信息对其进行配置
--
使用不同的ingres
控制器,如(nginx-ingres、traefik、kong)需要使用负载平衡器类型的服务
在GKE
中使用上述服务
将自动创建(L4)指向您的入口
控制器。从这一点开始,通信量将根据ingres
资源和相应的ingres.class
重定向到特定的服务
小费
你可以在金刚的掌舵图上看到,它也在用同样的方法
舵机安装孔/孔孔入口-试运行-调试
要在客户端和kong之间建立安全连接,您需要执行以下操作之一:
- 使用
证书管理器
为入口
控制器提供证书。
- 以其他方式提供证书,并将其作为机密提供给入口控制器使用。
旁注:在这两种情况下,SSL终止都将发生在入口控制器上
回答问题部分:
定制LB的配置应在Kong的服务范围内进行(据我所知):
#values.yml(金刚,使用头盔)
...
代理:
类型:负载平衡器
注释:{}太好了,谢谢你澄清了很多方面。我想知道的最后一个细节是,当您说“使用以其他方式提供的证书”时,GCP可能是一个选项。然而,正如我们所意识到的,它们都不能被下载,然后作为秘密注入(尽管它们有其他限制)。所以,总而言之,证书应该由其他人颁发,对吗?是的,你是对的。其中一个选项可以是:。我添加了证书管理器作为可行的解决方案。它可以使用lets encrypt
设置证书。
# values.yml (Kong, using Helm)
...
proxy:
type: LoadBalancer
annotations: {} <-- Here
http:
...
tls:
...
...