如果未为定义为NodePort的k8服务定义nodeport no,将会发生什么?

时间:2019-06-24 16:04:55

标签: python kubernetes kubernetes-pod service-node-port-range

假设我有4个部署文件,为此,我有1个组合服务文件,它将为所有4个服务(deployment.yaml)创建服务对象。现在,我只想将1个服务舱公开为NodePort服务,为此我定义了nodeport以及端口和目标端口。 对于其余3个服务,我仅定义了端口和目标端口,而没有定义nodeport。 问题是,在这种情况下,K8主站是否为未定义节点端口的3个服务中的其余服务分配一些随机节点端口? Service.YAML:

我总是可以为4个服务声明4个nodePorts。但是K8s Master将如何处理以下清单更使我感兴趣,以了解我的应用程序部署情况

apiVersion: v1
kind: Service
metadata:
  name: myapp-uwsgi-service
  namespace: myspace
  labels:
    central-app: myapp-uwsgi
spec:
  clusterIP: 10.3.0.106
  type: NodePort
  selector:
    central-app: configuration-uwsgi
  ports:
    -
      name: service-app-1
      port: 10010
      targetPort: 10010
      nodePort: 32123
    -
      name: service-app-2
      port: 10011
      targetPort: 10011
    -
      name: service-app-3
      port: 10012
      targetPort: 10012
    -
      name: service-app-4
      port: 10013
      targetPort: 10013

我的期望和理解是,这3个服务应用程序的其余部分将分配有一些来自K8s主站的随机nodePort。

1 个答案:

答案 0 :(得分:1)

服务类型nodeport会将随机端口分配给服务YAML中定义的其他端口。在您的情况下,您将终止四个节点端口