搭建私有Charts仓库

Posted on 2020-10-12,3 min read

在 centos 上用 nginx 镜像创建一个容器,名字为 c1

[root@vms12 ~]# docker run -dit --name=c1 -p 8080:80 -v /data:/usr/share/nginx/html/charts  docker.io/nginx 
ca08a2ce9b8e910ed71f458fa3c7dd53843bf50e5bb92c089fdacf7cd65a1657 

在 master 上自定义一个 chart:

[root@vms10 ~]# mkdir mychar 

[root@vms10 ~]# 

[root@vms10 ~]# cd mychar/ 

[root@vms10 mychar]# helm create chart1 
Creating chart1 
[root@vms10 mychar]# cp -r ../mysql . 

[root@vms10 mychar]# 

[root@vms10 mychar]# ls 
chart1 mysql 

对这两个 chart 进行打包:

[root@vms10 mychar]# **helm package chart1** 
Successfully packaged chart and saved it to: /root/mychar/chart1-0.1.0.tgz 

[root@vms10 mychar]# helm package mysql/

Successfully packaged chart and saved it to: /root/mychar/mysql-1.6.4.tgz 
[root@vms10 mychar]# ls 
chart1 chart1-0.1.0.tgz mysql mysql-1.6.4.tgz 

给当前目录下的两个包建立索引文件,并指定私有仓库地址:

[root@vms10 mychar]# helm repo **index** . --url **http://192.168.26.12:8080/charts** 
[root@vms10 mychar]# ls 
chart1 chart1-0.1.0.tgz index.yaml mysql mysql-1.6.4.tgz 

把当前目录下 index.yaml 和后缀为 tgz 的包全部拷贝 192.168.26.12 的/data 目录里(请理解

前面 c1 容器数据卷的设置):

[root@vms10 mychar]# scp index.yaml *.tgz 192.168.26.12:/data 

切换到 vms12 上:

[root@vms12 ~]# **ls /data/** 
index.yaml mychartxx-0.1.0.tgz mysql-1.6.2.tgz 
[root@vms12 ~]# docker exec -it c1 

> **ls /usr/share/nginx/html/charts** 
index.yaml mychartxx-0.1.0.tgz mysql-1.6.2.tgz 

切换到 master 上,添加 http://192.168.26.12:8080/charts 作为仓库:

[root@vms10 mychar]# **helm repo add myrepo http://192.168.26.12:8080/charts** 
"myrepo" has been added to your repositories 
[root@vms10 mychar]# helm repo list 

搜索 mysql 的 chart:

[root@vms10 mychar]# helm search repo mysql

除了在阿里云里可以找到 mysql 的仓库之外,在我们自定义的仓库里也能找到 mysql。

查询 chart1:

[root@vms10 mychar]# helm search repo chart1

NAME 

CHART VERSION APP VERSION DESCRIPTION 

myrepo/chart1 

0.1.0 

1.16.0 

A Helm chart for Kubernetes 

私有仓库配置完毕。

删除本地私有仓库地址:

[root@vms10 mychar]# **helm repo remove myrepo** 
"myrepo" has been removed from your repositories 

下一篇: Kubernetes Config Maps→