Rancher v2.5.9添加集群的方法【20210901】

发表于 2021-08-24
阅读 16

介绍

介绍

前面福哥带着大家学会了Rancher的安装方法。

今天福哥打算教给大家在Rancher里面添加集群的方法,在Rancher里面添加集群可以实现在一个Rancher里面管理多个集群的目的。

集群与主机

要说明白这个问题先要理解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

可以看到目前只有一个默认的集群local,类型是k3s。

home/topic/2021/0831/18/5247868e51ed071a1b3de1ea56bce329.png

添加集群

点击右上角的“添加集群”按钮进入添加界面,然后选择“自定义”类型。

home/topic/2021/0831/18/7a44972603626ecaf636cf56ee578c60.png

集群名称

这里福哥设置的是tflinux这个名字,然后点击下一步。

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

注册命令

这里需要勾选“Etcd”和“Control Plane”两个选项。

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

然后复制命令行到集群主机上面执行它。

这里需要注意一个问题,我们需要通过环境变量CATTLE_NODE_NAME设置一下节点主机的名称,否则默认会是localhost这个名字了。

docker run -d --privileged -e CATTLE_NODE_NAME=tf-node-alpha --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 t9zsppmq7j9fzt284qq5w5bs77g5kdbgspvnj5hzg845vrq884npsb --ca-checksum d24fe652ac1fd0b67d30d83cf309a5f01d73eada5b9fb3b166f23dc6c6f0ee0d --etcd --controlplane --worker

启动集群

回到集群列表可以看到集群状态,它会随着安装的过程变化,我们可以看到安装进度。

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

经过漫长的等待,终于成功了!!!

home/topic/2021/0831/18/d4dcfea7ebb6880dee7476ab8530114f.png查看主机名称,是我们设置的tf-node-alpha。

home/topic/2021/0831/18/54eb08e069d025ea3b4638d2878c9b1b.png

总结

我们可以为一个项目建立一个集群,在这个集群里面搭建项目所需要的运行环境。

当集群资源紧张的时候,可以通过添加主机的方式进行扩容。

这就是Rancher的价值所在了~~