我想一次性将单个应用部署到多台服务器。
我使用 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 并使其独立。 有没有办法做到这一点?
答案 0 :(得分:1)
这里有两个不同的事情需要我们考虑。
如果要求只是运行更多数量的 replicas
application
更改 deployment
图表中的 helm
模板或通过 values
您可以传递在集群中工作所需的最低 replicas
数量。
deployments
的参考 documentation
接下来,如果要求只是在集群中现有的所有节点上运行应用程序,Daemonsets
是提供在所有现有节点上运行的能力的工作负载。
daemonsets
的参考 documentation
同样,如果您使用 helm
进行部署,则需要根据 daemonsets
图表的现有内容为 deployments
或 helm
添加或修改适当的模板.
还有不同的workloads k8s
基于所需的支持,可以适当地选择它们。