天天看点

教你向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/

继续阅读