Rancher 应用商店离线环境使用

前言


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

1、环境准备


1.1 安装 helm

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

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

shell 复制代码
# 解压缩 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 中搜索该镜像,下载后拷贝至离线环境,启动命令如下:

shell 复制代码
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 有如下内容:

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 文件,以下仅列出需要修改的配置:

    编辑全局层面配置信息:

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

    编辑镜像层面配置信息:

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

    服务层面配置信息:

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

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

yaml 复制代码
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 重新打包
shell 复制代码
# 返回到 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

  • 添加私有仓库

    shell 复制代码
    helm repo add hntl-helm-chart http://192.168.1.100:8080
  • 上传 tgz 包至仓库

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

    shell 复制代码
    curl -X DELETE http://192.168.1.100:8080/api/charts/mysql/10.1.1
  • 更新仓库

    shell 复制代码
    helm repo update
  • 搜索仓库

    shell 复制代码
    helm search repo

3、Rancher 应用商店


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

  2. 进入应用市场

  3. 添加私有仓库

    填写仓库地址

  4. 更新仓库

3.2 创建 Chart 应用

在 charts 列表中可以看到我们私有仓库中的应用信息

点击即可进入配置页面,"配置项" 即为 questions.yaml 中的 group

配置完成后点击"安装"即可

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

相关推荐
Hai99021814 天前
rancher 图形化界面
rancher
ly143567861921 天前
95、k8s之rancher可视化
容器·kubernetes·rancher
lgbisha25 天前
828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群
docker·华为云·rancher
litGrey1 个月前
Rancher 与 Kubernetes(K8s)的关系
容器·kubernetes·rancher
ghostwritten1 个月前
rancher upgrade 【rancher 升级】
rancher
ghostwritten1 个月前
Helm Deploy Online Rancher v2.9.1
rancher
心软且酷丶1 个月前
如何完整删除rancher中已接入的rancher集群并重新导入
容器·kubernetes·rancher
ghostwritten1 个月前
uninstall rancher【卸载 rancher】
rancher
神奇的海马体1 个月前
部署Rancher2.9管理K8S1.26集群
云原生·容器·kubernetes·rancher
shenghuiping20011 个月前
windows11 安装 Rancher Desktop
k8s·rancher·k3s