一、环境准备
本文适用服务器配置
内存 :4G
系统 :CentOS Linux release 7.5.1804 (Core)
CPU : 双核
环境版本选择
Rancher官网 提供的版本推荐,要稳定地、顺畅地使用Rancher(兼容K8S),软件版本需求为:
Ubuntu 16.04.3 LTS(内核4.4.0以上)/ CentOS 7 (更新内核)
Docker 17.03.2-ce
K8S v1.7,7
Rancher v1.6.8
防火墙
个人建议不需要使用iptables 而是使用centos7原生的firewalld
docker命令中使用 -p 暴露端口时,实现需要依赖iptables 参考 //www.greatytc.com/p/10c467600ef9
二、安装docker
- 更新服务器内核
yum update
- 卸载旧版本docker(如果没有旧版本则不需要执行)
yum list installed|grep docker # 检测是否已安装过docker
yum -y remove docker-ce.x86_64
rm -rf /var/lib/docker
-
下载安装包
中科大镜像
wget https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
yum -y localinstall docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
wget https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
yum -y localinstall docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
检查安装是否完成
docker version
Version: 17.03.2-ce
API version: 1.27
Go version: go1.7.5
Git commit: f5ec1e2
Built: Tue Jun 27 02:21:36 2017
OS/Arch: linux/amd64
-
启动docker:
执行以下命令让docker开机自动启动
systemctl start docker
systemctl enable docker
-
添加阿里镜像源
阿里有提供镜像加速服务器,在阿里后台申请后可以获取该脚本
https://cr.console.aliyun.com
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["请访问阿里容器后台,获取你专属的加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、安装Rancher平台
参考该文章 https://blog.csdn.net/CSDN_duomaomao/article/details/78069104
-
启动Rancher 容器调度平台
执行以下命令启动
sudo docker run -d --restart=unless-stopped --name=rancher-server -p 9000:8080 rancher/server:v1.6.8
此命令仅适用于单机测试环境,如果要生产使用Rancher server,请使用外置数据库(mysql)或者通过
-v /xxx/mysql/:/var/lib/mysql -v /xxx/log/:/var/log/mysql -v /xxx/cattle/:/var/lib/cattle
至此rancher已经安装完毕
Rancher使用说明,请查看官方文档 https://rancher.com/docs/rancher/latest/zh/
四、附属配置(可选)
Rancher中使用NFS文件系统
参考 //www.greatytc.com/p/281152ec519e
- 安装NFS Server
yum -y install nfs-utils
- 配置NFS Server Exports
要想客户端可以访问到,需要在服务端把挂载点export出来
vim /etc/exports
/mnt/share *(rw,async,no_root_squash,no_subtree_check)
参数说明:
/mnt/share:nfs共享的目录
10.1.107.0/24:* 指所有IP ,示例为10.1.107.0-10.1.107.254区间的IP可以访问;
rw:read-write,可读写;
ro:read-only,只读;
sync:同步写入(文件同时写入硬盘和内存),适用在通信比较频繁且实时性比较高的场合
async:异步写入(文件先写入内存,稍候再写入硬盘),性能较好(速度快),适合超大或者超多文件的写入,但有数据丢失的风险,比如突然断电等情况;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限(可能会不安全);
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
all_squash:将来访的所有用户映射为匿名用户或用户组;
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值;
no_subtree_check:如果NFS输出的是一个子目录,则无需检查其父目录的权限(可以提高效率)
- 启动NFS Server
systemctl enable nfs-server.service
systemctl start nfs-server.service
如果已经启动nfs-server.service,修改/etc/exports
后可以执行exportfs -a
重新加载配置
- 配置防火墙 (假如还有开着防火墙)
参考 http://blog.51cto.com/pizibaidu/1982748
yum -y install firewalld
systemctl start firewalld.service
systemctl enable firewalld.service
#务必注意ssh
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload
查看nfs生效的端口
rpcinfo -p localhost
- 客户端检测
showmount -e
正常情况下应该能看到/mnt/share
- 设置共享目录权限
mkdir -p /mnt/share
chmod -R 777 /mnt/share
配置Rancher
- 商店界面安装rancherNFS
- 配置nfs功能
主要是NFS Server 和 Mount Directory
FNS Server 就是当前主机IP;
Mount Directory 是 /mnt/share
On Remove 是 retain 移除后保留,避免文件丢失
完成后在每个主机上都创建了一个实例
- 创建卷
在rancher界面基础设施里面存储应该可以看到已安装了的主机,可以添加卷,如果指定了卷名称,需要使用下面实践中给出的办法来对应。否则的话实例会自动创建一个卷名称