amazon-web-services - 如何使用 Kops 公开部署在 AWS 中 kubernetes 上的 GRPCS 服务
问题描述
我正在部署一个使用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,它起作用了。
推荐阅读
- r - 选择 R 中路径上或附近的 x/y 点的可能方法
- python - 在列(数据框)中的值之间添加零
- rabbitmq - 使用 Fastapi 的 aio pika 的工作示例
- c# - Jsonconverter 类型恢复为字段上的默认转换器?
- spring-kafka - spring-kafka kafkaStreamsBuilder.getKafkaStreams() 为空
- typescript - Twilio 的 statusCallbackEvent 是否有打字稿类型?
- html - 无法使用背景和蒙版图像生成正确的边框
- rust - Rust 工作区不尊重 .cargo/config.toml 中定义的单个项目目标
- oracle - 更新触发器更新表中的所有行
- singularity-container - 如果定义文件没有改变,有没有更好的方法避免重建奇点图像?