使用Rancher部署管理K8S集群,真香!
作者:行百里er
博客:https://chendapeng.cn (opens new window)
提示
这里是 行百里er 的博客:行百里者半九十,凡事善始善终,吾将上下而求索!
今天来个快餐,不涉及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-从入地到上天 (opens new window)
已有提及。现在在这里也提供一下:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装rancher
在主机 k8s-rancher
上,执行如下命令:
docker pull rancher/rancher:v2.5.2-linux-amd64
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.5.2-linux-amd64
2
如果出现访问不了 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 -d -p 80:80 -p 443:443 --privileged --restart=always --name=rancher-v2.5.2 rancher/rancher:v2.5.2-linux-amd64
Tip:一般情况下需要进行数据目录挂载,所以最好这样启动容器:
mkdir -p /mnt/d/rancher_data
docker run -d -p 80:80 -p 443:443 --privileged -v /mnt/d/rancher_data:/var/lib/rancher/ --restart=always --name=rancher-v2.5.2 rancher/rancher:v2.5.2-linux-amd64
2
3
运行一会之后,如果发现容器还是频繁自动重启了,可将内存调大一点,我的虚拟机原始给了1G内存,出现了一直重启的现象,调整内存后,消除故障。
打开页面:
Rancher的这个页面可以支持中文显示,接下来创建集群的操作只用鼠标点击即可完成,可以说是很爽歪歪了!
点击添加集群,进入创建K8S集群页面:
点击自定义:
输入集群名称,选择K8S版本,点击下一步,进入:
如下图,在k8s-master
上需要操作:
此时到Rancher管理页面,点击全局,看到有刚才创建的k8s集群:
点集群,进去,点击主机:
在这里可以看到集群部署过程中的各种状态,最终出现绿色的Active
状态时,即表示K8S集群Master节点
创建成功:
继续编辑集群,复制下方的命令,添加K8S从节点:
在主机 k8s-worker-node01
和 k8s-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容器就跑起来了,很快啊!马保国直呼内行!!!
# 官方网站资料
https://docs.rancher.cn/rancher2/ (opens new window)
首发公众号 行百里er ,欢迎老铁们关注阅读指正。