3

非常酷,我们在 Docker for Mac 中有一个 LoadBalancer。

我对创建的端口有疑问:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    run: nginx
spec:
  ports:
    port: 9999
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

这给了我(kubectl 获取服务):

nginx        LoadBalancer   10.96.128.253   localhost     9999:32455/TCP   2s

是什么32455

谢谢

4

1 回答 1

5

32455 是您的节点端口。Kubernetes 会自动为集群外部可访问的任何服务(包括 LoadBalancer 类型的服务)分配一个唯一的 nodePort。您也可以在同一配置中自己指定这些,只要您 .

具体到 Docker for Mac,Kubernetes 正在创建一个监听 localhost:9999 的服务。这是 kubernetes 正在创建的“出口”,因为您实际上没有负载均衡器,它本质上是在模拟一个。除了“负载均衡器/出口”之外,它的行为仍然与生产环境中的一样——即 Kubernes 为服务分配了一个 nodePort。你curl localhost:32455,你很可能会得到和你一样的回应curl localhost:9999

于 2018-03-25T21:24:08.300 回答