0. Rancher 2.X 简介
Rancher是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。
rancher1.x 支持docker compose、swarm、kubernetes等集成,镜像名为rancher/server。
rancher2.15支持kubernates,镜像名为rancher/rancher。
当前stable版为2.6.3。
OS & Docker
TYPE | VERSION | VALIDATED/CERTIFIED ON |
---|---|---|
CentOS | 7.5, 7.6, 7.7, 7.8 | Docker 17.03.2, 18.06.2, 18.09.x, 19.03.x |
Oracle Linux | 7.6, 7.7 | Docker 19.03.x |
RancherOS | 1.5.6 | Docker 17.03.2, 18.06.2, 18.09.x (up to 18.09.8), 19.03.x |
RHEL | 7.5, 7.6, 7.7, 7.8 | RHEL Docker 1.13.x Docker 17.03.2, 18.06.2, 18.09.x, 19.03.x |
SLES | 12 SP5, 15 SP1 | Docker 19.03.x |
Ubuntu | 16.04, 18.04, 20.04 | Docker 17.03.2, 18.06.2, 18.09.x, 19.03.x |
Windows Server | 1809, 1903 | Docker 19.03.x EE For worker nodes only |
Rancher Kubernetes
TYPE | UPSTREAM VERSION | VALIDATED/CERTIFIED ON2,3,4,5 |
---|---|---|
Rancher Launched | 1.18.6 | etcd: v3.4.3 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0 |
Rancher Launched | 1.17.9 | etcd: v3.4.3 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0 |
Rancher Launched | 1.16.13 | etcd: v3.3.15 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0 |
Rancher Launched | 1.15.12 | etcd: v3.3.10 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0 |
本次选用:CentOS 7.8、Docker 19.03.12、RKE默认
1. Rancher 安装
1.1 机器准备
从公有云上申请了三台CentOS 7.8的云主机
IP地址 | 主机名 | 硬件需求 | 角色 |
---|---|---|---|
116.239.3x.75 | rancher | 2C、2G | rancher/rancher:stable |
116.239.3x.78 | k8s-master | 4C、8G | rancher/rancher-agent:v2.4.8、Etcd、Controller Manager、Scheduler、Worker、业务service |
116.239.3x.83 | k8s-node | 4C、8G | rancher/rancher-agent:v2.4.8、Worker、业务service |
注意:rancher不要作为k8s集群的worker节点,避免rancher和nginx-ingress-controller端口冲突(均是80和443端口)。
1.2 docker安装
1.2.1 yum 源配置
将CentOS的源配置为163 的源
yum install -y wget
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum makecache
1.2.2 基础软件下载
yum install -y curl vim gcc gcc-c++
yum install -y yum-utils device-mapper-persistent-data lvm2
1.2.3 增加 docker yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.2.4 查看docker-ce版本并下载
yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce
docker --version
1.2.5 设置docker 服务开机启动
systemctl start docker
systemctl enable docker
systemctl list-unit-files --all --type=service | grep docker
1.2.6 设置docker iamges 镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://l040g3fw.mirror.aliyuncs.com"]
}
EOF
#重启守护进程及docker服务
systemctl daemon-reload
systemctl restart docker
国内其他镜像
在这里插入代码片多个国内镜像地址使用英文逗号分隔:
http://hub-mirror.c.163.com
https://l040g3fw.mirror.aliyuncs.com (个人申请的阿里云docker专属加速镜像源)
https://registry.docker-cn.com
https://docker.mirrors.ustc.edu.cn
1.2.7安装docker-compose容器编排服务
yum install -y epel-release
yum makecache
yum install -y docker-compose
docker-compose version
1.2.8 docker远程部署(根据需要开启远程部署)
vim /lib/systemd/system/docker.service
#修改
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
systemctl daemon-reload
systemctl restart docker
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
**备注:**docker镜像源推荐使用网易163的镜像。
1.3 Rancher安装
在Rancher主机上执行如下操作:
# 设置hostname
hostname rancher && hostnamectl set-hostname rancher
mkdir -p /home/rancher/rancher
mkdir -p /home/rancher/auditlog
docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 -v /home/rancher/rancher:/var/lib/rancher -v /home/rancher/auditlog:/var/log/auditlog --name rancher rancher/rancher:stable
# 防火墙设置
firewall-cmd --add-port 80/tcp --permanent
firewall-cmd --add-port 443/tcp --permanent
firewall-cmd --reload
# 或者
systemctl stop firewalld && systemctl disable firewalld
访问rancher主机的地址,http://116.239.3x.75/,初次登陆需要更改密码,可以通过用户设置将页面改为中文简体
注意:
1.构建k8s过程中会自动拉取docker镜像,比较耗时,根据网速情况,一般需要10分钟左右。
2.若网络正常的情况下,一直失败,查看错误日志。
2. Rancher简单使用
2.1 登录并开始使用Rancher
打开浏览器,输入https://<server_ip>,server_ip替换为运行Rancher容器主机的ip;
因为是自动使用的自签名证书,在第一次登录会提示安全授信问题,信任即可;
第一次登录会要求设置管理员密码,默认管理员账号为: admin。
设置Rancher Server URL:Rancher Server URL是agent节点注册到Rancher Serverd的地址,需要保证这个地址能够被agent主机访问,不要设置为127.0.0.1或者localhost。
点击这里可以将系统设置为简体中文
2.2 创建K8S集群
现在创建第一个Kubernetes集群,可以使用自定义选项。您可以添加云主机、内部虚拟机或物理主机作为集群节点,节点可以运行任何一种或多种主流Linux发行版。
在全局视图下,点击菜单中的集群 , 并点击添加集群
选择 自定义,并设置集群名称,其他参数可不用修改,点击下一步;
选择节点运行的角色:默认会勾选Worker角色,根据需要可以一次勾选多种角色。比如,假设我只有一个节点,那就需要把所有角色都选择上,选择后面的命令行会自动添加相应的命令参数。
设置不同角色,并将这些命令复制到K8S-Master、K8S-Slave节点上执行,可以将这个集群添加进来。
例如:本人建立K8S机器过程中,一直失败提示etcd健康检查失败: [etcd] Failed to bring up Etcd Plane: [etcd] Etcd Cluster is not healthy,查看日志发现,证书验证未通过!可以通过关闭K8S-Master、K8S-Slave上的防火墙来解决,再不行的话,在三台云主机上安装NTP服务就可以解决,这里不再赘述。
下图是已经添加好的集群
7. 部署工作负载服务
工作负载是一个对象,包括pod以及部署应用程序所需的其他文件和信息。我们以nginx作为例:在集群视图下,点击Deployment——>部署服务
然后部署一个Nginx服务,之后可以尝试正常访问这个服务