k8s(四) Rancher 管理集群

文章目录

  • [一、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 家企业日常使用。

官网地址:https://docs.rancher.cn/

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 平台

  1. 等待容器启动完成后,在浏览器访问 http://192.168.10.13(未使用授信证书,报警提示忽略即可)
  2. 若登录后为英文页面,点击右下角语言选项切换为中文

2.4 Rancher 管理已存在的 k8s 集群

  1. 平台操作:选择【添加集群】→ 点击【导入】→ 【集群名称】设为 k8s-cluster → 点击【创建】

  2. 复制页面第三条"绕过证书检查导入 k8s 集群"的命令

  3. 在 k8s 控制节点 master01 执行复制的命令(首次执行报错可再次执行):
    curl --insecure -sfL https://192.168.10.13/v3/import/ltlhl7vggnwz8knbjncgbxqlrf6krpbfbxtzh4qlpnqxrq5559k6gf_c-jf5bx.yaml | kubectl apply -f -

  4. 验证结果:

    • 执行 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 部署监控系统

  1. 点击【启用监控以查看实时监控】
  2. 【监控组件版本】选择 0.2.1,其他保持默认
  3. 点击【启用监控】,等待约 10 分钟完成启动

2.6 使用 Rancher 仪表盘管理 k8s 集群(以创建 nginx 服务为例)

2.6.1 创建名称空间(Namespace)

  1. 点击左侧菜单【Namespaces】→ 右侧【Create】
  2. 【Name】输入 dev,【Description】可选填自定义内容
  3. 点击右下角【Create】

2.6.2 创建 Deployment 资源

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

2.6.3 创建 Service

  1. 点击左侧菜单【Services】→ 右侧【Create】→ 选择【Node Port】
  1. 基础配置:【Namespace】选择 dev,【Name】输入 nginx-dev

  2. 端口配置:【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180

  3. 选择器配置:【Selectors】→ 【Key】输入 app,【Value】输入 nginx

  4. 点击右下角【Create】

  5. 验证:点击【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 节点执行)

  1. 查看新增命名空间:
bash 复制代码
kubectl get ns
  1. 查看 cattle-system 命名空间 Pod 状态:
bash 复制代码
kubectl get pods -n cattle-system -o wide
  1. 查看 fleet-system 命名空间 Pod 状态:
bash 复制代码
kubectl get pods -n fleet-system -o wide
  1. 查看集群组件状态:
bash 复制代码
kubectl get cs
  1. 查看节点信息:
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(本地终端执行)

  1. 从 Rancher UI 复制集群 Kubeconfig 内容
  2. 配置本地文件:
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
相关推荐
忍冬行者17 小时前
k8s的etcd的一键备份和故障恢复
docker·云原生·容器·kubernetes·云计算
QWsin17 小时前
【k8s】为什么statefulSet初始化pod需要service name
云原生·容器·kubernetes
lin张17 小时前
k8s(三)pod详解(精简版)
云原生·容器·kubernetes
youxiao_9018 小时前
kubernetes 插件、操作管理(二)
云原生·容器·kubernetes
huaweichenai1 天前
docker部署kkFileView实现文件预览功能
运维·docker·容器
叫致寒吧1 天前
k8s部署
云原生·容器·kubernetes
叫致寒吧1 天前
k8s操作(三)
网络·容器·kubernetes
oMcLin1 天前
如何在 Red Hat Linux 8 上实现 Kubernetes 自定义资源管理器(CRD)扩展,支持微服务架构
linux·架构·kubernetes
Knight_AL1 天前
MinIO 入门实战:Docker 安装 + Spring Boot 文件上传(公有 / 私有)
spring boot·docker·容器