是否可以在同一端口上使用类型nodeport在2个不同的命名空间中启动相同的服务?

时间:2018-03-09 14:50:49

标签: kubernetes

我在私有云中设置了kubernetes群集。 Idea是所有开发人员都将使用此集群来启动应用程序所需的所有微服务。每个开发人员都会在其命名空间中启动所有部署/服务以避免冲突。由于此云不支持LoadBalancer,因此我使用nodePort定义了一个端口,以便为前端公开外部IP。我使用

访问前端

http://node-ip:port

然而,由于K8可以在同一节点上启动任意数量的不同命名空间的前端pod,因此该nodePort已经分配给首先启动的服务。我现在无法理解如何允许多个人使用相同的服务在同一个集群中启动。

示例服务配置在

下面
apiVersion: v1
kind: Service
metadata:
  name: frontend
  labels:
    name: frontend
spec:
  ports:
  - port: 8884
    targetPort: 8081
    nodePort: 30080
    name: ui
  selector:
    app: test
  type: NodePort

如果是第一次运行,http://node-ip:30080可以访问此前端服务。如果我们在同一节点中的不同命名空间中运行相同的yaml会发生什么?我们如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您根本不需要定义nodePort,然后由kubernetes自动分配给服务,从此避免任何冲突。