Rancher 应用商店离线环境使用

前言


Rancher (v2.5+ ) 应用商店可以方便的安装 Helm3 构建的应用,并且支持私有 helm 应用仓库,方便了内网离线环境下的使用。本文以内网离线环境为前提、以 MySQL 5.7.43 版本为应用举例,从零开始手把手教你如何制作并应用。

1、环境准备


1.1 安装 helm

后续 helm 打包及仓库推送均在一台 centos 7 服务器中进行,所以需要在该服务器上安装 helm 程序。

具体下载及安装教程参考 https://helm.sh/docs/intro/install/

# 解压缩 helm 二进制包
tar -zxvf helm-v3.14.0-linux-amd64.tar.gz
# 移动位置
mv linux-amd64/helm  /usr/local/bin/helm
# 验证安装
helm help
1.2 私有 helm 应用仓库搭建

在 Rancher 上或者任意 docker 环境中搭建 helm 应用仓库,后续才可以在 Rancher 中添加自定义应用。

应用商店使用 chartmuseum/chartmuseum:latest, 可以在 Docker Hub 中搜索该镜像,下载后拷贝至离线环境,启动命令如下:

docker run -d -p 8080:8080 --name chartmuseum \
-v /home/charts:/charts \
-e STORAGE_LOCAL_ROOTDIR=/charts \
-e STORAGE=local
chartmuseum/chartmuseum:latest

注意提前建好持久化目录 /home/charts

1.3 下载 MySQL helm charts

以 bitnami 制作的 mysql helm chart 模板为基础,免去自己从头编写模板文件的步骤,后续深入学习后考虑完全自主编写。

下载地址:mysql 10.1.1 · bitnami/bitnami (artifacthub.io)

在这里插入图片描述

点击下载 tgz

在这里插入图片描述

1.4 拉取应用镜像

打开下载的 tgz 压缩包,用文本工具查看 Chart.yaml 有如下内容:

annotations:
  category: Database
  images: |
    - name: mysql
      image: docker.io/bitnami/mysql:8.0.36-debian-12-r10
    - name: mysqld-exporter
      image: docker.io/bitnami/mysqld-exporter:0.15.1-debian-12-r10
    - name: os-shell
      image: docker.io/bitnami/os-shell:12-debian-12-r18

在这里我们需要把这三个镜像都下载后导出为 tar 包,然后导入到离线环境中才可以使用。由于我的需求是 MySQL 5.7.43 版本,docker.io/bitnami/mysql:5.7.43 是我下载导出的镜像,这里版本根据实际情况修改即可。

至此,我们需要完成以下事情:

  1. 在离线环境启动 chartmuseum 服务;

  2. 下载 MySQL chart 压缩包 mysql-10.1.1.tgz 并放至离线环境服务器中;

  3. 导出压缩包内 Chart.yaml 文件中所列出的所有镜像包并导入离线环境服务器或私有镜像仓库中;

2、制作 Helm Chart


2.1 编辑 values.yaml
  1. 解压缩 mysql-10.1.1.tgz 包,编辑 values.yaml 文件,以下仅列出需要修改的配置:

    编辑全局层面配置信息:

    # 全局层面配置
    global:
      # 配置私有镜像仓库 Harbor 服务地址
      imageRegistry: "192.168.1.100:18888"
      # 配置私有镜像仓库秘钥(公开仓库可不配置)
      imagePullSecrets: ["harbor"]
      # 配置默认 pvc 存储类为 Longhorn,注意需要小写
      storageClass: "longhorn"
    
    

    编辑镜像层面配置信息:

    image:
      registry: docker.io
      repository: bitnami/mysql
      # 这里 tag 需要修改为 5.7.43,和导入的镜像对应
      tag: 5.7.43
    

    服务层面配置信息:

      service:
        # 服务类型:NodePort
        type: NodePort
        ports:
          mysql: 3306
    
2.2 新建 questions.yaml

questions.yaml 是针对 Rancher 应用商店可视化配置模板参数的配置文件,通过表单问答式配置相关信息,内容如下:

questions:
- variable: auth.rootPassword
  label: "MySQL Root Password"
  description: "MySQL 初始 Root 密码配置"
  type: password
  required: true
  group: "配置信息"

- variable: auth.database
  label: "MySQL Database Name"
  description: "MySQL 初始创建数据库"
  type: string
  required: true
  default: "my_database"
  group: "配置信息"

解释:可以配置多个参数,此处以 root 密码和初始数据库为例,其中 variable 对应模板配置 values.yaml 中的 key, 其他属性看字面就能理解。

2.3 重新打包
# 返回到 mysql 目录外部执行
$ helm package mysql
Successfully packaged chart and saved it to: /root/helm/mysql-10.1.1.tgz
2.4 上传至私有 helm chart 仓库

