天天看點

教你向MicroK8s Kubernetes叢集添加節點

作者:K8S技術社群

Kubernetes很難。有如此多的移動部件(所有這些部件都必須互相連接配接),以及複雜的清單,這項技術相當令人望而生畏。這就是為什麼使用Kubernetes時要慢而且一步一步來。

在本文中,我們将向第一台Kubernetes機器添加節點以建立叢集。這些節點都由原始機器管理,稱之為控制器。你需要遵循《Kubernetes 101:在Rocky Linux上安裝Kubernete的最簡單方法》教程,并確定在叢集所需的所有節點上執行此操作。在每台機器上完成這些步驟後,就可以開始向叢集添加節點了。

筆者的叢集将有三個節點和一個控制器。IP位址方案如下所示:

  • 192.168.1.100 kubecontroller
  • 192.168.1.101 kubenode1
  • 192.168.1.102 kubenode2
  • 192.168.1.103 kubenode3

更改每個節點的主機名也很重要。記住,在Linux上更改主機名的指令是:

sudo hostnamectl set-hostname NAME

其中NAME是要為機器提供的主機名。在我們的例子中,這些主機名将是:

  • kubecontroller
  • kubenode1
  • kubenode2
  • kubenode3

編輯節點上的主機檔案

我們要做的第一件事是編輯每台機器上的主機檔案。使用以下指令打開該檔案:sudo nano /etc/hosts

在檔案的底部,我們将添加:

1

2

3

4

192.168.1.100 kubecontroller

192.168.1.101 kubenode1

192.168.1.102 kubenode2

192.168.1.103 kubenode3

使用[Ctrl]+[X]快捷鍵儲存并關閉檔案。

打開必要的防火牆端口

為了使節點能夠與控制器通信,必須打開必要的防火牆端口。這是通過以下指令在控制器上完成的:

sudo firewall-cmd --add-port={25000/tcp,16443/tcp,12379/tcp,10250/tcp,10255/tcp,10257/tcp,10259/tcp} --permanent

sudo firewall-cmd --reload

在每個節點上,還需要使用以下指令打開特定的防火牆端口:

sudo firewall-cmd --add-port={25000/tcp,10250/tcp,10255/tcp} --permanent

sudo firewall-cmd --reload

你可能還需要使用以下指令再添加一個端口(在所有計算機上):

sudo firewall-cmd --add-port=19001/tcp --permanent

sudo firewall-cmd --reload

生成添加節點指令

不過,在控制器上,必須運作一個指令,然後生成所需的add指令。該指令是:microk8s add-node

輸出将包括要在要連接配接的每個節點上運作的完整指令。該指令将如下所示:

microk8s join192.168.1.100:25000/87636eo7d6r80787576t37o08ft2f2ac/979uj65e74b6

在所有節點上運作join指令後,給它幾分鐘時間,以確定一切正常運作。然後,可以使用以下指令從控制器檢查節點:

microk8s kubectl get nodes

你應該看到所有三個節點現在都是叢集的一部分。

讓這更容易一點

如你所見,對于MicroK8s,通過MicroK8s指令使用kubectl指令。這比你可能想要處理的打字要多一些。幸運的是,可以将MicroK8s設定為使用kubectl指令的系統版本。為此,我們首先在Rocky Linux上安裝kubectl指令,指令如下:

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

sudo chmod +x kubectl

sudo mv kubectl /usr/local/bin/

接下來,我們生成一個配置檔案并将其儲存在~/.kube/中,使用指令:

microk8s config > ~/.kube/config

你現在應該可以使用kubectl指令,而無需鍵入microk8s。例如,要檢視新添加的節點,指令現在應該是:

kubectl get nodes

你不必走這條路。如果你不介意額外的打字,microk8s kubectl是一個完美的方法。

從叢集中删除節點

如果你需要從叢集中删除節點,則隻需登入該節點,然後發出指令:

microk8s leave

稍後添加更多節點

你不僅限于此輪添加的節點。從前,筆者隻需要将join指令儲存到一個檔案中,并随時複制/粘貼它。這不再有效,因為join令牌是時間敏感的。即使如此,你也可以根據需要添加和删除節點,以增加或減少叢集的大小。任何時候需要加入新節點時,隻需運作join指令,如下所示:

microk8s add-node

你将收到在初始節點上運作的相同join指令,但使用的是不同的join令牌。如果嘗試重新運作與之前相同的join指令,則會得到一個無效的令牌指令。是以,請確定記住add node指令,以便以後可以加入更多節點。

這就是通過MicroK8s将節點連接配接到控制器以建立第一個Kubernetes叢集的全部步驟。

原文連結:https://thenewstack.io/add-nodes-to-your-microk8s-kubernetes-cluster/

繼續閱讀