Kubernetes 通过端口而不是 NodePort 访问外部 IP
Kubernetes Access External IP via Port and not NodePort
我是 Kubernetes 和 Helm Charts 的新手,想在这里找到我的问题的答案。
当我 运行 kubectl get all
并查看服务时,我得到如下内容:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/leader LoadBalancer 10.3.245.137 104.198.205.71 80:30125/TCP, 8888:30927/TCP 54s
我的服务在我的 Helm Chart 中配置为:
ports:
name: api
port: 80
targetPort: 8888
name: api2
port: 8888
targetPort: 8888
当我运行kubectl describe svc leader
时,我得到:
Type: LoadBalancer
Port: api 80/TCP
TargetPort: 8888/TCP
NodePort: api 30125/TCP
EndPoints: <some IP>:8888
Port: api 8888/TCP
TargetPort: 8888/TCP
NodePort: api 30927/TCP
EndPoints: <some IP>:8888
我一直认为 NodePort
是将我的集群对外公开的端口,而 Port 将是在内部服务上公开的端口,它路由到 Pods 上的 TargetPorts
。我从 .
那里得到了这个理解
不过,我好像可以打开104.198.205.71:80
或104.198.205.71:8888
,但我不能打开104.198.205.71:30125
或104.198.205.71:30927
。我的期望是我应该能够通过 NodePorts
而不是通过端口访问 104.198.205.71。我的理解有误吗?
要通过 NodePort 访问您的应用程序,您需要输入您的节点 ip 和分配给您的节点端口。
kubectl get node -owide
以上命令将提供您的节点 IP 地址,您可以使用该地址通过 NodePort 访问应用程序,是的,外部 Ip : 80 将失败,因为该端口用于容器内部而不是外部访问。
此外,要阅读有关使用发布服务从集群外部访问资源的更多信息(那里也提到了 NodePort),您可以参考 the official documentation。
我是 Kubernetes 和 Helm Charts 的新手,想在这里找到我的问题的答案。
当我 运行 kubectl get all
并查看服务时,我得到如下内容:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/leader LoadBalancer 10.3.245.137 104.198.205.71 80:30125/TCP, 8888:30927/TCP 54s
我的服务在我的 Helm Chart 中配置为:
ports:
name: api
port: 80
targetPort: 8888
name: api2
port: 8888
targetPort: 8888
当我运行kubectl describe svc leader
时,我得到:
Type: LoadBalancer
Port: api 80/TCP
TargetPort: 8888/TCP
NodePort: api 30125/TCP
EndPoints: <some IP>:8888
Port: api 8888/TCP
TargetPort: 8888/TCP
NodePort: api 30927/TCP
EndPoints: <some IP>:8888
我一直认为 NodePort
是将我的集群对外公开的端口,而 Port 将是在内部服务上公开的端口,它路由到 Pods 上的 TargetPorts
。我从
不过,我好像可以打开104.198.205.71:80
或104.198.205.71:8888
,但我不能打开104.198.205.71:30125
或104.198.205.71:30927
。我的期望是我应该能够通过 NodePorts
而不是通过端口访问 104.198.205.71。我的理解有误吗?
要通过 NodePort 访问您的应用程序,您需要输入您的节点 ip 和分配给您的节点端口。
kubectl get node -owide
以上命令将提供您的节点 IP 地址,您可以使用该地址通过 NodePort 访问应用程序,是的,外部 Ip : 80 将失败,因为该端口用于容器内部而不是外部访问。
此外,要阅读有关使用发布服务从集群外部访问资源的更多信息(那里也提到了 NodePort),您可以参考 the official documentation。