今天来个快餐,不涉及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
,安装命令在
已有提及。现在在这里也提供一下:
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
在主机 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-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/