之前搭建的 chartmuseum 服务 url 为 http://192.168.1.100:8080

  • 添加私有仓库

    helm repo add hntl-helm-chart http://192.168.1.100:8080
    
  • 上传 tgz 包至仓库

    curl --data-binary "@mysql-10.1.1.tgz" http://192.168.1.100:8080/api/charts  
    
  • 从仓库中删除

    curl -X DELETE http://192.168.1.100:8080/api/charts/mysql/10.1.1
    
  • 更新仓库

    helm repo update
    
  • 搜索仓库

    helm search repo
    

3、Rancher 应用商店


3.1 添加 Chart 仓库
  1. 进入 Rancher 仪表板

    在这里插入图片描述

  2. 进入应用市场

    在这里插入图片描述

  3. 添加私有仓库

    在这里插入图片描述

    填写仓库地址

    在这里插入图片描述

  4. 更新仓库

    在这里插入图片描述

3.2 创建 Chart 应用

在 charts 列表中可以看到我们私有仓库中的应用信息
在这里插入图片描述

点击即可进入配置页面,“配置项” 即为 questions.yaml 中的 group
在这里插入图片描述

配置完成后点击“安装”即可

在这里插入图片描述

稍等片刻,在对应的命名空间中就可以看到服务已经正常部署

在这里插入图片描述

<think>好的,我现在需要帮助用户了解如何在Rancher中进行服务器的离线部署。用户已经提供了一些相关的引用资料,我需要仔细分析这些资料并整理出一个清晰的步骤指南。 首先,我需要确认离线部署Rancher的基本流程。根据引用[3],离线部署Rancher v2.8.2需要使用Helm和Rke2,并且涉及到自签名SSL证书。同时,引用[5]提到Rancher是一个企业级容器管理平台,可以简化Kubernetes集群的部署,这可能是用户需要离线部署Rancher的原因之一,比如在专网环境使用。 接下来,用户提供的引用中,引用[1]和[3]都提到了使用Helm安装Rancher服务器,特别是在引用[3]中提到了创建cattle-system命名空间,并且需要配置自签名证书。而引用[2]则提到在专网环境下部署Docker服务的方法,这可能与离线环境中的依赖安装有关。 我需要将步骤分解为准备阶段、部署步骤和配置部分。首先,离线部署需要预先下载所有必要的镜像和文件,所以准备离线镜像仓库是关键。根据引用[3],使用Helm Chart并导入镜像到私有仓库是必要的步骤。然后,安装Rancher时,需要指定私有仓库的地址,并且设置hostname和证书参数,如引用[1]中的示例命令所示。 另外,证书配置部分,用户可能需要使用自签名证书,这在引用[3]和[4]中都有涉及,特别是引用[4]提到了设置Amazon ELB Network Load Balancer的示例,但用户可能需要的是自签名SSL证书的配置方法,所以需要强调设置ingress.tls.source为secret,并提前创建TLS secret。 在整理步骤时,需要注意命名空间的创建(cattle-system),以及如何通过kubectl创建secret,这部分在引用[3]中有提到。此外,引用[5]中提到的Docker安装和主机规划也是准备工作的一部分,可能需要用户先确保所有节点已安装Docker并配置好私有仓库。 最后,需要验证部署是否成功,并给出相关问题的建议,比如如何同步镜像或处理证书问题,这有助于用户进一步操作时参考。</think>### Rancher 服务器离线部署指南 #### 一、部署前准备 1. **基础环境要求** - 所有节点需安装 Docker(版本需满足 Rancher 兼容性要求)[^5] - 准备私有镜像仓库(如 Harbor、Nexus)存放离线镜像[^2] - 确保主机间网络互通,时间同步 2. **离线资源下载** - 从 Rancher 官网下载 Helm Chart 包 (`rancher-<version>.tgz`) - 使用 `rancher-save-images.sh` 脚本导出所需镜像并推送到私有仓库[^3] - 下载配套的 Kubernetes 工具(kubectl、helm、rke2) #### 二、核心部署步骤 1. **创建命名空间** ```bash kubectl create namespace cattle-system # 关键系统命名空间 ``` 2. **配置 Helm Chart** ```bash helm install rancher ./rancher-<version>.tgz \ --namespace cattle-system \ --set hostname=rancher.yourdomain.com \ # 必须指定域名[^1] --set ingress.tls.source=secret \ # 使用自签名证书[^3] --set privateCA=true \ --set image.repository=私有仓库地址/rancher/rancher ``` 3. **证书配置(自签名示例)** ```bash # 生成证书 openssl req -x509 -newkey rsa:4096 -nodes -days 365 \ -keyout tls.key -out tls.crt -subj "/CN=rancher.yourdomain.com" # 创建 Kubernetes Secret kubectl -n cattle-system create secret tls tls-rancher-ingress \ --cert=tls.crt --key=tls.key ``` #### 三、验证与访问 1. 检查 Pod 状态: ```bash kubectl -n cattle-system get pods -l app=rancher ``` 2. 通过 `https://rancher.yourdomain.com` 访问控制台 3. 首次登录需设置管理员密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值