教你向MicroK8s Kubernetes集群添加节点
Kubernetes很难
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集群的全部步骤。
更多推荐
所有评论(0)