一、实验须知

1、Rancher简介

中文官方文档:

Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。

Rancher特点如下:

  • 容器管理:Rancher 支持 K8S,允许用户通过 Web 界面集中管理多个 K8S集群,用户通过简单的几步就能够部署k8s资源;
  • 多云支持:Rancher 提供了对多个云提供商的支持,如 AWS、Azure、Google Cloud 等;
  • 高可用性:Rancher 高可用模式,确保平台本身的稳定性和容错性。在某些节点失败的情况下,Rancher仍然可以继续运行并提供服务;
  • 安全性:Rancher 提供了多层级的安全特性,包括用户认证、访问控制、镜像安全扫描等,帮助用户保护容器化应用程序的安全;
  • 资源管理:Rancher 允许用户对容器集群中的资源进行管理和调整,以确保应用程序的性能和稳定性;
  • 应用商店:Rancher 提供了应用商店(Catalog)功能,允许用户浏览和安装预定义的应用程序模板,简化了应用程序部署的过程。

本次实验所需离线文件如下:点击下载

2、当前实验环境

1、已存在K8S集群信息:

角色IP地址主机名称集群版本
控制节点16.32.15.200master-1v1.26.2
工作节点16.32.15.201node-1v1.26.2
工作节点16.32.15.202node-2v1.26.2

2、Rancher服务器信息:

角色IP地址主机名称版本
Rancher16.32.15.115rancherv2.9.2

二、部署Rancher

1、服务器初始化操作

1、配置主机名+本地解析

hostnamectl set-hostname rancher && bash

添加本地hosts解析:

cat >> /etc/hosts << EOF
16.32.15.115 rancher
16.32.15.200 master-1
16.32.15.201 node-1
16.32.15.202 node-2
EOF

2、配置rancher到K8S主机互信

ssh-keygen

ssh-copy-id master-1
ssh-copy-id node-1
ssh-copy-id node-2

3、关闭防火墙

systemctl disable firewalld --now
setenforce 0
sed  -i -r 's/SELINUX=[ep].*/SELINUX=disabled/g' /etc/selinux/config
iptables -F

4、关闭swap分区

swapoff --all
sed -i -r '/swap/ s/^/#/' /etc/fstab

5、添加网桥过滤器和地址转发功能

cat >> /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sysctl -p /etc/sysctl.d/kubernetes.conf

加载网桥过滤器模块:

modprobe br_netfilter
lsmod | grep br_netfilter # 验证是否生效

6、时间同步,一定保证rancher服务器与K8S服务器时间一致!

同步时区:

timedatectl set-timezone Asia/Shanghai

同步时间:

yum -y install ntpdate
ntpdate ntp1.aliyun.com

定时同步时间:

echo "0 1 * * * ntpdate ntp1.aliyun.com" >> /var/spool/cron/root
crontab -l

7、安装Docker环境

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache

# yum-utils软件用于提供yum-config-manager程序
yum install -y yum-utils

# 使用yum-config-manager创建docker阿里存储库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 -y

配置docker国内加速器:

mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
 "registry-mirrors": [
"https://vm1wbfhf.mirror.aliyuncs.com",
"http://f1361db2.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.baidubce.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://ccr.ccs.tencentyun.com",
"https://hub.daocloud.io",
"https://docker.shootchat.top",
"https://do.nark.eu.org",
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://dockerhub.timeweb.cloud",
"https://docker.shootchat.top",
"https://do.nark.eu.org"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

启动并加入自启动:

systemctl enable docker --now
systemctl status docker

8、安装docker-compose环境

curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

查看版本:

docker-compose --version

2、部署Rancher

1、下载镜像

docker pull rancher/rancher:v2.9.1

2、创建docker-compose文件

mkdir ~/docker-compose/rancher -p
cat > ~/docker-compose/rancher/docker-compose.yaml << EOF
version: '3.8'
services:
  rancher:
    image: rancher/rancher:v2.9.1
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    privileged: true
EOF

3、启动服务

cd ~/docker-compose/rancher
docker-compose up -d
docker-compose logs -f 

3、登入Rancher平台

1、获取临时密码

docker logs rancher  2>&1 | grep "Bootstrap Password:"|awk '{print $NF}'
nxkd6bphsmcbcmq2ld6749jzmgn8cslffgx9fggsntjqswwzwgd5s8

2、登入Rancher

浏览器访问:https://16.32.15.115/

在这里插入图片描述
设置一个新密码:
在这里插入图片描述

最终页面如下:
在这里插入图片描述

三、Rancher对接K8S集群

选择导入已有集群:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在K8S控制节点中执行:

curl --insecure -sfL https://16.32.15.115/v3/import/2lp7hxrrvdhl5lgwr7dpbz5lv7bc6lq7rffhpd7zp4p626j56b577b_c-m-9m57bbmf.yaml | kubectl apply -f -

查看rancher-agent是否部署成功:

kubectl get pods -n cattle-system -o wide

在这里插入图片描述

helm的不用管,本次用不到!

四、通过Rancher仪表盘部署Nginx服务

1、创建命名空间

在这里插入图片描述
可以针对命名空间做一些限制,如下图,由于仅仅只是实验,我没有做任何限制,实际根据环境决定!
在这里插入图片描述

2、创建Deployment


填写容器基本信息:

给Pod打标签:
在这里插入图片描述
完成后,点击创建:
在这里插入图片描述
查看资源是否创建成功:
在这里插入图片描述

3、创建Service

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加控制器,关联Pod:
在这里插入图片描述
查看控制器管理Pod信息:

在这里插入图片描述
现在任意Node节点IP:30088都可以访问到Nginx页面了,如下图:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