使用 Kubernetes 将单个应用程序部署到多个服务器

Use Kubernetes to deploy a single app to multiple servers

我想一次将一个应用程序部署到多个服务器。

我正在使用 KubernetesK3S 来轻松部署容器。 基本上,我有一个 运行 的主服务器和多个位于客户设施中的服务器。

主服务器已使用以下命令初始化:

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 并使其独立。 有办法吗?

这里有两件事我们需要考虑。

如果要求只是 运行 更多 applicationreplicas 数量,则更改 helm 图表中的 deployment 模板或通过 values 您可以传递最少 replicas 需要在集群中工作的数量。

参考 documentation deployments

接下来,如果要求只是 运行 跨集群中存在的所有节点的应用程序,Daemonsets 是提供 运行 跨集群能力的工作负载所有现有节点。

参考 documentation daemonsets

同样,如果您使用 helm 进行部署,则需要根据 helm 的现有内容添加或修改 daemonsetsdeployments 的适当模板]图表。

还有不同的 workloads k8s 支持,所以可以根据需要适当地选择它们。