我想一次性将一个应用程序部署到多个服务器上。
我使用Kubernetes
和K3S
来轻松地部署容器。基本上,我有一个运行的主服务器和多个服务器,这些服务器位于我的客户设施中。
使用以下命令初始化主服务器:
k3sup install \
--ip $MASTER_IP \
--user ubuntu \
--cluster --k3s-channel latest \
--k3s-extra-args "--node-label ols.role=master"
客户的服务器是通过以下方式启动的:
k3sup join \
--ip $WORKER01_IP \
--user ubuntu \
--server-ip $MASTER_IP \
--server-user ubuntu \
--k3s-channel latest \
--k3s-extra-args "--node-label ols.role=worker"
当我想要在每个客户的服务器上部署一个新的web服务时,我尝试了以下代码:
helm install node-red k8s-at-home/node-red --set nodeSelector."ols\.role"=worker
问题:只部署了一个pod。
我想要的是在每个服务器上部署一个单独的pod,并使其独立。有没有办法做到这一点?
发布于 2021-07-29 18:06:13
这里有两个我们需要考虑的不同的事情。
如果需求只是运行更多数量的replicas
,更改helm
图表中的deployment
模板或通过values
,您可以传递集群中需要工作的最小replicas
数量。
deployments
的参考documentation
接下来,如果需求只是在集群中现有的所有节点上运行应用程序,那么Daemonsets
就是能够在所有现有节点上运行的工作负载。
daemonsets
的参考documentation
同样,如果您使用helm
进行部署,则需要根据helm
图表的现有内容为daemonsets
或deployments
添加或修改适当的模板。
还有不同的workloads k8s
支持,因此可以根据需求进行适当的选择。
https://stackoverflow.com/questions/68573550
复制相似问题