W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用 ?--cluster-init
? 參數(shù)啟動 K3s server 時,它會運行包括 API Server、Controller Manager、Scheduler 和 ETCD 在內(nèi)的所有 controlplane 組件。但是,您可以指定只使用其中的一些組件運行 Server 節(jié)點。本文將解釋如何使用指定的一些組件運行 Server 節(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é)點到集群中。
你也可以禁用 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 -
對于?/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
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: