使用 Kubernetes 将单个应用程序部署到多个服务器
Use Kubernetes to deploy a single app to multiple servers
我想一次将一个应用程序部署到多个服务器。
我正在使用 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"
当我想在每个客户的服务器上部署一个新的网络服务时,我尝试了以下代码:
helm install node-red k8s-at-home/node-red --set nodeSelector."ols\.role"=worker
问题:只部署了一个 pod。
我想要的是在每个服务器上部署一个 pod 并使其独立。
有办法吗?
这里有两件事我们需要考虑。
如果要求只是 运行 更多 application
的 replicas
数量,则更改 helm
图表中的 deployment
模板或通过 values
您可以传递最少 replicas
需要在集群中工作的数量。
参考 documentation deployments
接下来,如果要求只是 运行 跨集群中存在的所有节点的应用程序,Daemonsets
是提供 运行 跨集群能力的工作负载所有现有节点。
参考 documentation daemonsets
同样,如果您使用 helm
进行部署,则需要根据 helm
的现有内容添加或修改 daemonsets
或 deployments
的适当模板]图表。
还有不同的 workloads k8s
支持,所以可以根据需要适当地选择它们。
我想一次将一个应用程序部署到多个服务器。
我正在使用 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"
当我想在每个客户的服务器上部署一个新的网络服务时,我尝试了以下代码:
helm install node-red k8s-at-home/node-red --set nodeSelector."ols\.role"=worker
问题:只部署了一个 pod。
我想要的是在每个服务器上部署一个 pod 并使其独立。 有办法吗?
这里有两件事我们需要考虑。
如果要求只是 运行 更多 application
的 replicas
数量,则更改 helm
图表中的 deployment
模板或通过 values
您可以传递最少 replicas
需要在集群中工作的数量。
参考 documentation deployments
接下来,如果要求只是 运行 跨集群中存在的所有节点的应用程序,Daemonsets
是提供 运行 跨集群能力的工作负载所有现有节点。
参考 documentation daemonsets
同样,如果您使用 helm
进行部署,则需要根据 helm
的现有内容添加或修改 daemonsets
或 deployments
的适当模板]图表。
还有不同的 workloads k8s
支持,所以可以根据需要适当地选择它们。