我在私有(private)云中设置了一个 kubernetes 集群。想法是所有开发人员都将使用此集群来启动应用程序所需的所有微服务。每个开发人员都会在他的命名空间中启动所有部署/服务以避免冲突。由于此云不支持 LoadBalancer ,我使用了 nodePort 并定义了一个端口来为前端公开外部 IP。我使用
访问前端http://node-ip:port
但是,由于 K8s 可以在同一节点上启动任意数量的不同命名空间的前端 pod - 我会发生冲突,因为该节点端口已经分配给首先启动的服务。我现在无法理解如何允许使用相同服务的多个人在同一集群中启动。
示例服务配置如下
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 会发生什么?我们如何解决这个问题?
最佳答案
您根本不需要定义 nodePort,然后它会由 kubernetes 自动分配给服务,此后它会避免任何冲突。
关于kubernetes - 是否可以在同一端口上使用 nodeport 类型的 2 个不同 namespace 启动相同的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49196311/
相关文章:
python - 模块 'site' 没有属性 'getusersitepackages'
java - 如何更改 azure-functions-maven-plugin 的日志记录级别?
python - 如何在 git post-receive hook 中指定 python 解释器?
">javascript - 在 Firefox 中隐藏 <input type ="date">
php - 错误:[8] PDO::__construct():发送 5 个字节失败,errno=3
react-native - react 导航 : stack navigator with tab