跳至主要内容

管理服务器角色

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

信息

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

专用 etcd 节点

要创建一个只有 etcd 角色的服务器,请使用所有控制平面组件禁用状态启动 K3s

curl -fL https://get.k3s.io | sh -s - server --cluster-init --disable-apiserver --disable-controller-manager --disable-scheduler

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

专用 control-plane 节点

注意

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

要创建一个只有 control-plane 角色的服务器,请使用禁用 etcd 状态启动 k3s

curl -fL https://get.k3s.io | 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 unit 或配置文件中删除 --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