繁体   English   中英

如何使用 Kops 在 AWS 中公开部署在 kube.netes 上的 GRPCS 服务

[英]How to expose GRPCS service deployed on kubernetes in AWS using Kops

我正在部署一个使用tls应用程序(准确地说是grpcs )的grpc应用程序。 应用程序部署到使用Kops工具创建的AWS云中的kube.netes集群。 我正在使用自签名证书进行身份验证(到目前为止)。 问题是我找不到任何关于如何正确地将此类服务暴露给外部世界的指南。 到处都是点点滴滴,但似乎没有什么能满足我的要求。 更高级别的复杂性——我需要在同一服务上公开多个端口,因此我不能对 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 容器,它监视集群中出现的所有服务,搜索某些注释并自动创建 Route53 记录。 我只能让它与管理集群节点角色的KIAM sidecar 容器一起使用。 事实证明,这两个依赖项在生产中表现良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM