Kubernetes NodePort自定义端口

37

在 Kubernetes 服务的 YAML 定义中,有没有一种方法可以指定自定义 NodePort 端口?我需要能够在我的配置文件中明确定义端口。

5个回答

59

您可以在您的 Service 部署中设置类型为NodePort。请注意,API服务器配置了--service-node-port-range选项的节点端口范围(默认为30000-32767)。您还可以通过在 Port 对象下设置nodePort属性来特定指定该范围内的端口,否则系统会为您选择该范围内的端口。

因此,具有指定NodePortService示例如下:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30080
      name: http
    - port: 443
      nodePort: 30443
      name: https
  selector:
    name: nginx

想要了解更多有关NodePort的信息,请参阅此文档。如需配置API服务器节点端口范围,请参阅此文档


2
嗨,指定固定的节点端口是一种不好的做法吗? - ch271828n
@ch271828n 我认为这取决于你的架构。如果你的场景比较简单,使用集群外部负载均衡和网关,那么使用固定的节点端口是很常见的。然而,在复杂的部署中进行管理可能会变得困难,并且它们成为稀缺资源/冲突源。此外,如果您的安全设置需要集群内部规则,则 Nodeports 可能允许绕过这些规则并给您带来额外的麻烦。 - Oswin Noetzelmann
感谢您的回复(两年后):) - ch271828n

5

是的,你可以自己定义这三个端口。

apiVersion: v1
kind: Service
metadata:
  name: posts-srv
spec:
  type: NodePort
  selector:
    app: posts
  ports:
    - name: posts
      protocol: TCP
      port: 4000
      targetPort: 4000
      nodePort: 31515


5
您可以在 service.yaml 文件中使用 nodeport 定义静态的 NodePort。
spec:
  type: NodePort
  ports:
    - port: 3000
      nodePort: 31001
      name: http


2

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接