[TOC]
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客户端,然后执行以下的命令:
```
$ helm serve --address=0.0.0.0:8050 --repo-path=/var/www/html/charts --url http://x.x.x.x:8050/charts &
```
然后把chart的tgz包拷贝到`/var/www/html/charts`目录下即可
### **使用httpd**
首先安装好httpd,`rootdir`设置为`/var/www/html`,监听端口为8050。
接下来我们也需要安装Helm客户端。然后,我们把chart的tgz包拷贝到`/var/www/html/charts/`目录下,然后执行命令:
```
$ helm repo index /var/www/html/charts
```
此时,会在`/var/www/html/charts`目录下生成一个`index.yaml`文件,然后就OK了。
如果有新的chart包加进来,重新执行一次上述的命令即可。
- 常用命令
- 安装
- 安装Kubeadm
- 安装单Master集群
- 安装高可用集群(手动分发证书)
- 安装高可用集群(自动分发证书)
- 启动参数解析
- certificate-key
- ETCD相关参数
- Kubernetes端口汇总
- 安装IPv4-IPv6双栈集群
- 下载二进制文件
- 使用Kata容器
- 快速安装shell脚本
- 存储
- 实践
- Ceph-RBD实践
- CephFS实践
- 对象存储
- 阿里云CSI
- CSI
- 安全
- 认证与授权
- 认证
- 认证-实践
- 授权
- ServiceAccount
- NodeAuthorizor
- TLS bootstrapping
- Kubelet的认证
- 准入控制
- 准入控制示例
- Pod安全上下文
- Selinux-Seccomp-Capabilities
- 给容器配置安全上下文
- PodSecurityPolicy
- K8S-1.8手动开启认证与授权
- Helm
- Helm命令
- Chart
- 快速入门
- 内置对象
- 模板函数与管道
- 模板函数列表
- 流程控制
- Chart依赖
- Repository
- 开源的Chart包
- CRD
- CRD入门
- 工作负载
- Pod
- Pod的重启策略
- Container
- 探针
- 工作负载的状态
- 有状态服务
- 网络插件
- Multus
- Calico+Flannel
- 容器网络限速
- 自研网络插件
- 设计文档
- Cilium
- 安装Cilium
- Calico
- Calico-FAQ
- IPAM
- Whereabouts
- 控制平面与Pod网络分开
- 重新编译
- 编译kubeadm
- 编译kubeadm-1.23
- 资源预留
- 资源预留简介
- imagefs与nodefs
- 资源预留 vs 驱逐 vs OOM
- 负载均衡
- 灰度与蓝绿
- Ingress的TLS
- 多个NginxIngressController实例
- Service的会话亲和
- CNI实践
- CNI规范
- 使用cnitool模拟调用
- CNI快速入门
- 性能测试
- 性能测试简介
- 制作kubemark镜像
- 使用clusterloader2进行性能测试
- 编译clusterloader2二进制文件
- 搭建性能测试环境
- 运行density测试
- 运行load测试
- 参数调优
- Measurement
- TestMetrics
- EtcdMetrics
- SLOMeasurement
- PrometheusMeasurement
- APIResponsivenessPrometheus
- PodStartupLatency
- FAQ
- 调度
- 亲和性与反亲和性
- GPU
- HPA
- 命名规范
- 可信云认证
- 磁盘限速
- Virtual-kubelet
- VK思路整理
- Kubebuilder
- FAQ
- 阿里云日志服务SLS