目錄
一、前言
上節談 helm 操作公共倉庫。這節講 helm 自建私有倉庫。如果要搭 helm 私有倉庫,需要一個存儲服務器,我們這里選擇 minio。
二、minio安裝
2.1 minio下載
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
2.2 minio 安裝
$ chmod +x minio && mv minio /usr/local/bin
2.3 minio驗證
$ minio --version
minio version RELEASE.2021-06-09T18-51-39Z
2.4 創建 minio 工作目錄和日志文件
$ mkdir -p /data/minio/oss
# 創建 minio 服務端工作目錄
$ mkdir -p /data/minio/log && touch /data/minio/log/minio.log
# 創建 minio 服務端日志文件
2.5 minio 啟動
$ nohup minio server --address 192.168.99.1:9001 /data/minio/oss > /data/minio/log/minio.log 2>&1 &
# 啟動 minio 服務器完畢后會將啟動信息寫入日志文件 /data/minio/log/minio.log ,配置信息寫入隱藏的工作目錄 /data/minio/oss/.minio.sys。
$ ll -a /data/minio/oss/
總用量 0
drwxr-xr-x 4 root root 41 6月 12 13:26 .
drwxr-xr-x 4 root root 28 6月 12 13:21 ..
drwxr-xr-x 6 root root 82 6月 12 13:22 .minio.sys
2.6 minio 登錄
打開瀏覽器,輸入 http://192.168.99.1:9001/
從 /data/minio/oss/.minio.sys/config/config.json
找到登錄秘鑰。如下圖所示:
$ cat /data/minio/oss/.minio.sys/config/config.json | python -m json.tool
自此,minio 安裝成功。
三、自建倉庫
3.1 創建Helm倉庫
瀏覽器登錄 minio,點擊右下角的“新增”按鈕,選擇 Create bucket
:
填寫 Bucket Name
回車,創建 helm 倉庫:
3.2 設置 helm 倉庫權限
選擇創建好的 helm 倉庫,點擊“更多”圖標:如下圖所示:
選擇 Edit policy
菜單:
在彈出框中選擇 Read and write
,然后點擊“新增(Add)”按鈕:
點擊“關閉”按鈕結束配置:
自此,完成自建 helm 私有倉庫。
四、添加私有倉庫
上面完成了私有倉庫的創建。下一步就可以將 helm 跟私有倉庫進行關聯了。執行如下命令:
# 注意不要忘記私有倉庫名 “helm-repo”
$ helm repo add minio http://192.168.99.1:9001/helm-repo
Error: looks like "http://192.168.99.1:9001/helm-repo" is not a valid chart repository or cannot be reached: failed to fetch http://192.168.99.1:9001/helm-repo/index.yaml : 404 Not Found
# 執行報錯,helm 3 認為創建的私有倉庫無效,因為缺少 index.yaml 文件。執行命令生成 index.yaml 文件。
$ mkdir -p /root/helm/repo
$ helm repo index /root/helm/repo
# 創建 index.yaml 文件
$ ll /root/helm/repo/
總用量 4
-rw-r--r-- 1 root root 76 6月 12 14:50 index.yaml
4.1 上傳索引文件
登錄 minio 服務器(http://192.168.99.1:9001)。選擇 “上傳文件(upload file)” 按鈕,上傳 index.yaml 文件。
4.2 關聯私有倉庫
$ helm repo add minio http://192.168.99.1:9001/helm-repo
# 注意不要忘寫私有倉庫名 helm-repo
4.3 驗證私有倉庫
$ helm repo list
NAME URL
stable http://mirror.azure.cn/kubernetes/charts
aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
jetstack https://charts.jetstack.io
minio http://192.168.99.1:9001/helm-repo
自此,輕松完爆 helm 私有倉庫。可以停下來尖叫了。