Rancher2.x的安装与使用入门

一、Rancher简介

Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。

rancher1.x 支持docker compose、swarm、kubernates等集成,镜像名为rancher/server

rancher2.15支持kubernates,镜像名为rancher/rancher

中文官网

官方文档

当前stable版为2.4.8,latest为2.5.1,建议使用stable版。

OS & Docker

TYPEVERSIONVALIDATED/CERTIFIED ON1
CentOS7.5, 7.6, 7.7, 7.8Docker 17.03.2, 18.06.2, 18.09.x, 19.03.x
Oracle Linux7.6, 7.7Docker 19.03.x
RancherOS1.5.6Docker 17.03.2, 18.06.2, 18.09.x (up to 18.09.8), 19.03.x
RHEL7.5, 7.6, 7.7, 7.8RHEL Docker 1.13.x Docker 17.03.2, 18.06.2, 18.09.x, 19.03.x
SLES12 SP5, 15 SP1Docker 19.03.x
Ubuntu16.04, 18.04, 20.04Docker 17.03.2, 18.06.2, 18.09.x, 19.03.x
Windows Server1809, 1903Docker 19.03.x EE For worker nodes only

Rancher Kubernetes

TYPEUPSTREAM VERSIONVALIDATED/CERTIFIED ON2,3,4,5
Rancher Launched1.18.6etcd: v3.4.3 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0
Rancher Launched1.17.9etcd: v3.4.3 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0
Rancher Launched1.16.13etcd: v3.3.15 flannel: v0.12.0 canal: v3.13.4 nginx-ingress-controller: 0.32.0
Rancher Launched1.15.12etcd: 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默认

二、Rancher安装

1.机器准备

机器准备硬件需求角色
rancher2C、2Grancher/rancher:stable
k8s-master4C、8Grancher/rancher-agent:v2.4.8、Etcd、Controller Manager、Scheduler、Worker、业务service
k8s-node4C、8Grancher/rancher-agent:v2.4.8、Worker、业务service

注意:rancher不要作为k8s集群的worker节点,避免rancher和nginx-ingress-controller端口冲突(均是80和443端口)。

2.docker安装

docker安装

**备注:**docker镜像源推荐使用网易163的镜像。

3.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

三、Web设置

访问地址: https://192.168.1.222/

设置密码: admin/admin

设置语言: 右下角English改为“简体中文”

四、使用RKE构建K8S集群

参考:

Rancher入门示例

注意:

1.构建k8s过程中会自动拉取docker镜像,比较耗时,根据网速情况,一般需要10分钟左右

2.若网络正常的情况下,一直失败,查看错误日志。

例如:本人建立K8S机器过程中,一直失败提示etcd健康检查失败,查看日志发现,证书验证未通过!

解决办法:删除test集群,重新建立test集群。

# 查看日志
docker logs  --since 120s  etcd

五、建立第一个应用

参照“Rancher入门示例”。

六、Rancher cli的使用

1.安装kubectl、Rancher cli
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install kubectl

# 支持windows、linux、MacOS
wget https://releases.rancher.com/cli2/v2.4.6/rancher-linux-amd64-v2.4.6.tar.gz
tar -zxvf rancher-linux-amd64-v2.4.6.tar.gz
mv rancher-v2.4.6/rancher /usr/bin/rancher
rm -rf rancher-v2.4.6/

2.登录认证及测试
rancher login https://chain1/v3 --token token-m7zhb:crd5zfxvwfj4bkz66kncsml7g5z7cgsbz86bzx6hdflnwfbt2t6vk7
# 测试命令
rancher kubectl get node

注意:
若测试机器未安装kubectl,会提示如下错误!

FATA[0000] kubectl is required to be set in your path to use this command. See https://kubernetes.io/docs/tasks/tools/install-kubectl/ for more info. Error: exec: "kubectl": executable file not found in $PATH 

参照:

rancher-cli的使用

七、Rancher Ingress 负载均衡配置

1.Rancher2.x 负载均衡支持性

我们知道 Kubernetes 支持 4 层和 7 层负载均衡策略,其中 4 层负载均衡(或外部负载均衡)支持转发 HTTP、TCP 请求到 Nodeports 上去,7 层负载均衡(或 Ingress Controller)支持根据 Host、Path 的负载均衡以及 SSL 终端,因为它只支持转发 HTTP 和 HTTPS 的请求,所以它需要监听 80 和 443 端口。4 层和 7 层负载均衡策略在 EKS、GKE、AKS 以及 RKE 在各个云平台的支持情况,参照下表。

部署集群4 层负载均衡支持7 层负载均衡支持
Amazon EKSAWS cloud 提供支持AWS cloud 提供支持
Google GKEGCE cloud 提供支持GKE cloud 提供支持
Azure AKSAzure cloud 提供支持不支持
RKE on EC2AWS cloud 提供支持Nginx Ingress Controller
RKE on DigitalOcean不支持Nginx Ingress Controller
RKE on vSphere不支持Nginx Ingress Controller
RKE on Custom Hosts不支持Nginx Ingress Controller

注意: RKE 集群部署 7 层负载均衡底层默认支持 Nginx Ingress Controller 类型。

2.Nginx Ingress Controller负载均衡-基于Host方式
# 由于未申请购买域名,临时修改hosts文件(位置C:\Windows\System32\drivers\etc\hosts)演示
# 追加以下内容
192.168.1.220 mynginx.example.com mytomcat.example.com

说明:不同域名解析到同一IP上的不同应用。(允许)

参考:

Nginx学习—用不同域名访问同一台机器的不同项目

基于Host方式-mynginx
基于Host方式-mytomcat

3.Nginx Ingress Controller负载均衡-基于Path方式

基于Path方式

# 启用后端重写
nginx.ingress.kubernetes.io/rewrite-target=/

参考:

Rancher Ingress 负载均衡配置

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