如何使用 Kops 在 AWS 中公开部署在 kubernetes 上的 GRPCS 服务
How to expose GRPCS service deployed on kubernetes in AWS using Kops
我正在部署一个使用 tls 应用程序的 grpc 应用程序(grpcs精确的)。使用 Kops 工具将应用程序部署到 AWS 云中的 kubernetes 集群。我正在使用自签名证书进行身份验证(到目前为止)。问题是我找不到任何关于如何正确地将此类服务暴露给外部世界 的指南。到处都是点点滴滴,但似乎没有什么能满足我的要求。更高级别的复杂性——我需要在同一服务上公开多个端口,因此我不能对 k8s 使用 Ingress 规则,因为我的客户端应用程序限制使用 url 中的任何路径并要求我仅指定主机和端口。在集群内部,一切都已设置并在授权和正确的 DNS 解析下按预期工作。
理想情况下我想要:
- 将grpcs请求代理到集群中特定服务的解决方案。
- 引入具有相同功能的负载均衡器的解决方案
非常感谢您的宝贵时间!
好的。谢谢足以解决问题。注意注释部分。
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "9999"
spec:
ports:
- port: 9999
targetPort: 9999
protocol: TCP
selector:
app: my-service
type: LoadBalancer
然后我不得不将带有平衡器 dns 名称的 A 记录添加到 Route 53,它成功了。
随着时间的推移,我重申了解决方案并找到了 external-dns sidecar container that watches all services appearing in the cluster, searches for certain annotation and creates Route53 records automatically. I could only make it work with KIAM 管理集群节点角色的边车容器。事实证明,这两个依赖项在生产中表现良好。
我正在部署一个使用 tls 应用程序的 grpc 应用程序(grpcs精确的)。使用 Kops 工具将应用程序部署到 AWS 云中的 kubernetes 集群。我正在使用自签名证书进行身份验证(到目前为止)。问题是我找不到任何关于如何正确地将此类服务暴露给外部世界 的指南。到处都是点点滴滴,但似乎没有什么能满足我的要求。更高级别的复杂性——我需要在同一服务上公开多个端口,因此我不能对 k8s 使用 Ingress 规则,因为我的客户端应用程序限制使用 url 中的任何路径并要求我仅指定主机和端口。在集群内部,一切都已设置并在授权和正确的 DNS 解析下按预期工作。
理想情况下我想要:
- 将grpcs请求代理到集群中特定服务的解决方案。
- 引入具有相同功能的负载均衡器的解决方案
非常感谢您的宝贵时间!
好的。谢谢足以解决问题。注意注释部分。
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "9999"
spec:
ports:
- port: 9999
targetPort: 9999
protocol: TCP
selector:
app: my-service
type: LoadBalancer
然后我不得不将带有平衡器 dns 名称的 A 记录添加到 Route 53,它成功了。
随着时间的推移,我重申了解决方案并找到了 external-dns sidecar container that watches all services appearing in the cluster, searches for certain annotation and creates Route53 records automatically. I could only make it work with KIAM 管理集群节点角色的边车容器。事实证明,这两个依赖项在生产中表现良好。