第一章 方案概述
本套方案采用了Rancher+Harbor+GlusterFS的超融合架构方案,通过Rancher部署可使用web管控界面的基于Kubernets的容器编排调度环境。通过Harbor搭建一个可通过web管控界面管理的私有docker镜像仓库。运用GlusterFS分布式存储系统,在无特定存储设备的环境下整合每台服务器的存储资源,为Kubernets与Docker镜像提供存储。
第二章 方案规划
2.1.硬件信息
主机名 | CPU | 内存 | ip | 磁盘 | 角色 |
---|---|---|---|---|---|
Rancher1-uos-pc | 2 | 4G | 10.10.254.245 | sda 50G | Sdb 50G (GlusteFS) Etcd,ControlWorker |
Rancher2-uos-pc | 2 | 4G | 10.10.254.221 | sda 50G | Sdb 50G (GlusteFS) Worker |
Rancher3-uos-pc | 2 | 4G | 10.10.254.230 | Sda 50G | Sdb 50G(GlusteFS) Worker |
harbor-uos-pc 1 | 2 | 4G | 10.10.254.49 | sda 50G | Sdb 50G(GlusteFS) harbor |
2.2.软件信息
软件名称 | 版本号 | 备注 |
---|---|---|
Docker | 18.09.1 | |
Ranche | v2.4.4 | |
Harbor | v1.10.3 | |
GlusterFS | v5.5 |
2.3.准备环境
1.更新apt源 (所有节点)
apt update
2.配置本地host文件 (所有节点)
cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 uos-PC
The following lines are desirable for IPv6 capable hosts
10.10.254.245 Rancher1-uos-pc
10.10.254.221 Rancher2-uos-pc
10.10.254.230 Rancher3-uos-pc
10.10.254.49 harbor-uos-pc
3.所有节点安装docker
apt install docker.io
2.3.1.Rancher软件安装
1.主节点执行命令,拉取Rancher镜像,docker运行
root@Rancher1-uos-pc:~#docker run -d -p 9080:80 -p9443:443 --restart unless-stopped Rancher/Rancher:v2.4.4
2.docker运行起来测试访问 https://10.10.254.245:9443,设置密码并接受许可协议
6.Rancher支持导入现有的kubernets集群,也可与一些云服务供应商对接,目前我们先不涉及这些功能,新建一个集群选择自定义
7.此时根据我们之前规划好的角色选择(主节点:全选,其他节点:只需勾选Worker),分别点击右侧复制命令,在各节点上粘贴执行。
10.选择上括号所框代表本机所代表的角色,点击箭头所指的 Etcd Control Worker加入master集群的命令,两个worker节点只需要勾选Worker一个 之后所产生的命令再对应的节点输入(前提别的设备上已安装docker,可以正常联网,之后大概要等到半个小时左右的时间)
11.Rancher集群已经创建完成,具体操作的文档可参考Rancher官方文档
2.3.2.Harbor软件 安装
1.首先需要从harbor官方下载安装包,官方发布地址:https://github.com/goharbor/harbor/releases 安装包分为别对应offline(离线),online(在线)版本,根据网络情况下载即可。
2.具体命令
root@harbor-uos-pc:~#wget https://github.com/goharbor/harbor/releases/download/v1.10.3/harbor-online-installer-v1.10.3.tgz
●安装docker-compose
root@harbor-uos-pc:~# apt-get install curl && curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- ( u n a m e − s ) − (uname -s)- (uname−s)−(uname -m) -o /usr/local/bin/docker-compose
(链接github的时候可能会超时建议多次尝试)
root@harbor-uos-pc:~# vim harbor/harbor.yml
●按照下图进行修改里面的配置
root@harbor-uos-pc:~# bash harbor/install.sh
稍等大约5-10分钟左右(取决于网络速率)
●安装完成后访问,http://10.10.254.49
用户名:admin
密码:Harbor12345
2.3.3.GlusterF软件安装
1.在所有Rancher节点上对sdb进行分区、格式化创建GlusterFS目录、并写入fstab、挂载
parted /dev/sdb mklabel msdos
parted /dev/sdb mkpart p 4096 100%
mkfs.ext4 /dev/sdb1
mkdir /GlusterFS
echo “/dev/sdb1 /GlusterFS ext4 defaults 0 0” >> /etc/fstab
mount -a
2.在所有Rancher节点上分别安装glusterfs-server、并启动
apt-get install glusterfs-server -y
systemctl enable glusterd.service
systemctl start glusterd.service
3.在Rancher1上操作,将另外两台gluster节点加入到集群中
root@Rancher1-uos-pc:~# gluster peer probe Rancher2-uos-pc
root@Rancher1-uos-pc:~# gluster peer probe Rancher3-uos-pc
4.创建gluster分布式卷其中一台作为冗余,并启动
root@Rancher1-uos-pc:~# gluster volume create Rancher transport tcp disperse 3 redundancy 1 Rancher{1,2,3}-uos-pc:/GlusterFS force
root@Rancher1-uos-pc:~# gluster volume start Rancher
5.尝试在本机进行挂载
root@Rancher1-uos-pc:~# mount -t glusterfs Rancher1-uos-pc:/Rancher /mnt
2.4.方案验证
1.我们用现有的所有架构部署一个nextcloud应用作为示范,首先把镜像从dockerhub上pull下来
docker pull nextcloud
2.然后登录镜像仓库,由于没有采用https部署,所以需要在配置中信任一下,在所有节点上配置:
vim /etc/default/docker
3.把下载的镜像修改下tag,改成我们之前部署好的harbor镜像仓库的地址
root@Rancher1-uos-pc:~# docker tag nextcloud:latest 10.10.254.49/library/nextcloud:latest
4.然后重启下docker
systemctl restart docker
5.命令行登录Harbor
docker login 10.10.254.49
6.出现Succeeded字段表明登陆成功,就可以push之前的镜像到我们的私有仓库了
root@Rancher1-uos-pc:~#docker push 10.10.254.49/library/nextcloud:latest
7.测试访问看是否pull成功
8.由于需要在glusterfs中存储应用中的数据,需要为glusterfs添加一个集群内部的DNS,指向glusterfs的IP地址,进入到Debault项目空间:
11.把储存驱动程序开启,配置好后切换到集群界面,选择存储,持久卷。
13.此时集群中的glusterfs已配置完成,接下来部署服务:
切换到debault项目空间:
14.切换到工作负载选项卡,选择部署服务
16.配置完成后点击启动。
Rancher会为随机配置一个Nodeport映射到容器的80端口,在工作负载中能够显示,点击端口即可访问服务:
16.在其中一个节点手动挂载GlusterFS,查看nextcloud的中文件是否保存在GlusterFS中:
root@Rancher1-uos-pc:/mnt# mount -t glusterfs Rancher1-uos-pc:/Rancher /mnt/
17.可以看到咱们的nextcloud也同步过来了