本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

管理服务器角色

使用 --cluster-init 启动 K3s 服务器将运行所有控制平面组件,包括 apiserver、controller-manager、scheduler 和 etcd。可以禁用特定组件,以便将控制平面和 etcd 角色分配到不同的节点。

本文件仅在使用嵌入式 etcd 时相关。当不使用嵌入式 etcd 时,所有服务器将具有控制平面角色并运行控制平面组件。

专用 etcd 节点

要创建仅具有 etcd 角色的服务器,请启动 K3s 并禁用所有控制平面组件:

curl -fL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s sh -s - server --cluster-init --disable-apiserver --disable-controller-manager --disable-scheduler

其中 INSTALL_K3S_ARTIFACT_URL主工件 URL

第一个节点将启动 etcd,并等待其他 etcd 和/或 control-plane 节点加入。在您加入启用 control-plane 组件的其他服务器之前,集群将无法使用。

专用 control-plane 节点

专用 control-plane 节点不能是集群中的第一个服务器;在加入专用 control-plane 节点之前,必须有一个现有的 etcd 角色节点。

要创建仅具有 control-plane 角色的服务器,请启动 k3s 并禁用 etcd:

curl -fL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s sh -s - server --token <token> --disable-etcd --server https://<etcd-only-node>:6443

创建专用服务器节点后,所选角色将在 kubectl get node 中可见:

$ kubectl get nodes
NAME           STATUS   ROLES                       AGE     VERSION
k3s-server-1   Ready    etcd                        5h39m   v1.20.4+k3s1
k3s-server-2   Ready    control-plane,master        5h39m   v1.20.4+k3s1

向现有服务器添加角色

可以通过删除禁用标志重新启动 K3s 来向现有专用节点添加角色。例如,如果您想向专用 etcd 节点添加 control-plane 角色,可以从 systemd 单元或配置文件中删除 --disable-apiserver --disable-controller-manager --disable-scheduler 标志,然后重新启动服务。

配置文件语法

与所有其他 CLI 标志一样,您可以使用 配置文件 来禁用组件,而不是将选项作为 CLI 标志传递。例如,要创建专用 etcd 节点,您可以在 /etc/rancher/k3s/config.yaml 中放置以下值:

cluster-init: true
disable-apiserver: true
disable-controller-manager: true
disable-scheduler: true