Repository
repository就是一个http服务。以阿里的repository为例,它的URL为https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
,那么这个repository的chart索引文件的URL就为https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts/index.yaml
,下载后我们可以用记事本打开它,里面记录了该repository中所有chart的元数据。文件结构如下(只展示了部分内容):
上面的部分内容可以看到,这个repository里有etcd-operator,并且有0.7.0
与0.5.0
两个版本,而且还给出了这两个版本的下载URL,分别为https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts/etcd-operator-0.7.0.tgz
与https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts/etcd-operator-0.5.0.tgz
。
所以,如果我们知道一个repository的URL,可以直接通过wget <URL>/index.yaml
下载其索引文件,并且直接通过wget <URL>/<chart>-<version>.tgz
来下载指定版本的chart。比如google repository的URL为https://kubernetes-charts.storage.googleapis.com
,那么索引文件链接为https://kubernetes-charts.storage.googleapis.com/index.yaml
,chart的链接为https://kubernetes-charts.storage.googleapis.com/<chart>-<version>.tgz
接下来将介绍如何搭建一个私有的repository。一种是使用helm,另一种是使用httpd。
假设我们规划的repository的URL为http://x.x.x.x:8050/charts
,chart放在主机的/var/www/html/charts/
目录下。
使用Helm
首先安装好Helm客户端,然后执行以下的命令:
然后把chart的tgz包拷贝到/var/www/html/charts
目录下即可
使用httpd
首先安装好httpd,rootdir
设置为/var/www/html
,监听端口为8050。
接下来我们也需要安装Helm客户端。然后,我们把chart的tgz包拷贝到/var/www/html/charts/
目录下,然后执行命令:
此时,会在/var/www/html/charts
目录下生成一个index.yaml
文件,然后就OK了。
如果有新的chart包加进来,重新执行一次上述的命令即可。
Last updated
Was this helpful?