簡體   English   中英

如何使用 `service.spec.externalIPs` 而不是 `--type=LoadBalancer` 在 AWS 上公開 Kubernetes 服務?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM