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端

[root@node02 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客户端

[root@node02 datanode]#chmod +x mc

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

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

[root@node02 datanode]#  ./mc ls myminio #查看myminio中的文件

[root@node02]# ./mc mb myminio/minio-helm-repo   #创建bucket

[root@node02]# ./mc policy download myminio/minio-helm-repo  #设置权限

4.helm仓库创建链接

[root@node02]# helm package hadoop    #chart打包

[root@node02]# helm repo add ltrepo http://192.168.101.93:9000/minio-helm-repo   #设置repo仓库

[root@node02]#helm repo update    #更新repo仓库

 

5.上传文件

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

创建index.html

[root@node02]#mkdir hadoopdir

[root@node02]#cp /root/hadoop-1.0.7.tgz  .

[root@node02]#cd ../

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

[root@node02]#helm repo index hadoopdir/ --url http://192.168.101.93:9000/minio-helm-repo

[root@node02]#cd hadoopdir/

[root@node02]#  cd../

上传index与压缩包

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

[root@node02]#./mc cp hadoop-1.0.7.tgz myminio/minio-helm-repo

6.验证并使用

[root@node02]#helm search hadoop    #查询hadoop

[root@node02]#helm repo update

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

[root@node02]#kubectl get pod --all-namespaces

7.注意:

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

2.区别:

[root@node02]# ./mc ls myminio/hadoop

[root@node02]#  ./mc ls hadoop

参考:

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

 


搭建私有 Helm 仓库通常是为了管理和分发组织内部自定义的应用依赖。HelmKubernetes 的包管理工具,用于安装、升级和卸载容器化的应用程序(Charts)。以下是创建私有 Helm 仓库的基本步骤: 1. **准备环境**: - 确保你有一个可用的 Kubernetes 集群和集群内的访问权限。 - 安装 Helm:`curl https://get.helm.sh/helm-v3.5.0-linux-amd64.tar.gz | tar xzv --strip-components=1 -C /usr/local/bin` 2. **创建证书**: - 为了保护通信安全,你需要生成一个 TLS 证书。可以使用 `openssl` 工具,比如: ``` openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 -subj "/CN=my-helm-repo" ``` 3. **初始化仓库**: - 使用 `helm init --service-account` 创建一个新的 ServiceAccount,并授予足够的权限。 - 创建一个名为 `.helmrepo` 的目录作为仓库: ``` mkdir .helmrepo ``` 4. **配置仓库**: - 将证书文件添加到 `.helmrepo` 中: ``` cat cert.pem > .helmrepo/cert.pem cat key.pem > .helmrepo/key.pem ``` - 初始化仓库配置: ``` helm repo create --url https://my-private-repo.example.com --ca-cert .helmrepo/cert.pem --signer .helmrepo/key.pem . ``` 5. **上传图表**: - 将你的自定义 Charts 放入 `.helmrepo/charts` 目录下。 - 使用 `helm repo add` 添加本地仓库到 Helm 的索引: ``` helm repo index --url https://my-private-repo.example.com --merge .helmrepo/index.yaml ``` 6. **测试访问**: - 检查是否可以从新仓库成功拉取图表: ``` helm search repo my-custom-chart ``` 7. **维护**: - 定期更新仓库索引并重新发布。 - 如果需要删除图表,从 `.helmrepo/charts` 删除,然后重新构建索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值