![](/img/trans.png)
[英]How to expose GRPCS service deployed on kubernetes in AWS using Kops
[英]How to expose a Kubernetes service on AWS using `service.spec.externalIPs` and not `--type=LoadBalancer`?
我已经使用kops
在 AWS 上部署了一个 Kubernetes 集群,并且能够使用带有--type=LoadBalancer
的服务来公开我的 pod:
kubectl run sample-nginx --image=nginx --replicas=2 --port=80
kubectl expose deployment sample-nginx --port=80 --type=LoadBalancer
但是,我无法通过使用我的主节点的公共 IP 指定service.spec.externalIPs
来使其工作。
我已经允许指定端口的入口流量并使用https://kubernetes.io/docs/concepts/services-networking/service/#external-ips作为文档。
谁能澄清如何在不使用云提供商的本地负载均衡器的情况下在 AWS 上公开服务?
如果您想避免使用Loadbalancer
那么您可以使用NodePort
类型的服务。
NodePort
在静态端口( NodePort
)上公开每个节点 IP 上的服务。 NodePort
服务路由的ClusterIP
服务是沿着创建的。 您将能够通过以下请求从外部访问NodePort
服务:
<NodeIP>:<NodePort>
这意味着如果您使用该端口访问任何节点,您将能够访问您的服务。 值得记住的是,NodePorts 是高编号端口 (30 000 - 32767)
这里专门回到 AWS 是他们的官方文档如何公开服务以及NodePort
解释。
请注意有关启用端口的非常重要的信息:
注意:在从外部集群访问NodeIP:NodePort之前,您必须启用节点的安全组以允许通过您的服务端口的传入流量。
如果这有帮助,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.