k8s helm3 學(xué)習(xí)筆記

Helm 是一個 Kubernetes 應(yīng)用的包管理工具艇挨,用來管理 chart——預(yù)先配置好的安裝包資源缩滨,有點(diǎn)類似于 Ubuntu 的 APT 和 CentOS 中的 YUM泉瞻。2019 年 11 月 13 日袖牙,Helm 3 發(fā)布,2020 年 4 月 30 日司忱,從 CNCF 中畢業(yè)坦仍。本文基于 Helm 3叨襟。

移除 Tiller

helm 在 helm v2 時(shí)分為客戶端 (helm client,即命令行工具) 與服務(wù)端 (helm server) 兩部分梳玫,在服務(wù)端又叫 Tiller提澎,安裝 Tiller 時(shí)會在集群中部署一個 Pod念链,用以接替資源部署积糯。

在 Helm 3 中移除了 Tiller, 版本相關(guān)的數(shù)據(jù)直接存儲在了 Kubernetes 中絮宁。移除原因是 Tiller 存在一些安全隱患服协,因?yàn)樗枰汗芾韱T的ClusterRole才能創(chuàng)建偿荷。

基本概念

先了解下helm中的基本概念

helm和yum一樣也有源(repo)跳纳、包的概念:

  • chart:類似于yum的rpm包,里面定義了部署資源以及一些依賴的信息(deployment艾蓝,service等)赢织。和rpm包作用上類似馍盟,我們需要部署那些服務(wù),按照格式定義好就行了八毯。
  • repo:類似于yum源话速,helm也有自己的源尿孔,存放chart。
  • Release:是運(yùn)行在 Kubernetes 集群中的 chart 的實(shí)例雏婶。一個 chart 通沉敉恚可以在同一個集群中安裝多次。每一次安裝都會創(chuàng)建一個新的 release奖地。以 MySQL chart為例参歹,如果你想在你的集群中運(yùn)行兩個數(shù)據(jù)庫,你可以安裝該chart兩次僧界。每一個數(shù)據(jù)庫都會擁有它自己的 releaserelease name捂襟。

安裝

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
Downloading https://get.helm.sh/helm-v3.5.4-linux-amd64.tar.gz
Verifying checksum... Done.
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm

Helm Chart編寫

這是針對自己寫/修改 chart 文件欢峰。

利用helm create命令,創(chuàng)建一個簡單的示例宠漩。helm create的示例chart也并不是一無所有哄孤,它包含了大部分的資源抽象瘦陈,例如kubernetes deployment晨逝,service捉貌,ingress趁窃,serviceaccount等資源醒陆。

$ helm create hello-world
Creating hello-world
$ tree hello-world
hello-world
├── Chart.yaml # 存儲一些元數(shù)據(jù)刨摩,例如chart的信息澡刹,描述等等
├── charts # 該目錄保存其他依賴的 chart(子 chart)
├── templates # chart 配置模板罢浇,用于渲染最終的 Kubernetes YAML 文件
│   ├── NOTES.txt # 用戶運(yùn)行 helm install 時(shí)候的提示信息
│   ├── _helpers.tpl # 用于創(chuàng)建模板時(shí)的幫助類
│   ├── deployment.yaml # Kubernetes deployment 配置
│   ├── ingress.yaml # Kubernetes ingress 配置
│   ├── service.yaml # Kubernetes service 配置
│   ├── serviceaccount.yaml # Kubernetes serviceaccount 配置
│   └── tests
│       └── test-connection.yaml
└── values.yaml # 定義 chart 模板中的自定義配置的默認(rèn)值陆赋,可以在執(zhí)行 helm install 或 helm update 的時(shí)候覆蓋

3 directories, 10 files

做一個最基礎(chǔ)的測試,我們清空template文件下的內(nèi)容己莺,以及value.yaml中的內(nèi)容

我們添加一個configmap.yaml文件到template目錄下

apiVersion: v1
kind: ConfigMap
metadata:
  name: hellworld-configmap
