文章目录
- [一、Rancher 管理 Kubernetes 集群](#一、Rancher 管理 Kubernetes 集群)
-
- [1.1 Rancher 简介](#1.1 Rancher 简介)
- [1.2 Rancher 和 k8s 的区别](#1.2 Rancher 和 k8s 的区别)
- [二、Rancher 安装及配置](#二、Rancher 安装及配置)
-
- [2.1 实验环境](#2.1 实验环境)
- [2.2 安装 Rancher](#2.2 安装 Rancher)
-
- [2.2.1 下载镜像](#2.2.1 下载镜像)
- [2.2.2 启动 Rancher 容器](#2.2.2 启动 Rancher 容器)
- [2.2.3 验证容器状态](#2.2.3 验证容器状态)
- [2.3 登录 Rancher 平台](#2.3 登录 Rancher 平台)
- [2.4 Rancher 管理已存在的 k8s 集群](#2.4 Rancher 管理已存在的 k8s 集群)
- [2.5 Rancher 部署监控系统](#2.5 Rancher 部署监控系统)
- [2.6 使用 Rancher 仪表盘管理 k8s 集群(以创建 nginx 服务为例)](#2.6 使用 Rancher 仪表盘管理 k8s 集群(以创建 nginx 服务为例))
-
- [2.6.1 创建名称空间(Namespace)](#2.6.1 创建名称空间(Namespace))
- [2.6.2 创建 Deployment 资源](#2.6.2 创建 Deployment 资源)
- [2.6.3 创建 Service](#2.6.3 创建 Service)
- 三、操作命令清单
-
- [3.1 基础环境与镜像操作](#3.1 基础环境与镜像操作)
-
- [3.1.1 下载 Rancher 相关镜像](#3.1.1 下载 Rancher 相关镜像)
- [3.1.2 启动 Rancher 容器(rancher 节点执行)](#3.1.2 启动 Rancher 容器(rancher 节点执行))
- [3.1.3 验证 Rancher 容器状态(rancher 节点执行)](#3.1.3 验证 Rancher 容器状态(rancher 节点执行))
- [3.2 K8s 集群导入与验证](#3.2 K8s 集群导入与验证)
-
- [3.2.1 权限授权(可选,权限不足时执行)](#3.2.1 权限授权(可选,权限不足时执行))
- [3.2.2 导入已存在的 K8s 集群(master01 节点执行)](#3.2.2 导入已存在的 K8s 集群(master01 节点执行))
- [3.2.3 导入结果验证(master01 节点执行)](#3.2.3 导入结果验证(master01 节点执行))
- [3.3 Rancher CLI 基础命令(可选)](#3.3 Rancher CLI 基础命令(可选))
-
- [3.3.1 全局配置命令](#3.3.1 全局配置命令)
- [3.3.2 常用操作命令](#3.3.2 常用操作命令)
- [3.4 Kubectl 关联 Rancher 集群(可选)](#3.4 Kubectl 关联 Rancher 集群(可选))
-
- [3.4.1 配置 Kubeconfig(本地终端执行)](#3.4.1 配置 Kubeconfig(本地终端执行))
- [3.5 Nginx 服务部署验证命令(可选)](#3.5 Nginx 服务部署验证命令(可选))
-
- [3.5.1 查看 dev 命名空间资源](#3.5.1 查看 dev 命名空间资源)
- [3.5.2 访问 Nginx 服务(任意节点执行)](#3.5.2 访问 Nginx 服务(任意节点执行))
一、Rancher 管理 Kubernetes 集群
1.1 Rancher 简介
Rancher 是开源的企业级多集群 Kubernetes 管理平台,支持混合云+本地数据中心场景下 Kubernetes 集群的集中部署与管理,保障集群安全性,加速企业数字化转型,目前已有超 40000 家企业日常使用。
1.2 Rancher 和 k8s 的区别
- 两者均为容器调度与编排系统,核心差异在于 Rancher 不仅能管理应用容器,还可实现对 k8s 集群的管理。
- Rancher2.x 底层基于 k8s 调度引擎,经封装后,用户无需熟悉 k8s 概念,即可通过 Rancher 便捷地将容器部署到 k8s 集群。
二、Rancher 安装及配置
2.1 实验环境
| 节点类型 | 节点名称 | IP地址 |
|---|---|---|
| 控制节点 | master01 | 192.168.10.18 |
| 工作节点 | node01 | 192.168.10.19 |
| 工作节点 | node02 | 192.168.10.20 |
| Rancher节点 | rancher | 192.168.10.13 |
2.2 安装 Rancher
2.2.1 下载镜像
- 在 master01 节点执行命令:
docker pull rancher/rancher-agent:v2.5.7(下载 rancher-agent 镜像) - 在 rancher 节点执行命令:
docker pull rancher/rancher:v2.5.7(下载 rancher 镜像)
2.2.2 启动 Rancher 容器
执行命令:docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
- 参数说明:
--restart=unless-stopped表示容器退出时自动重启(Docker 守护进程启动时已停止的容器除外)
2.2.3 验证容器状态
执行命令:docker ps -a|grep rancher,正常输出示例:
1326da432b17 rancher/rancher:v2.5.7 "entrypoint.sh" 13 seconds ago Up 13 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher
2.3 登录 Rancher 平台
- 等待容器启动完成后,在浏览器访问
http://192.168.10.13(未使用授信证书,报警提示忽略即可) - 若登录后为英文页面,点击右下角语言选项切换为中文
2.4 Rancher 管理已存在的 k8s 集群
-
平台操作:选择【添加集群】→ 点击【导入】→ 【集群名称】设为 k8s-cluster → 点击【创建】
-
复制页面第三条"绕过证书检查导入 k8s 集群"的命令
-
在 k8s 控制节点 master01 执行复制的命令(首次执行报错可再次执行):
curl --insecure -sfL https://192.168.10.13/v3/import/ltlhl7vggnwz8knbjncgbxqlrf6krpbfbxtzh4qlpnqxrq5559k6gf_c-jf5bx.yaml | kubectl apply -f -

-
验证结果:
- 执行
kubectl get ns,查看命名空间(cattle-system、fleet-system 为新增关联命名空间) - 执行
kubectl get pods -n cattle-system -o wide,查看 cattle-system 命名空间下 Pod 状态(需为 Running) - 执行
kubectl get pods -n fleet-system -o wide,查看 fleet-system 命名空间下 Pod 状态(需为 Running)

- 执行
2.5 Rancher 部署监控系统
- 点击【启用监控以查看实时监控】
- 【监控组件版本】选择 0.2.1,其他保持默认
- 点击【启用监控】,等待约 10 分钟完成启动
2.6 使用 Rancher 仪表盘管理 k8s 集群(以创建 nginx 服务为例)
2.6.1 创建名称空间(Namespace)
- 点击左侧菜单【Namespaces】→ 右侧【Create】
- 【Name】输入 dev,【Description】可选填自定义内容
- 点击右下角【Create】

2.6.2 创建 Deployment 资源
- 点击左侧菜单【Deployments】→ 右侧【Create】
- 基础配置:【Namespace】选择 dev,【Name】输入 nginx-dev,【Replicas】输入 3
- 容器配置:点击【Container】→ 【Container Image】输入 nginx:1.14,【Pull Policy】选择 IfNotPresent
- 标签配置:
- 【Pod Labels】下点击【Add Lable】→ 【Key】输入 app,【Value】输入 nginx
- 【Labels and Annotations】下点击【Add Label】→ 【Key】输入 app,【Value】输入 nginx
- 点击右下角【Create】


2.6.3 创建 Service
- 点击左侧菜单【Services】→ 右侧【Create】→ 选择【Node Port】

-
基础配置:【Namespace】选择 dev,【Name】输入 nginx-dev
-
端口配置:【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180

-
选择器配置:【Selectors】→ 【Key】输入 app,【Value】输入 nginx
-
点击右下角【Create】

-
验证:点击【nginx-dev】,确认 Service 已关联 Pod,通过节点端口 30180/TCP 可访问内部 nginx 页面

三、操作命令清单
3.1 基础环境与镜像操作
3.1.1 下载 Rancher 相关镜像
- master01 节点(控制节点,IP:192.168.10.18):
bash
docker pull rancher/rancher-agent:v2.5.7
- rancher 节点(IP:192.168.10.13):
bash
docker pull rancher/rancher:v2.5.7
3.1.2 启动 Rancher 容器(rancher 节点执行)
bash
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
3.1.3 验证 Rancher 容器状态(rancher 节点执行)
bash
docker ps -a|grep rancher
3.2 K8s 集群导入与验证
3.2.1 权限授权(可选,权限不足时执行)
bash
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole cluster-admin \
--user 你的用户名
3.2.2 导入已存在的 K8s 集群(master01 节点执行)
bash
curl --insecure -sfL https://192.168.10.13/v3/import/ltlhl7vggnwz8knbjncgbxqlrf6krpbfbxtzh4qlpnqxrq5559k6gf_c-jf5bx.yaml | kubectl apply -f -
3.2.3 导入结果验证(master01 节点执行)
- 查看新增命名空间:
bash
kubectl get ns
- 查看 cattle-system 命名空间 Pod 状态:
bash
kubectl get pods -n cattle-system -o wide
- 查看 fleet-system 命名空间 Pod 状态:
bash
kubectl get pods -n fleet-system -o wide
- 查看集群组件状态:
bash
kubectl get cs
- 查看节点信息:
bash
kubectl get nodes -o wide
3.3 Rancher CLI 基础命令(可选)
3.3.1 全局配置命令
bash
# 设置 Rancher API 链接、密钥(替换为实际信息)
rancher config set --url https://192.168.10.13 --access-key 你的访问密钥 --secret-key 你的安全密钥
3.3.2 常用操作命令
bash
# 查看集群列表
rancher clusters list
# 查看主机列表
rancher hosts list
# 查看服务/容器状态
rancher ps
# 重启服务(替换为实际服务名)
rancher restart 服务名
# 查看资源变更事件
rancher events
# 查看 Rancher 节点代理日志
kubectl -n cattle-system logs -l app=cattle-agent
3.4 Kubectl 关联 Rancher 集群(可选)
3.4.1 配置 Kubeconfig(本地终端执行)
- 从 Rancher UI 复制集群 Kubeconfig 内容
- 配置本地文件:
bash
# 创建配置目录(若不存在)
mkdir -p ~/.kube
# 将复制的 Kubeconfig 内容写入配置文件
vim ~/.kube/config
# 验证连接
kubectl cluster-info
kubectl get pods
3.5 Nginx 服务部署验证命令(可选)
3.5.1 查看 dev 命名空间资源
bash
# 查看 Deployment
kubectl get deployments -n dev
# 查看 Pod
kubectl get pods -n dev -o wide
# 查看 Service
kubectl get svc -n dev
3.5.2 访问 Nginx 服务(任意节点执行)
bash
curl http://节点IP:30180
# 示例(访问 node01 节点)
curl http://192.168.10.19:30180
