helm3 私有仓库

1,268 阅读3分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

仓库列表

上一章加了几个比较好用的仓库,但是我们需要知道现在 增加的有哪些仓库,需要查看一下

helm repo list

第一列为 仓库名称,第二列为 仓库地址,仓库名称,是创建时指定

incubator      	https://kubernetes-charts-incubator.storage.googleapis.com                 
apphub         	https://apphub.aliyuncs.com                               
azure          	http://mirror.azure.cn/kubernetes/charts/                 
bitnami        	https://charts.bitnami.com/bitnami                        

仓库管理

上一小节可以看到 有一个弃用的仓库,既然我们能增加,也就能删除,这里将google的仓库删除掉

用法: 命令,类型,动作,名称

helm repo remove incubator
helm repo list

可以看到helm 后面有多个参数,想要知道用法,使用helm repo -h 查看帮助既可

目前helm repo 有5个可用命令:

  • add 增加仓库
  • remove 删除仓库
  • update 更新仓库资源
  • list 查看仓库列表
  • index 生成仓库索引

私服仓库

既然有官方仓库,还有第三方仓库(apphub)等,那么也支持自建私有仓库

本例以minio 为存储搭建一个私有仓库

部署minio

下载minio 服务端找一台存储机器部署,客户端和helm一起部署

#服务端
wget https://dl.min.io/server/minio/release/linux-amd64/minio
#客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc

启动minio服务端

启动并指定 存储路径

chmod +x minio
./minio server /data/miniorepo/

启动成功后,可以看到 api访问地址和界面访问地址和 账密(RootUser RootPass) ,以及客户端连接方式 顺便一提,界面(Console)监听的端口是 动态的,每次启动都会变化,如果想固定,请使用 --console-address ":PORT"参数

API: http://ip:9000  http://172.17.0.1:9000  http://172.18.0.1:9000  http://127.0.0.1:9000             
RootUser: minioadmin 
RootPass: minioadmin 

Console: http://ip:39679 http://172.17.0.1:39679 http://172.18.0.1:39679 http://127.0.0.1:39679       
RootUser: minioadmin 
RootPass: minioadmin 

Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
   $ mc alias set myminio http://ip:9000 minioadmin minioadmin

设置客户端

直接根据上一节 的输出执行既可

mv /usr/local/bin/mc /usr/local/bin/mc
chmod +x /usr/local/bin/mc
mc alias set myminio http://ip:9000 minioadmin minioadmin

私有仓库

因为minio实现了s3的协议,里面的概念也差不多,因此 存储名称和使用方式都很相似

创建一个bucket

mc mb myminio/minio-helm-repo 

设置bucket权限

mc policy set download myminio/minio-helm-repo
mc policy set upload myminio/minio-helm-repo
mc policy set public myminio/minio-helm-repo

制作索引

现在bucket和权限都弄好了,但是helm私有仓库还需要一个索引,来表明身份,不然就是一个单纯的对象存储

mkdir -pv helm
helm repo index /root/helm
mc cp /root/helm/index.yaml myminio/minio-helm-repo

查看仓库中的文件

mc ls myminio/minio-helm-repo

创建私有仓库

helm repo add myrepo http://ip:9000/minio-helm-repo
#如果有报403 请加一下权限
mc policy set download myminio/minio-helm-repo
mc policy set upload myminio/minio-helm-repo
mc policy set public myminio/minio-helm-repo

更新一下仓库,然后再查看

helm  repo  update
helm  repo  list

可以看到 私有仓库已经在列表里面了,后面想要制作Chart上传或者自动化流程 都很方便了