管理服务器角色
使用 --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