无法从外部访问 Kubernetes NodePort
Kubernetes NodePort not accesible from outside
我正在尝试使用最新的 bitnami postgres chart 将 postgres 部署到本地 kubernetes 集群 (mac os, docker 桌面 4.4.2,kubernetes 1.22.5):
https://github.com/bitnami/bitnami-docker-postgresql
我设置了节点端口:
primary:
service:
# Kubernetes Service type
type: NodePort
nodePorts:
# Node port for PostgreSQL
postgresql: '30000'
服务可见:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/postgres-nodeport NodePort 10.111.195.149 <none> 5432:30000/TCP 9m56s
但我无法从外部访问它,例如:
psql -h localhost -p 30000 -U myusername -d mydatabase
但我认为它配置正确,因为当我执行 port-forward postgres 可用时:
kubectl port-forward pod/postgres-nodeport-0 30000:5432
Nodeport只暴露指定端口节点上的服务。它不会将其暴露给 public。您需要配置入口或负载均衡器以将服务暴露给外界。
我找到了解决办法:
您需要将端口设置为高于 30000,例如30001
但这很奇怪,因为之前它使用端口 30000,并且文档说端口范围是 30000-32767
你需要用节点ip调用。
格式应该是 NodeIP
你所在的节点 运行 你的 pods 和 NodePort
。 Ref
集群外调用NodePort服务的Template是这样的
<NodeIP>:<NodePort>
试试这个:
psql -h 192.168.65.4 -p 30000 -U myusername -d mydatabase
我正在尝试使用最新的 bitnami postgres chart 将 postgres 部署到本地 kubernetes 集群 (mac os, docker 桌面 4.4.2,kubernetes 1.22.5): https://github.com/bitnami/bitnami-docker-postgresql
我设置了节点端口:
primary:
service:
# Kubernetes Service type
type: NodePort
nodePorts:
# Node port for PostgreSQL
postgresql: '30000'
服务可见:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/postgres-nodeport NodePort 10.111.195.149 <none> 5432:30000/TCP 9m56s
但我无法从外部访问它,例如:
psql -h localhost -p 30000 -U myusername -d mydatabase
但我认为它配置正确,因为当我执行 port-forward postgres 可用时:
kubectl port-forward pod/postgres-nodeport-0 30000:5432
Nodeport只暴露指定端口节点上的服务。它不会将其暴露给 public。您需要配置入口或负载均衡器以将服务暴露给外界。
我找到了解决办法: 您需要将端口设置为高于 30000,例如30001 但这很奇怪,因为之前它使用端口 30000,并且文档说端口范围是 30000-32767
你需要用节点ip调用。
格式应该是 NodeIP
你所在的节点 运行 你的 pods 和 NodePort
。 Ref
集群外调用NodePort服务的Template是这样的
<NodeIP>:<NodePort>
试试这个:
psql -h 192.168.65.4 -p 30000 -U myusername -d mydatabase