You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Kubernetes Pod的9090端口暴露至本地VM实现跨VM访问?

问题解答

让第二台VM访问第一台VM中Pod的几种方法

1. 把Service改成NodePort类型(持久化方案)

这是最常用的持久化暴露方式,能将Pod的端口映射到第一台VM(集群节点)的端口上。

  • 修改现有Service的spec.type为NodePort,还可指定nodePort字段固定端口(不指定的话,K8s会自动分配30000-32767之间的端口)
  • 修改后的Service配置示例:
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2023-06-09T06:21:57Z"
  labels:
    app.kubernetes.io/name: myapp
    service-type: public
  name: myapp
  namespace: myapp
  ownerReferences:
  - apiVersion: core.opni.io/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: Gateway
    name: myapp
    uid: 5cf052fb-31cb-43b4-8b3c-264a4d2240ce
  resourceVersion: "371786"
  uid: 95a07669-fe15-40a2-9614-21d33475a54b
spec:
  clusterIP: 10.43.66.183
  clusterIPs:
  - 10.43.66.183
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: grpc
    port: 9090
    protocol: TCP
    targetPort: grpc
    nodePort: 9090  # 固定映射到VM的9090端口,需确保该端口未被占用
  - name: noauth
    port: 4000
    protocol: TCP
    targetPort: noauth
  selector:
    app.kubernetes.io/name: myapp
  sessionAffinity: None
  type: NodePort  # 这里改为NodePort
status:
  loadBalancer: {}
  • 执行命令更新Service:kubectl apply -f <修改后的yaml文件> -n myapp
  • 完成后第二台VM就能通过第一台VM的IP:9090访问Pod的gRPC服务。

2. 用kubectl port-forward临时转发(测试用)

如果只是临时需要访问,不用修改配置,直接运行端口转发命令:

kubectl port-forward service/myapp 9090:9090 -n myapp --address 0.0.0.0
  • --address 0.0.0.0允许外部VM访问,默认仅允许本地连接
  • 该命令需保持运行状态,关闭后端口转发即停止,适合临时调试场景。

3. 改用LoadBalancer类型Service(需集群支持)

如果你的K8s集群配有负载均衡组件(比如本地环境用MetalLB),可以把Service改成LoadBalancer类型,集群会自动分配一个可访问的IP,第二台VM直接用这个IP:9090访问即可。不过本地VM集群用NodePort方案更直接。

能否将应用暴露在nodeIP:9090?

可以,但需要满足两个条件:

  1. 第一台VM的9090端口未被其他程序占用
  2. 修改Service为NodePort时,显式设置nodePort: 9090(如上面的配置示例)

注意:K8s默认NodePort的端口范围是30000-32767,若要使用9090这类低于30000的端口,需修改Kube-apiserver和Kube-proxy的配置,调整--service-node-port-range参数(例如改为1-65535),然后重启相关组件。如果不想修改集群配置,建议使用默认范围内的端口,或用port-forward临时映射到9090。

内容的提问来源于stack exchange,提问作者Kristian Zhelyazkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:05:00