K3s 禁用組件標(biāo)志

2022-08-22 14:52 更新

概述

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

只使用 ETCD 組件運(yùn)行節(jié)點(diǎn)

本文檔假設(shè)你通過(guò)向 Server 進(jìn)程傳遞?---cluster-init?標(biāo)志來(lái)運(yùn)行內(nèi)嵌 etcd 的 K3s Server。

如果要運(yùn)行一個(gè)只有 ETCD 組件的 K3s Server,你可以通過(guò)?--disable-apiserver --disable-controller-manager --disable-scheduler?標(biāo)志到 k3s,這樣會(huì)生成一個(gè)只有 etcd 的 Server 節(jié)點(diǎn),例如:

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

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

禁用 ETCD 組件

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

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

最終的結(jié)果將是兩個(gè)節(jié)點(diǎn),其中一個(gè)是 etcd only 節(jié)點(diǎn),另一個(gè)是 controlplane only 節(jié)點(diǎn),如果你檢查節(jié)點(diǎn)列表,你應(yīng)該看到類(lèi)似下面的返回結(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
說(shuō)明
你只能在有 api 運(yùn)行的 k3s Server 上運(yùn)行kubectl命令,你不能在只有 etcd 的節(jié)點(diǎn)上運(yùn)行kubectl命令。

重新啟用控制組件

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

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

你會(huì)發(fā)現(xiàn)所有的組件都重新啟動(dòng)了,你可以再次運(yù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

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

使用配置文件添加禁用標(biāo)志

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

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

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

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

使用.skip 文件禁用組件

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

例如,在 manifests 目錄中添加 ?traefik.yaml.skip? 會(huì)導(dǎo)致 K3s 跳過(guò) ?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)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)