最近在搭建云原生,对这一块也稍稍有了兴趣。在此,浅谈基于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.创建服务后继续添加负载均衡,配置如下(注意,负载均衡中的容器,根据需要自行修改个数)

配置完毕,如下

Logo

开源、云原生的融合云平台

更多推荐