在 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