data:
  myvalue: "Hello World"

helm install命令奏甫,看到已經(jīng)部署到集群中了

$ helm install helloworld ./hello-world/
NAME: helloworld
LAST DEPLOYED: Thu May  6 07:16:17 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
$ oc get cm hellworld-configmap
NAME                  DATA      AGE
hellworld-configmap   1         30m

使用

添加helm chart 源 (helm3 中不再有預(yù)定義中心倉庫,需要手工添加)

$ helm repo add stable https://charts.helm.sh/stable
"stable" has been added to your repositories
$ helm repo list
NAME    URL
stable  https://charts.helm.sh/stable

查看源里可安裝的包(chart)

$ helm search repo stable
NAME                                    CHART VERSION   APP VERSION             DESCRIPTION
stable/acs-engine-autoscaler            2.2.2           2.1.1                   DEPRECATED Scales worker nodes within agent pools
stable/aerospike                        0.3.5           v4.5.0.5                DEPRECATED A Helm chart for Aerospike in Kubern...
stable/airflow                          7.13.3          1.10.12                 DEPRECATED - please use: https://github.com/air...
stable/ambassador                       5.3.2           0.86.1                  DEPRECATED A Helm chart for Datawire Ambassador
stable/anchore-engine                   1.7.0           0.7.3                   Anchore container analysis and policy evaluatio...
...<snip>...

上面的例子是從 repo 里面搜索凌受,還可以從hub 搜索阵子。

Helm 自帶一個強(qiáng)大的搜索命令,可以用來從兩種來源中進(jìn)行搜索:

  • helm search hubArtifact Hub 中查找并列出 helm charts胜蛉。 Artifact Hub中存放了大量不同的倉庫挠进。
  • helm search repo 從你添加(使用 helm repo add)到本地 helm 客戶端中的倉庫中進(jìn)行查找。該命令基于本地?cái)?shù)據(jù)進(jìn)行搜索誊册,無需連接互聯(lián)網(wǎng)领突。

你可以通過運(yùn)行 helm search hub 命令找到公開可用的charts:

$ helm search hub wordpress
URL                                                 CHART VERSION APP VERSION DESCRIPTION
https://hub.helm.sh/charts/bitnami/wordpress        7.6.7         5.2.4       Web publishing platform for building blogs and ...
https://hub.helm.sh/charts/presslabs/wordpress-...  v0.6.3        v0.6.3      Presslabs WordPress Operator Helm Chart
https://hub.helm.sh/charts/presslabs/wordpress-...  v0.7.1        v0.7.1      A Helm chart for deploying a WordPress site on ...

安裝一個chart

To install the chart with the release name my-release:

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install my-release bitnami/mysql

參考

https://helm.sh/zh/docs/intro/quickstart/

https://helm.sh/zh/docs/intro/using_helm/

https://jimmysong.io/kubernetes-handbook/practice/helm.html

https://blog.csdn.net/weixin_36938307/article/details/105226395

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鹅巍,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)笤闯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門浦马,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磺陡,“玉大人,你說我怎么就攤上這事。” “怎么了倦微?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵拓劝,是天一觀的道長栖博。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任雹舀,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布桃漾。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天睦裳,我揣著相機(jī)與錄音蛛蒙,去河邊找鬼诺苹。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棒卷,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜒什!你這毒婦竟也來了灾常?” 一聲冷哼從身側(cè)響起钞瀑,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤晋修,失蹤者是張志新(化名)和其女友劉穎户敬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骂维,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年项阴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笆包。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡环揽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庵佣,到底是詐尸還是另有隱情歉胶,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布巴粪,位于F島的核電站通今,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肛根。R本人自食惡果不足惜辫塌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望派哲。 院中可真熱鬧臼氨,春花似錦、人聲如沸芭届。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褂乍。三九已至持隧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逃片,已是汗流浹背屡拨。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人洁仗。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓层皱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赠潦。 傳聞我的和親對象是個殘疾皇子叫胖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容