Rancher v2.5.9添加节点主机的方法【20210902】

发表于 2021-08-31
阅读 52

介绍

介绍

节点和主机是什么关系?到底是添加节点还是添加主机?福哥来解释一下,在E文版本里面这个对象叫“Node”,而在中文版本里面这个对象被翻译成“主机”,但是“Node”直译的话叫“节点”,所以福哥也说不清楚到底是节点还是主机了,干脆就叫“节点主机”好了~~

添加节点主机是对一个已经存在的集群扩容的操作,通过给一个集群添加节点主机,就可以在集群里面部署更多的服务了。

集群与主机

要说明白这个问题先要理解Kubernetes的理念,在K8S的设想里面,没有主机概念。就是说我们之前对于服务部署的第一要素目标主机,在K8S里面被淡化了,被隐藏起来了。

在K8S里面,他会通过防火墙和Docker将多台主机上面的容器进行一个整合,我们创建的服务会智能的安排到其中一台主机上面,而这个过程你不需要关心。

安装

docker

首先,新主机需要有docker环境。没有的话,自己安装一下吧。

yum -y install docker
systemctl start docker
systemctl enable docker

镜像

其次,新主机需要下载很多镜像。
如果新主机不能联网的话,可以手动下载,或者放到自己搭建的registry仓库里面。

rancher/hyperkube:v1.20.9-rancher1
rancher/rancher-agent:v2.5.9
rancher/rke-tools:v0.1.77
rancher/rke-tools:v0.1.75
rancher/nginx-ingress-controller:nginx-0.43.0-rancher3
rancher/mirrored-coreos-etcd:v3.4.15-rancher1
rancher/mirrored-calico-node:v3.17.2
rancher/mirrored-calico-pod2daemon-flexvol:v3.17.2
rancher/mirrored-calico-cni:v3.17.2
rancher/mirrored-calico-kube-controllers:v3.17.2
rancher/mirrored-metrics-server:v0.4.1
rancher/mirrored-coredns-coredns:1.8.0
rancher/coreos-flannel:v0.13.0-rancher1
rancher/mirrored-cluster-proportional-autoscaler:1.8.1
rancher/kube-api-auth:v0.1.4
rancher/mirrored-pause:3.2

福哥编写了一个shell脚本,可以自动将当前主机的rancher相关的镜像都自动推到私有仓库里面,大家可以拿去使用。

#!/bin/bash

export PATH=$PATH:/usr/bin

# argv

registryHost=192.168.2.168:5000

# functions

_main()
{
  for d in `docker images | grep 'docker.io/rancher/' | awk '{printf("%s:%s\n",$1,$2)}'`
  do
    imageFullName=${d}
    imageName=`echo ${d} | sed 's/docker\.io\///'`
    imageLocalName=`echo ${d} | sed 's/docker\.io\//'${registryHost}'\//'`
    echo $imageFullName
    echo $imageName
    echo $imageLocalName
    docker tag $imageFullName $imageLocalName
    docker push $imageLocalName
  done
}

# main

_main "$@"

添加主机

集群列表

https://192.168.2.168:44386/g/clusters

可以看到tflinux集群目前只有一台主机tf-node-alpha。

home/topic/2021/0831/18/dbb69a6cf737dd6abe8770c33912cfc8.png

注册命令

点击tflinux集群右边的“...”,点击“Registration Cmd”菜单,查看集群注册命令。
home/topic/2021/0829/16/5aad6aae0d1479d8d40875fdb4191de3.png

启动主机

同样的福哥勾选了Etcd和Control Plane两个选项。

home/topic/2021/0831/18/739c438bb66743ccdfd54c9bfc0dfc8d.png在新服务器上面执行这段命令。

注意一个问题,就是这里必须通过CATTLE_NODE_NAME设置一个节点主机的名称,而且这个名称必须和集群里面的其他节点主机的名称不一样,否则就会添加失败并且没有报错。(这个问题足足折腾了福哥好几天)

docker run -d --privileged -e CATTLE_NODE_NAME=tf-node-beta --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.2.168:44386 --token zndsglg8c2kb9cflj8bz5t9vhfng5ht9746plrjhc4nmztjg6kb6zz --ca-checksum d24fe652ac1fd0b67d30d83cf309a5f01d73eada5b9fb3b166f23dc6c6f0ee0d --etcd --controlplane --worker

回到集群列表可以看到tflinux集群又更新起来了。(如果没有设置节点主机名称或者设置重复了就完全没有反应)

home/topic/2021/0831/18/3bd4fb7ce584c1d3514be83e01eb3698.png

经过漫长的等待,终于成功了,可以看到tflinux的主机数量变成了2了!!!

home/topic/2021/0831/18/84beafe25865b9071c5c13468fcc1cfe.png

进入查看节点主机列表可以看到tf-node-alpha和tf-node-beta两个主机。

home/topic/2021/0831/18/b6abe4589bd19900084b9645b11b41d8.png

总结

我们可以在集群资源不足的情况下通过添加节点主机的方式完成集群的扩容操作,而且这个操作完全不需要我们手动配置防火墙、设置docker等等的操作,直接就可以使用起来了。

这就是Rancher 2.x最牛逼的地方了~~