提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Rancher基础认知
-
- [1.1 Rancher概述](#1.1 Rancher概述)
- 二、环境准备
-
- [2.1 环境规划](#2.1 环境规划)
- 三、Rancher安装及配置
-
- [3.1 安装Rancher组件](#3.1 安装Rancher组件)
-
- [3.1.1 master01节点:下载rancher-agent镜像](#3.1.1 master01节点:下载rancher-agent镜像)
- [3.1.2 rancher节点:部署Rancher服务](#3.1.2 rancher节点:部署Rancher服务)
- [3.2 登录Rancher平台](#3.2 登录Rancher平台)
- [3.3 导入已存在的K8s集群](#3.3 导入已存在的K8s集群)
-
- [3.3.1 验证集群导入结果](#3.3.1 验证集群导入结果)
- [3.4 部署Rancher监控系统](#3.4 部署Rancher监控系统)
- [3.5 基于Rancher仪表盘管理K8s集群(以创建Nginx服务为例)](#3.5 基于Rancher仪表盘管理K8s集群(以创建Nginx服务为例))
- [3.5.1 步骤1:创建命名空间(Namespace)](#3.5.1 步骤1:创建命名空间(Namespace))
-
- [3.5.2 步骤2:创建Deployment资源](#3.5.2 步骤2:创建Deployment资源)
- [3.5.3 步骤3:创建Service资源](#3.5.3 步骤3:创建Service资源)
- [3.5.4 步骤4:验证Nginx服务访问](#3.5.4 步骤4:验证Nginx服务访问)
- 总结
前言
一、Rancher基础认知
1.1 Rancher概述
Rancher是一款开源的企业级多集群Kubernetes管理平台,核心价值在于解决K8s集群在混合云+本地数据中心场景下的集中部署与管理问题,同时保障集群安全性,简化容器化应用的交付流程。
其核心优势包括:
- 无需深度掌握K8s概念,通过可视化界面即可完成集群与应用管理;
- 支持多集群统一管控,适配公有云、私有云、物理机等多种部署环境;
- 内置安全机制与监控能力,满足企业级生产环境需求。
Rancher官方文档:https://docs.rancher.cn/
K8s是容器调度引擎,Rancher是K8s集群的管理平台,通过Rancher可实现对多个K8s集群的统一管控。
二、环境准备
2.1 环境规划
本次部署需4台节点服务器,操作系统建议为CentOS 7.x或Ubuntu 18.04+,节点角色与IP规划如下:
| 节点角色 | 节点名称 | IP地址 | 核心功能 |
|---|---|---|---|
| K8s控制节点 | master01 | 192.168.10.55 | 管理K8s集群,运行rancher-agent |
| K8s工作节点 | node01 | 192.168.10.51 | 运行容器应用 |
| K8s工作节点 | node02 | 192.168.10.52 | 运行容器应用 |
| Rancher管理节点 | rancher | 192.168.10.50 | 部署Rancher服务,提供管理界面 |
三、Rancher安装及配置
3.1 安装Rancher组件
3.1.1 master01节点:下载rancher-agent镜像
bash
# 拉取rancher-agent镜像
docker pull rancher/rancher-agent:v2.5.7
3.1.2 rancher节点:部署Rancher服务
bash
# 1. 拉取rancher镜像(版本v2.5.7)
docker pull rancher/rancher:v2.5.7
# 2. 启动rancher容器
docker run -d \
--restart=unless-stopped \ # 容器退出时自动重启(Docker守护进程启动时已停止的容器除外)
-p 80:80 \ # 映射HTTP端口(80)
-p 443:443 \ # 映射HTTPS端口(443)
--privileged \ # 赋予容器特权模式(确保Rancher正常运行)
--name rancher \ # 容器命名为rancher
rancher/rancher:v2.5.7 # 使用的镜像版本
======================================================================================
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
# 3. 验证容器是否启动成功
docker ps -a | grep rancher

3.2 登录Rancher平台

3.3 导入已存在的K8s集群
Rancher的核心功能之一是管理已有K8s集群,本次实操将master01、node01、node02组成的K8s集群导入Rancher:
1、进入Rancher主界面,点击右上角【添加集群】,选择【导入】(导入已有K8s集群);
2、在【集群名称】输入框中填写k8s-cluster,点击【创建】;

3、页面会生成3条导入命令,选择第三条命令(绕过证书检查,适合测试环境),复制命令内容;

4、登录master01节点,粘贴并执行复制的命令,先在Rancher页面点击完成(若第一次执行报错,再次执行即可)

3.3.1 验证集群导入结果
在master01节点执行以下命令,验证Rancher相关命名空间与Pod是否正常运行:
bash
# 1. 查看命名空间(需存在cattle-system、fleet-system(2.5.7版本没有))
kubectl get ns
cattle-system Active 3m24s # Rancher集群代理相关命名空间
default Active 5d # K8s默认命名空间

bash
# 2. 查看cattle-system命名空间下的Pod(状态需为Running)
kubectl get pods -n cattle-system -o wide

Pod为Running状态,说明K8s集群已成功导入Rancher。
3.4 部署Rancher监控系统
1、进入已导入的k8s-cluster集群界面,点击页面提示【启用监控以查看实时监控】;

2、在【监控组件版本】下拉框中选择0.2.1,其他参数保持默认;

3、点击【启用监控】,监控组件启动需约10分钟(耐心等待,期间不要重复操作);
4、监控启用成功后,可在集群界面查看CPU、内存、Pod数量等实时指标。

3.5 基于Rancher仪表盘管理K8s集群(以创建Nginx服务为例)
Rancher提供可视化仪表盘,可替代kubectl命令行操作K8s资源。
本次以创建Nginx服务为例,演示仪表盘的使用流程。
3.5.1 步骤1:创建命名空间(Namespace)
命名空间用于隔离不同环境的资源(如开发环境、生产环境),本次创建dev命名空间:
1、 进入k8s-cluster集群的仪表盘界面(点击【仪表盘】);
2、点击左侧菜单【Namespaces】,再点击右侧【Create】;
3、在【Name】输入框填写dev,【Description】可自定义(如"开发环境命名空间");

4、点击右下角【Create】,完成命名空间创建。

3.5.2 步骤2:创建Deployment资源
Deployment用于定义Pod的部署规则(如副本数、镜像版本),本次创建3个Nginx副本:
1、点击左侧菜单【Deployments】,点击右侧【Create】;

2、基础配置:
- 【Namespace】下拉选择dev;
- 【Name】输入nginx-dev;
- 【Replicas】输入3(创建3个Pod副本);
3、容器配置(点击【Container】选项卡):
- 【Container Image】输入nginx:1.14(指定Nginx镜像及版本);
- 【Pull Policy】选择IfNotPresent(本地有镜像则不重新拉取);

4、标签配置:
- 【Pod Labels】下点击【Add Label】,【Key】输入app,【Value】输入nginx(给Pod打标签,用于后续Service关联);
5、点击右下角【Create】,完成Deployment创建。

3.5.3 步骤3:创建Service资源
Service用于暴露Pod的网络访问能力,本次选择NodePort类型(通过节点IP+端口访问):
1、点击左侧菜单【Services】,点击右侧【Create】;

2、选择服务类型【Node Port】;

3、基础配置:
【Namespace】下拉选择dev;
【Name】输入nginx-dev;

4、端口配置:
- 【Port Name】输入nginx;
- 【Listening Port】输入80(Service监听端口);
- 【Target Port】输入80(Pod的目标端口,与Nginx默认端口一致);
- 【Node Port】输入30180(节点端口,范围需在30000-32767之间);

5、 关联Pod(点击【Selectors】选项卡):
- 【Key】输入
app,【Value】输入nginx(通过标签关联步骤2创建的Nginx Pod);

6、点击右下角【Create】,完成Service创建。
3.5.4 步骤4:验证Nginx服务访问
1、进入【Services】界面,点击nginx-dev服务,查看【Node Port】是否为30180/TCP;

2、打开浏览器,输入任意K8s工作节点IP+节点端口(如http://192.168.10.15:30180);
3、若页面显示Nginx默认欢迎页,说明服务创建成功。