amazon-web-services - 如何使用 `service.spec.externalIPs` 而不是 `--type=LoadBalancer` 在 AWS 上公开 Kubernetes 服务?
问题描述
我已经在 AWS 上部署了一个 Kubernetes 集群,kops
并且可以使用以下服务公开我的 pod --type=LoadBalancer
:
kubectl run sample-nginx --image=nginx --replicas=2 --port=80
kubectl expose deployment sample-nginx --port=80 --type=LoadBalancer
但是,我无法通过指定service.spec.externalIPs
主节点的公共 IP 来使其工作。
我已经允许指定端口的入口流量,并使用https://kubernetes.io/docs/concepts/services-networking/service/#external-ips作为文档。
谁能澄清如何在不使用云提供商的本机负载均衡器的情况下在 AWS 上公开服务?
解决方案
如果您想避免使用,Loadbalancer
那么您可以使用NodePort
服务类型。
NodePort
在静态端口 (the NodePort
) 上公开每个节点 IP 上的服务。
ClusterIP
服务NodePort
路由创建的服务。您将能够NodePort
通过以下请求从外部访问该服务:
<NodeIP>:<NodePort>
这意味着如果您使用该端口访问任何节点,您将能够访问您的服务。值得记住的是,NodePort 是高编号端口 (30 000 - 32767)
在这里专门回到 AWS 是他们的官方文档如何公开服务以及NodePort
解释。
请注意有关启用端口的非常重要的信息:
注意:在 从外部集群 访问 NodeIP:NodePort之前,您必须启用节点的安全组以允许传入流量通过您的服务端口。
让我知道这是否有帮助。
推荐阅读
- sql - 有没有办法从具有不同字段而不是 XML 数据类型字段的 PostgreSQL 表中获取 XML 格式的数据?
- reactjs - 无法在反应中获取系统环境变量
- python - 使用 pymysql 在 Python 3.7 中处理潜在的 sql 注入
- postgresql - 数据类型 point[] 没有访问方法“gist”的默认运算符类
- mongodb - mongodb将字段的数据类型从映射更新为数组
- python - 如何解决“OpenSlideUnsupportedFormatError”?
- docker - 容器和缓存
- php - MySQL Join 4 个表只返回 1 行
- javascript - 在 noUiSlider 中为“connect:”传递数组
- css - 日语文本断行正确:`word-break:keep-all`、`white-space:nowrap` 和 `overflow-wrap:break-word` 有什么区别?