K3s 禁用組件標志

2022-08-22 14:52 更新

概述

使用 ?--cluster-init? 參數(shù)啟動 K3s server 時,它會運行包括 API Server、Controller Manager、Scheduler 和 ETCD 在內(nèi)的所有 controlplane 組件。但是,您可以指定只使用其中的一些組件運行 Server 節(jié)點。本文將解釋如何使用指定的一些組件運行 Server 節(jié)點。

只使用 ETCD 組件運行節(jié)點

本文檔假設(shè)你通過向 Server 進程傳遞?---cluster-init?標志來運行內(nèi)嵌 etcd 的 K3s Server。

如果要運行一個只有 ETCD 組件的 K3s Server,你可以通過?--disable-apiserver --disable-controller-manager --disable-scheduler?標志到 k3s,這樣會生成一個只有 etcd 的 Server 節(jié)點,例如:

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

完成上述步驟之后。就可以正常加入其他節(jié)點到集群中。

禁用 ETCD 組件

你也可以禁用 Server 節(jié)點中的 etcd,這將導(dǎo)致 k3s Server 運行除了 etcd 以外的控制組件,這可以通過運行 k3s Server 的標志?--disable-etcd?來實現(xiàn),例如,將另一個只有控制組件的節(jié)點加入到上一節(jié)創(chuàng)建的 etcd 節(jié)點中:

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

最終的結(jié)果將是兩個節(jié)點,其中一個是 etcd only 節(jié)點,另一個是 controlplane only 節(jié)點,如果你檢查節(jié)點列表,你應(yīng)該看到類似下面的返回結(jié)果:

kubectl get nodes
NAME              STATUS   ROLES                       AGE     VERSION
ip-172-31-13-32   Ready    etcd                        5h39m   v1.20.4+k3s1
ip-172-31-14-69   Ready    control-plane,master        5h39m   v1.20.4+k3s1
說明
你只能在有 api 運行的 k3s Server 上運行kubectl命令,你不能在只有 etcd 的節(jié)點上運行kubectl命令。

重新啟用控制組件

在這兩種情況下,你可以隨時重新啟用已經(jīng)禁用的組件,只需刪除相應(yīng)的禁用標志,所以例如,如果你想把只有 etcd 的節(jié)點恢復(fù)到有所有組件的完整的 k3s Server,你只需刪除以下 3 個標志?--disable-apiserver --disable-controller-manager --disable-scheduler?,所以在我們的例子中,要把節(jié)點?ip-172-31-13-32?恢復(fù)到完整的 k3s Server,你只需重新運行沒有禁用標志的 curl 命令:

curl -fL https://get.k3s.io | sh -s - server --cluster-init

你會發(fā)現(xiàn)所有的組件都重新啟動了,你可以再次運行 kubectl 命令:

kubectl get nodes
NAME              STATUS   ROLES                       AGE     VERSION
ip-172-31-13-32   Ready    control-plane,etcd,master   5h45m   v1.20.4+k3s1
ip-172-31-14-69   Ready    control-plane,master        5h45m   v1.20.4+k3s1

請注意,role 標簽已使用正確的標簽(control-plane、etcd、master)重新添加到節(jié)點 ?ip-172-31-13-32?。

使用配置文件添加禁用標志

在前面的任何一種情況下,你都可以使用配置文件來代替運行帶有相關(guān)標志的 curl 命令,例如要運行一個只有 etcd 的節(jié)點,你可以在?/etc/rancher/k3s/config.yaml?文件中添加以下選項:

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

然后用 curl 命令啟動 K3s,不需要任何參數(shù):

curl -fL https://get.k3s.io | sh -

使用.skip 文件禁用組件

對于?/var/lib/rancher/k3s/server/manifests?下的任何 yaml 文件(coredns、traefik、local-storeage 等),你可以添加一個?.skip?文件,這將導(dǎo)致 K3s 不應(yīng)用相關(guān)的 yaml 文件。

例如,在 manifests 目錄中添加 ?traefik.yaml.skip? 會導(dǎo)致 K3s 跳過 ?traefik.yaml?。

ls /var/lib/rancher/k3s/server/manifests
ccm.yaml      local-storage.yaml  rolebindings.yaml  traefik.yaml.skip
coredns.yaml  traefik.yaml
kubectl get pods -A
NAMESPACE     NAME                                     READY   STATUS    RESTARTS   AGE
kube-system   local-path-provisioner-64ffb68fd-xx98j   1/1     Running   0          74s
kube-system   metrics-server-5489f84d5d-7zwkt          1/1     Running   0          74s
kube-system   coredns-85cb69466-vcq7j                  1/1     Running   0          74s


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號