helm系列3--helm集成minio搭建私有仓库

minio介绍

我们一般是从本地的目录结构中的chart去进行部署,如果要集中管理chart,就需要涉及到repository的问题,因为helmrepository都是指到外面的地址,接下来我们可以通过minio建立一个企业私有的存放仓库。

Minio提供对象存储服务。它的应用场景被设定在了非结构化的数据的存储之上了。众所周知,非结构化对象诸如图像/音频/视频/log文件/系统备份/镜像文件…等等保存起来管理总是不那么方便,size变化很大,类型很多,再有云端的结合会使得情况更加复杂,minio就是解决此种场景的一个解决方案。Minio号称其能很好的适应非结构化的数据,支持AWS的S3,非结构化的文件从数KB到5TB都能很好的支持。

Minio的使用比较简单,只有两个文件,服务端minio,客户访问端mc,比较简单。

在项目中,我们可以直接找一台虚拟机作为Minio Server,提供服务,当然minio也支持作为Pod部署。

minio安装(没试过)

在https://dl.minio.io/client/mc/release/linux-amd64/ 下载客户端程序mc和服务端程序minio

启动minio服务

minio server ./repository

1.  启动minio的server端

[[email protected] datanode]# docker run -p 9000:9000 minio/minio server /export

看到这些日志即启动成功;

访问web页面网址:http://ip:9000

AccessKey与Secret Key可以查看server端的启动日志

其实只有两个功能,一是create bucket,二是upload file,点击右下角的加号,点击对应相应的功能即可;

2. 下载客户端脚本

下载网址:https://dl.minio.io/client/mc/release/linux-amd64/

选取mc下载

3.配置minio客户端

[[email protected] datanode]#chmod +x mc

针对使用的客户端加入security与token信息,方便客户端使用

[[email protected] datanode]#./mc config host add myminio http://172.0.0.1:9000 3A86OX42QAXKVTZO1DKEXBM7Fsvpf8aMLp1q+FwXifTdpZF/xxwCr47YxV2C(启动server时的日志中可看到该配置案例)

[[email protected] datanode]#  ./mc ls myminio #查看myminio中的文件

[[email protected]]# ./mc mb myminio/minio-helm-repo   #创建bucket

[[email protected]]# ./mc policy download myminio/minio-helm-repo  #设置权限

4.helm仓库创建链接

[[email protected]]# helm package hadoop    #chart打包

[[email protected]]# helm repo add ltrepo http://192.168.101.93:9000/minio-helm-repo   #设置repo仓库

[[email protected]]#helm repo update    #更新repo仓库

 

5.上传文件

理论:其实所有仓库的本质都是上传chart压缩包和它的描述信息index.yaml

创建index.html

[[email protected]]#mkdir hadoopdir

[[email protected]]#cp /root/hadoop-1.0.7.tgz  .

[[email protected]]#cd ../

Helm 会扫描myrepo目录中的所有tgz包并生成index.yaml。--url指定的是新仓库的访问路径。新生成的index.yaml记录了当前仓库中所有 chart 的信息

[[email protected]]#helm repo index hadoopdir/ --url http://192.168.101.93:9000/minio-helm-repo

[[email protected]]#cd hadoopdir/

[[email protected]]#  cd../

上传index与压缩包

[[email protected]]# ./mc cp /root/hadoopdir/index.yaml myminio/minio-helm-repo

[[email protected]]#./mc cp hadoop-1.0.7.tgz myminio/minio-helm-repo

6.验证并使用

[[email protected]]#helm search hadoop    #查询hadoop

[[email protected]]#helm repo update

[[email protected]]#helm install --name hadoop-1 $(./calc_resources.sh 50) --set hdfs.dataNode.replicas=1  ltrepo/hadoop

[[email protected]]#kubectl get pod --all-namespaces

7.注意:

1.每次提交完包,注意update一下repo

2.区别:

[[email protected]]# ./mc ls myminio/hadoop

[[email protected]]#  ./mc ls hadoop

参考:

创建index.html:https://steemit.com/kubernetes/@cloudman6/chart-kubernetes-55