使用Rancher部署管理K8S集群,真香!

今天来个快餐,不涉及K8S理论知识。主要介绍一下使用Rancher来部署、管理K8S集群,真的很香!

使用Rancher安装K8S集群

主机规划

主机名称 角色 IP地址 基础软件
k8s-rancher 管理k8s集群 192.168.242.109 docker-ce
k8s-master k8s集群主节点 192.168.242.108 docker-ce
k8s-worker-node01 k8s集群从节点1 192.168.242.107 docker-ce
k8s-worker-node02 k8s集群从节点2 192.168.242.106 docker-ce

以下均以主机名称说明在哪台主机上操作。

每台均安装 docker-ce,安装命令在

容器化技术之Docker-从入地到上天

已有提及。现在在这里也提供一下:

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast

yum -y install docker-ce

systemctl enable docker

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yours.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
复制代码

安装rancher

在主机 k8s-rancher 上,执行如下命令:

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
复制代码

如果出现访问不了 http://192.168.242.109 rancher页面的情况,用docker ps观察一下docker rancher容器的运行状态,如果一直starting,使用

docker logs 容器id

看一下日志,发现如下错误提示:

rancher must be ran with the --privileged flag when running outside of kubernetes

这是由于selinux的权限问题导致的,启动容器的时候需要加上--privileged,删掉刚才创建的容器,重新运行:

docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
复制代码

运行一会之后,如果发现容器还是频繁自动重启了,可将内存调大一点,我的虚拟机原始给了1G内存,出现了一直重启的现象,调整内存后,消除故障。

打开页面:

Rancher的这个页面可以支持中文显示,接下来创建集群的操作只用鼠标点击即可完成,可以说是很爽歪歪了!

点击添加集群,进入创建K8S集群页面:

点击自定义:

输入集群名称,选择K8S版本,点击下一步,进入:

如下图,在k8s-master上需要操作:

此时到Rancher管理页面,点击全局,看到有刚才创建的k8s集群:

点集群,进去,点击主机:

在这里可以看到集群部署过程中的各种状态,最终出现绿色的Active状态时,即表示K8S集群Master节点创建成功:

继续编辑集群,复制下方的命令,添加K8S从节点:

在主机 k8s-worker-node01k8s-worker-node02 两个主机上执行如下命令:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.3 --server https://192.168.242.109 --token 84dphjc9v2949f887gtfxwvk2fhnv7xjlqq84nqb2r565kqn7qnxdp --ca-checksum e4d1715ec0295d2e9e1fbc3bba3386529cdf4e8b1be9e5b8c3b48acb1bd679f3 --worker
复制代码

这个地方需要注意的是,运行过程中,比较慢,容器起来之后,rancher需要对集群节点进行各种健康检查,要耐心等待,这个过程取决于你的机器的CPU、内存以及网络配置。

最终集群状态:

仪表盘:

项目/命名空间:

在此页面点击添加项目,我们来添加一个项目proA

进入项目:

proA项目下部署服务:

输入部署服务的名称、命名空间、docker镜像、端口映射规则等:

点击启动:

数秒后:

点击nginx容器链接:

直接打开了nginx页面:

甚至负载均衡都做好了,访问http://192.168.242.106:30001/http://192.168.242.107:30001/http://192.168.242.108:30001/都可以:

整个过程真的非常丝滑!啪一下nginx容器就跑起来了,很快啊!马保国直呼内行!!!

官方网站资料

docs.rancher.cn/rancher2/