K8S(六)—— 企业级,Rancher安装配置与核心功能实操

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、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默认欢迎页,说明服务创建成功。

总结

相关推荐
lichenyang4534 小时前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4534 小时前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4534 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
运维开发故事3 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
探索云原生5 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
Java之美6 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程