Helm 3 使用 harbor 作為倉庫存儲(chǔ) charts

簡介

本文講述的是調(diào)教 Helm 3 和 harbor 1.6+ 的經(jīng)驗(yàn),從 helm2 更新到 helm 3 并且將 charts 推送到 harbor 中進(jìn)行存儲(chǔ),移除了原先的 helm serve,在講述怎么操作之前先來看一下Helm 3 和 Harbor 1.6+ 的新特性。

Helm 3 新特性

  • 移除了 Tiller
  • 不同的 namespace 可以使用相同的 Release Name
  • 簡化模板對象 .Capabilities
  • 使用JSONSchema驗(yàn)證 charts 的 Values
  • requirements.yaml合并到Chart.yaml
  • helm install 時(shí)需要指定 Release Name,開啟自動(dòng)生成需要 --generate-name 參數(shù)
  • 支持 push 到遠(yuǎn)端 registry (如:harbor)
  • 移除 helm serve
  • 命令行變化(將原先的命令保留為別名Aliases)
    • helm delete --> helm uninstall
    • helm inspect -> helm show
    • helm fetch -> helm pull
  • go 導(dǎo)入路徑改變 k8s.io/helm --> helm.sh/helm

具體新特性可以參考Helm 3 新特性,或者參考Helm 官方文檔

Harbor v1.6.0 新特性

  • 支持存儲(chǔ) helm charts
  • ...

這里沒什么好說的,想要了解更多關(guān)于Harbor的,可以參考官方Github

調(diào)教開始

在了解了以上新的特性之后,讓我著手來操作吧

環(huán)境
  • kubernetes 1.10+
  • helm 3
  • harbor 1.6+
調(diào)教步驟
  1. 確保kubernetes環(huán)境可用
  2. 下載并初始化 helm 3
  3. 安裝 harbor 1.6+
  4. 添加 harbor 中的 chartrepo 到 helm 3 中
  5. 安裝使用 helm-push 插件
1.確保kubernetes環(huán)境可用

這里就不多說 kubernetes 環(huán)境的具體搭建過程了,搭建步驟隨處可見。

2.下載并初始化 helm 3

首先執(zhí)行一下命令,下載并解壓安裝包

wget https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
tar zxvf helm-v2.14.2-linux-amd64.tar.gz
cd linux-amd64
cp helm /usr/local/bin

解壓之后,你如果使用過helm 2 你會(huì)發(fā)現(xiàn)里面tiller的二進(jìn)制文件不見了,前文的新特性中已經(jīng)說了,helm 3 已經(jīng)移除了 tiller

接下來初始化 helm

helm init
1563862747766.png

默認(rèn)添加官方 repo stable https://kubernetes-charts.storage.googleapis.com

3.安裝 harbor 1.6+

這里我使用的是 harbor 官方提供的 charts repo,好奇心驅(qū)使我打開了這個(gè)網(wǎng)站 https://helm.goharbor.io/

1563863645436.png

這熟悉的界面讓我嚴(yán)重懷疑是使用的 helm serve 啟的 repo(滑稽臉)

添加harbor repo

helm repo add goharbor https://helm.goharbor.io

這個(gè) repo 只有一個(gè)charts harbor ,對應(yīng)的 harbor 版本為1.8.1

在安裝之前我們需要配置一下 kube config context

查看當(dāng)前的context

kubectl config current-context

設(shè)置 context 指定對應(yīng)的 namespace ,不指定使用的是 default

kubectl config set-context <current-context> --namespace test

這里是因?yàn)?,helm 3 開始helm 3 的執(zhí)行權(quán)限和kubectl config 的權(quán)限是一致的,通過kubectl config的方式來控制helm 3 的執(zhí)行權(quán)限。

按時(shí)安裝harbor ,這里為了簡化測試操作,我關(guān)閉了數(shù)據(jù)卷的掛載并使用的是 NodePort 方式進(jìn)行訪問。

helm -n test install harbor goharbor/harbor --set persistence.enabled=false --set expose.type=nodePort --set expose.tls.enabled=false --set externalURL=http://192.168.10.196:30002

參數(shù)說明:

  • persistence.enabled=false 關(guān)閉存儲(chǔ),為了方便操作,真實(shí)使用時(shí)需要掛在存儲(chǔ)
  • expose.type=nodePort 使用 NodePort 訪問
  • expose.tls.enabled=false 關(guān)閉tls
  • externalURL=http://192.168.10.196:30002 設(shè)置登錄 harbor 的外部鏈接

出現(xiàn)以下返回,就證明已經(jīng)開始安裝了

NAME: harbor
LAST DEPLOYED: 2019-07-23 11:00:38.525597536 +0800 CST m=+0.690703892
NAMESPACE: test
STATUS: deployed

NOTES:
Please wait for several minutes for Harbor deployment to complete.
Then you should be able to visit the Harbor portal at https://core.harbor.domain. 
For more details, please visit https://github.com/goharbor/harbor.
4.添加 harbor 中的 chartrepo 到 helm 3 中

harbor 裝好之后,我們訪問 http://192.168.10.196:30002 進(jìn)行登錄 harbor, harbor 的默認(rèn)賬號(hào)密碼是 admin/Harbor12345

image

新建一個(gè)chart repo

image

創(chuàng)建一個(gè) test 用戶

image

添加 repo 到 helm 中

helm repo add test http://192.168.10.76:30002/chartrepo/chart_repo
5.安裝使用 helm-push 插件
helm plugin install https://github.com/chartmuseum/helm-push

這里最好本地配置一下 github 的 dns 地址,不然可能會(huì)出現(xiàn)鏈接超時(shí)的現(xiàn)象

安裝好插件之后,就可以push charts 到 harbor 里面了

helm push grafana-0.0.2.tgz test --username test --password xxx
image

出現(xiàn)以上就說明 push 成功了 ,恭喜?。?!

參考


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.編寫一個(gè)簡單的helloworld 1.編寫helloworld的web app 創(chuàng)建spring項(xiàng)目,修改配...
    k7s閱讀 1,077評論 0 1
  • 參考文檔:Helm 官網(wǎng)Helm Docs What is Helm? Helm helps you manage...
    Mokaffee閱讀 1,001評論 0 1
  • 一、Helm核心概念: Chart:一個(gè)helm的程序包; Repostriy:Charts倉庫,https/ht...
    jianweixs閱讀 2,048評論 0 4
  • Helm 是 Kubernetes 的軟件包管理工具。本文需要讀者對 Docker、Kubernetes 等相關(guān)知...
    guoweikuang閱讀 87,797評論 3 86
  • “幸福的家庭,需要好好對待愛你與你愛的人。因?yàn)橛袗郏烤湓挾家煤谜f?!?有急事,冷靜下來再說。不要在生氣時(shí)做決定...
    鄒建冰閱讀 147評論 0 1

友情鏈接更多精彩內(nèi)容