K8S(十五)—— 企业级K8s集群管理实践:Rancher安装配置与核心功能实操
文章目录
- 前言
- 一、Rancher基础认知
- 1.1 Rancher概述
- 1.2 Rancher与K8s的区别
- 二、实验环境准备
- 2.1 环境规划
- 三、Rancher安装及配置
- 3.1 安装Rancher组件
- 3.1.1 master01节点:下载rancher-agent镜像
- 3.1.2 rancher节点:部署Rancher服务
- 3.2 登录Rancher平台
- 3.3 导入已存在的K8s集群
- 3.3.1 验证集群导入结果
- 3.4 部署Rancher监控系统
- 3.5 基于Rancher仪表盘管理K8s集群(以创建Nginx服务为例)
- 3.5.1 步骤1:创建命名空间(Namespace)
- 3.5.2 步骤2:创建Deployment资源
- 3.5.3 步骤3:创建Service资源
- 3.5.4 步骤4:验证Nginx服务访问
- 总结
前言
随着容器技术的普及,Kubernetes(简称K8s)已成为容器编排的事实标准,但多集群管理、复杂环境部署等问题仍困扰着不少企业。Rancher作为开源的企业级多集群K8s管理平台,能轻松实现混合云与本地数据中心的K8s集群集中管控,大幅降低K8s使用门槛。目前全球已有超过40000家企业通过Rancher加速数字化转型。
本文将从Rancher基础认知出发,详细讲解其与K8s的区别,并通过完整实操步骤,带大家完成Rancher安装、已有K8s集群接入、监控系统部署,以及基于Rancher仪表盘创建Nginx服务的全流程,帮助大家快速掌握Rancher的核心使用能力。
一、Rancher基础认知
1.1 Rancher概述
Rancher是一款开源的企业级多集群Kubernetes管理平台,核心价值在于解决K8s集群在混合云+本地数据中心场景下的集中部署与管理问题,同时保障集群安全性,简化容器化应用的交付流程。
其核心优势包括:
- 无需深度掌握K8s概念,通过可视化界面即可完成集群与应用管理;
- 支持多集群统一管控,适配公有云、私有云、物理机等多种部署环境;
- 内置安全机制与监控能力,满足企业级生产环境需求。
Rancher官方文档:https://docs.rancher.cn/
1.2 Rancher与K8s的区别
很多人会混淆Rancher与K8s的定位,二者虽均涉及容器管理,但核心职责存在明显差异,具体对比如下:
对比维度 | Kubernetes(K8s) | Rancher |
---|---|---|
核心定位 | 容器编排与调度系统 | 多K8s集群管理平台 |
管理范围 | 单集群内的容器、Pod、服务等资源 | 多K8s集群的集中管控 |
使用门槛 | 需掌握K8s核心概念(如Pod、Deployment) | 可视化界面操作,降低技术门槛 |
底层依赖 | 独立运行,无需依赖其他平台 | Rancher 2.x底层基于K8s调度引擎 |
简单来说:K8s是容器调度引擎
,Rancher是K8s集群的管理平台
,通过Rancher可实现对多个K8s集群的统一管控。
二、实验环境准备
2.1 环境规划
本次实验需4台节点服务器,操作系统建议为CentOS 7.x或Ubuntu 18.04+,节点角色与IP规划如下:
节点角色 | 节点名称 | IP地址 | 核心功能 |
---|---|---|---|
K8s控制节点 | master01 | 192.168.10.14 | 管理K8s集群,运行rancher-agent |
K8s工作节点 | node01 | 192.168.10.15 | 运行容器应用 |
K8s工作节点 | node02 | 192.168.10.16 | 运行容器应用 |
Rancher管理节点 | rancher | 192.168.10.18 | 部署Rancher服务,提供管理界面 |
前置条件:所有节点已安装Docker(建议19.03+版本),且K8s集群(master01、node01、node02)已提前部署完成。
K8s集群部署可以参考:https://blog.csdn.net/qq_41978931/article/details/152776500?spm=1011.2415.3001.5331
三、Rancher安装及配置
3.1 安装Rancher组件
Rancher安装需分两个节点操作:master01
节点下载rancher-agent
镜像,rancher
节点下载rancher
镜像并启动服务。
3.1.1 master01节点:下载rancher-agent镜像
登录master01
节点,执行以下命令拉取rancher-agent
镜像(版本与后续Rancher服务保持一致,均为v2.5.7):
# 拉取rancher-agent镜像
docker pull rancher/rancher-agent:v2.5.7
3.1.2 rancher节点:部署Rancher服务
登录rancher
节点,依次执行以下命令拉取镜像并启动Rancher容器:
# 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
预期输出(容器状态为Up
表示启动成功):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c0c7c19e6f2 rancher/rancher:v2.5.7 "entrypoint.sh" 14 seconds ago Up 12 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher
3.2 登录Rancher平台
Rancher容器启动后需等待约1-2分钟初始化,之后通过浏览器访问平台:
1、打开浏览器,输入Rancher节点IP:http://192.168.10.18
(因未使用授信证书,浏览器会提示“安全风险”,忽略警告并继续访问);
2、按照页面提示设置管理员密码(首次登录需完成此步骤),完成后进入Rancher主界面。
3、首次登录默认显示英文界面,点击页面右下角的语言选择框(如“English”),切换为“中文”;
3.3 导入已存在的K8s集群
Rancher的核心功能之一是管理已有K8s集群,本次实操将master01
、node01
、node02
组成的K8s集群导入Rancher:
1、进入Rancher主界面,点击右上角【添加集群】,选择【导入】(导入已有K8s集群);
2、在【集群名称】输入框中填写k8s-cluster
,点击【创建】;
3、页面会生成3条导入命令,选择第三条命令(绕过证书检查,适合测试环境),复制命令内容;
4、登录master01
节点,粘贴并执行复制的命令(若第一次执行报错,再次执行即可):
curl --insecure -sfL https://192.168.10.18/v3/import/5blpfrwllfmcvd28nqlmxxsvnchltgtqpgwt7smxgb8dk8htf8xxrr_c-f98qf.yaml | kubectl apply -f -
3.3.1 验证集群导入结果
在master01
节点执行以下命令,验证Rancher相关命名空间与Pod是否正常运行:
# 1. 查看命名空间(需存在cattle-system、fleet-system(2.5.7版本没有))
kubectl get ns
预期输出:
NAME STATUS AGE
cattle-system Active 3m24s # Rancher集群代理相关命名空间
default Active 5d # K8s默认命名空间
kube-node-lease Active 5d
kube-public Active 5d
kube-system Active 5d
注意点:
- cattle-system: Rancher集群代理相关命名空间
- fleet-system:Rancher舰队管理相关命名空间(v2.6开始Rancher 内置了 Fleet(舰队),用于集中式多集群 GitOps 管理)
# 2. 查看cattle-system命名空间下的Pod(状态需为Running)
kubectl get pods -n cattle-system -o wide
预期输出:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cattle-cluster-agent-8644f67d7f-vsttd 1/1 Running 0 2m6s 10.244.0.9 master01 <none> <none>
若上述Pod为Running
状态,说明K8s集群已成功导入Rancher。
3.4 部署Rancher监控系统
Rancher内置监控功能,可实时查看K8s集群资源使用情况,部署步骤如下:
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关联);
-
【Labels and Annotations】下点击【Add Label】,【Key】输入
app
,【Value】输入nginx
(给Deployment打标签);
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默认欢迎页,说明服务创建成功。
总结
本文从Rancher基础认知出发,完成了从环境准备到实操落地的全流程:通过Docker部署Rancher服务,将已有K8s集群导入管理,部署监控系统,并基于可视化仪表盘创建Nginx服务。整个过程无需复杂的K8s命令,充分体现了Rancher降低K8s使用门槛的核心价值。
对于企业级场景,Rancher还支持多集群权限管控、应用市场、备份恢复等高级功能。后续可进一步探索Rancher在生产环境的最佳实践,如集群安全加固、监控告警配置、多环境隔离等,让K8s管理更高效、更稳定。