最近在搭建云原生,对这一块也稍稍有了兴趣。在此,浅谈基于Ubuntu系统下的Docker集群快速部署和管理。Docker容器的集群化、网络管理、自动部署较为令人头疼,Kubernetes集群很好的解决了这个问题,并可以快速实现负载均衡、集群监控。而通过Rancher,我们可以管理kubernetes集群和Docker集群,并且在Docker中可以快速搭建k8s,本文以负载均衡应用为例,介绍搭建Docker、Rancher集成k8s集群。
一.搭建流程
1.安装docker
每台节点都需要安装支持rancher版本的docker
2.每一台docker节点中分别安装rancher 服务器和rancher客户端(即主节点的docker中安装rancher/server, 从节点的docker中安装rancher/agent)
3.通过rancher配置搭建k8s环境
4.创建应用,为应用添加负载均衡的服务
二.搭建环境及软件版本
ubuntu14.04,
docker版本为17.03,
rancher/server版本为 1.6.21, rancher/agent版本为1.2.11
K8S版本为v1.11.1-rancher1-3-1
三.具体安装步骤
1.docker安装
为了快速安装,首先为ubuntu更换国内的源,然后sudo apt-get update. 运行脚本,即可安装docker(每个节点都需要安装)
curl https://releases.rancher.com/install-docker/17.03.sh | sh
2.主节点安装rancher/server(基于docker镜像安装):
在主节点的docker容器中运行以下命令
sudo docker run -d –restart=always -p 8080:8080 rancher/server
3.搭建K8S集群
此时,安装完rancher/server后,就可以访问主节点的8080 WEB端口了,进入前端界面(可根据需要选择中文语言),删掉原有的默认的环境,新建环境,环境模板选择Kubernetes,如下
创建之后,为该环境添加主机,将所有的docker节点所在的主机都添加进来(这个过程也为从节点安装了rancher/agent服务,从而使主从节点串联到了一起),具体步骤如下图
(填写docker从节点IP地址,复制命令到相应的机器上运行即可)
配置正确后,会在rancher的UI界面中看到新添加进来的主机以及其中正在运行的容器,两个从节点的状态如下:
4.可能遇到的问题
搭建完docker后,在每一台主机都搭建了docker,主节点的docker中启动Rancher/server后,添加主机,无法添加主机。从节点也启动好了rancher/agent,但是UI界面中显示无主机,查看rancher/agent的日志,如下:
解决方案如下:
1.删除/var/lib/rancher/state下文件(该文件用于标记该主机的唯一性),删除agent容器
sudo docker stop pid
sudo rm -rf /var/lib/rancher/state/
sudo docker rm -fv rancher-agent
2.在/etc/docker/daemon.json中添加dns
{
“registry-mirrors”: [
“https://2lqq34jg.mirror.aliyuncs.com”,
“https://pee6w651.mirror.aliyuncs.com”,
“https://registry.docker-cn.com”,
“http://hub-mirror.c.163.com”
],
“dns”: [“8.8.8.8″,”8.8.4.4”]
}
3.重启docker
sudo service docker restart
重新添加主机即可
四.为服务添加负载均衡
1.在KUBERNETES界面添加应用,应用名和描述按需需求随意填写(KUBERNETES—-> 基础设施——–> 添加应用)
2.为生成的应用添加服务,以tutum hello-world镜像为例,创建服务,具体配置如下
3.创建服务后继续添加负载均衡,配置如下(注意,负载均衡中的容器,根据需要自行修改个数)
配置完毕,如下