【kubernetes】新版helm3的三大概念+快速指南+自定義charts模板

      網友投稿 777 2025-03-31

      @[toc]


      推薦文章

      【Drone+Gitlab】一條龍服務,直接起飛 — 從介紹->部署->配置->寫.drone.yml流水線+常見的報錯解決

      【容器】docker-comopse安裝+案例練習

      【GitLab】使用Docker和Docker-Compose部署-個人、私有代碼倉庫

      【kubevirt】VirtualMachineInstanceReplicaSet(vmis)-擴縮容-彈性伸縮

      【openstack】cloudkitty組件,入門級安裝(快速)

      【openstack】Designate組件,入門級安裝(快速)

      【Istio是什么?】 還不知道你就out了,一文40分鐘快速理解

      【Istio實際操作篇】Istio入門10分鐘快速安裝

      【代理是什么?】nginx快速入門+反向代理hexo個人博客

      【還不會搭建博客嗎?】centos7系統部署hexo博客新手入門-進階,看這一篇就夠了

      【沒接觸過kubevirt?】15分鐘快速入門kubevirt

      概述

      Helm 是 Kubernetes 的包管理器

      Helm的三大概念

      chart:代表helm包,包含在 Kubernetes 集群內部運行應用程序,工具或服務所需的所有資源定義。

      Repository(倉庫):用來存放和共享 charts 的地方。

      Release :運行在 Kubernetes 集群中的 chart 的實例,一個 chart 通常可以在同一個集群中安裝多次,每一次安裝都會創建一個新的 release。

      簡單來說!!

      其實我們可以對比yum來理解

      chart看作linux中rpm包,repository看作repo倉庫,release就是我們的yum install安裝啟動后的軟件。

      還不理解嗎??

      還可以,這樣

      chart看作docker鏡像,release看作docker鏡像運行的容器,而Repository看作我們的docker Hub鏡像倉庫。

      環境準備

      一個 Kubernetes 集群

      支持的版本

      Helm的版本用 x.y.z 描述,x是主版本,y是次版本,z是補丁版本,遵循 語義化版本 術語

      安裝Helm

      helm官方-

      兩種方式安裝Helm,按需選擇。這里使用二進制安裝。

      方式1:使用二進制版本安裝

      tar -zxf helm-v3.7.0-linux-amd64.tar.gz cp linux-amd64/helm /usr/local/bin/helm 或者 mv linux-amd64/helm /usr/local/bin/helm helm version

      方式二:使用腳本安裝

      這是官方提供的腳本,自動拉取最新的Helm版本并安裝在本地。

      $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh

      Helm的基本操作(快速指南)

      下列所有操作以nginx為例

      Helm 自帶一個強大的搜索命令,可以從兩種來源中進行搜索:

      helm search hub 從 Artifact Hub 中查找并列出 helm charts。 Artifact Hub中存放了大量不同的倉庫。

      helm search repo 從你添加(使用 helm repo add)到本地 helm 客戶端中的倉庫中進行查找。該命令基于本地數據進行搜索,無需連接互聯網。

      【kubernetes】新版helm3的三大概念+快速指南+自定義charts模板

      從 Artifact Hub 中搜索所有的 nginx charts。

      $ helm search hub nginx URL CHART VERSION APP VERSION DESCRIPTION https://artifacthub.io/packages/helm/wiremind/n... 2.1.1 An NGINX HTTP server https://artifacthub.io/packages/helm/zrepo-test... 5.1.5 1.16.1 Chart for the nginx server https://artifacthub.io/packages/helm/mirantis/n... 0.1.0 1.16.0 A NGINX Docker Community based Helm chart for K... ...

      使用 helm repo add 命令,添加gitlab倉庫。

      $ helm repo add bitnami https://charts.bitnami.com/bitnami "bitnami" has been added to your repositories

      使用 helm search repo 命令,你可以從你所添加的倉庫中查找chart的名字。

      $ helm search repo nginx NAME CHART VERSION APP VERSION DESCRIPTION bitnami/nginx 10.2.1 1.21.6 NGINX Open Source is a web server that can be a... bitnami/nginx-ingress-controller 9.1.27 1.2.0 NGINX Ingress Controller is an Ingress controll... bitnami/nginx-intel 1.0.5 0.4.7 NGINX Open Source for Intel is a lightweight se... bitnami/kong 5.0.2 2.7.0 Kong is a scalable, open source API layer (aka ...

      一旦你找到你想安裝的 helm 包,便可以通過使用helm install命令來安裝它。

      Helm 安裝 charts 到 Kubernetes 集群中,每次安裝都會創建一個新的 release。你可以在 Helm 的 chart repositories 中尋找新的 chart。

      $ helm install my-nginx bitnami/nginx --version 10.2.1 NAME: my-nginx LAST DEPLOYED: Fri May 6 11:06:07 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: nginx CHART VERSION: 10.2.1 APP VERSION: 1.21.6 ...

      使用 helm status來追蹤 release 的狀態、信息。

      $ helm status my-nginx NAME: my-nginx LAST DEPLOYED: Fri May 6 11:06:07 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: nginx CHART VERSION: 10.2.1 APP VERSION: 1.21.6 ...

      查看helm安裝,releases的列表

      [root@master helm]# helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-nginx default 1 2022-05-06 11:06:07.215433713 +0800 CST deployed nginx-10.2.1 1.21.6

      瀏覽器訪問,驗證nginx服務

      查看nginx的svc

      [root@master ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 443/TCP 115d my-nginx LoadBalancer 10.102.231.181 80:30769/TCP 25m

      自定義Charts模板

      上述nginx安裝只是使用倉庫chart的默認配置。不利于個性化需求和生成環境的使用。我們也可以修改chart默認配置,也可以自己創建Charts模板。

      1. 創建一個chart模板

      # helm create testnginx Creating testnginx

      2. Helm chart的目錄結構如下:

      # tree testnginx/ testnginx/ ├── charts ├── Chart.yaml ├── templates │ ├── deployment.yaml │ ├── _helpers.tpl │ ├── hpa.yaml │ ├── ingress.yaml │ ├── NOTES.txt │ ├── serviceaccount.yaml │ ├── service.yaml │ └── tests │ └── test-connection.yaml └── values.yaml

      templates/目錄是我們資源清單的yaml文件。

      values.yaml文件內容,定義一些template目錄下yaml文件所引用的字段

      Chart.yaml文件是該chart的描述信息。charts/目錄 可以 包含其他的chart(稱之為 子chart)。

      3. templates/ 目錄下,會注意到一些文件:

      NOTES.txt: chart的"幫助文本"。這會在你的用戶執行helm install時展示給他們。

      _helpers.tpl: 放置可以通過chart復用的模板輔助對象

      我們刪除templates/目錄下的文件:

      # rm -rf testnginx/templates/*

      修改values.yaml文件

      # cat values.yaml name: app-nginx image: repository: 192.168.200.11/library/nginx

      創建deploy.yaml文件,并引用values.yaml文件的字段,之后只要我們修改values.yaml文件,就可以達到改變templates/deploy.yaml文件的效果。

      # cat templates/deploy.yaml kind: Deployment apiVersion: apps/v1 metadata: name: {{ .Values.name }} spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: web-nginx image: {{ .Values.image.repository }} ports: - name: http containerPort: 80 --- kind: Service apiVersion: v1 metadata: name: svc-nginx spec: ports: - name: http port: 80 targetPort: 80 selector: app: nginx type: NodePort

      使用helm install創建release

      # helm install test-nginx testnginx/ NAME: test-nginx LAST DEPLOYED: Fri May 6 14:52:43 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None

      檢查服務

      # helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION test-nginx default 1 2022-05-06 14:52:43.081379354 +0800 CST deployed testnginx-0.1.0 1.16.0 # kubectl get deploy,pod NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/app-nginx 1/1 1 1 5m14s NAME READY STATUS RESTARTS AGE pod/app-nginx-57fbfbd5c5-g2sjq 1/1 Running 0 5m14s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 443/TCP 115d service/svc-nginx NodePort 10.106.42.241 80:32755/TCP 5m14s

      4. helm upgrade升級 release

      當我們想給我們的服務升級版本時,就需要使用到helm upgrade 命令非常簡便快捷

      修改values.yaml文件切換版本

      # cat testnginx/values.yaml name: app-nginx image: #repository: 192.168.200.11/library/nginx repository: 192.168.200.11/library/nginx-2

      # helm upgrade test-nginx testnginx/ Release "test-nginx" has been upgraded. Happy Helming! NAME: test-nginx LAST DEPLOYED: Fri May 6 15:26:08 2022 NAMESPACE: default STATUS: deployed REVISION: 2 TEST SUITE: None

      5. helm rollback回滾

      假如在一次發布過程中,發生了不符合預期的事情,就需要使用helm rollback 命令回滾到之前的發布版本。

      查看test-nginx歷史版本:

      [root@master helm]# helm history test-nginx REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Fri May 6 15:28:12 2022 superseded testnginx-0.1.0 1.16.0 Install complete 2 Fri May 6 15:28:56 2022 superseded testnginx-0.1.0 1.16.0 Upgrade complete

      回滾到版本1:

      # helm rollback test-nginx 1 Rollback was a success! Happy Helming!

      卸載一個版本

      新版helm3卸載后不會保留歷史版本,如果您在執行 helm uninstall 的時候提供 --keep-history 選項, Helm將會保存版本歷史。

      # helm uninstall test-nginx release "test-nginx" uninstalled

      推薦文章

      【Drone+Gitlab】一條龍服務,直接起飛 — 從介紹->部署->配置->寫.drone.yml流水線+常見的報錯解決

      【容器】docker-comopse安裝+案例練習

      【GitLab】使用Docker和Docker-Compose部署-個人、私有代碼倉庫

      【kubevirt】VirtualMachineInstanceReplicaSet(vmis)-擴縮容-彈性伸縮

      【openstack】cloudkitty組件,入門級安裝(快速)

      【openstack】Designate組件,入門級安裝(快速)

      【Istio是什么?】 還不知道你就out了,一文40分鐘快速理解

      【Istio實際操作篇】Istio入門10分鐘快速安裝

      【代理是什么?】nginx快速入門+反向代理hexo個人博客

      【還不會搭建博客嗎?】centos7系統部署hexo博客新手入門-進階,看這一篇就夠了

      【沒接觸過kubevirt?】15分鐘快速入門kubevirt

      ------------------------------------------------------------------------------------------END------------------------------------------------------------------------------------------

      Docker Kubernetes Linux 云計算

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:批量把excel2010數據表格中的合計行刪除掉(excel表格內容怎么批量刪除)
      下一篇:logstash同步MySQL數據到ElasticSearch
      相關文章
      久久久久亚洲AV无码网站| 国产成人亚洲午夜电影| 在线亚洲人成电影网站色www| www.亚洲一区| 亚洲色无码专区一区| 精品日韩99亚洲的在线发布| 亚洲午夜精品一区二区公牛电影院 | 小说区亚洲自拍另类| 亚洲AV无码一区二区一二区| 亚洲精品9999久久久久无码| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲成a人片在线观看天堂无码| 亚洲AV无码一区二区三区性色| 亚洲av无一区二区三区| 亚洲爆乳大丰满无码专区| 久久亚洲欧美国产精品| 亚洲av永久无码精品秋霞电影秋| 亚洲av无码一区二区三区在线播放 | 亚洲女人被黑人巨大进入| 亚洲日韩中文字幕日韩在线| 久久久久亚洲精品无码网址| 中文字幕亚洲乱码熟女一区二区| 亚洲精品成人无限看| 亚洲va在线va天堂va888www| 亚洲综合激情九月婷婷| 亚洲av日韩av综合| 亚洲熟妇久久精品| 爱情岛论坛亚洲品质自拍视频网站| 在线观看亚洲免费| 久久亚洲国产成人影院网站| 亚洲无人区午夜福利码高清完整版| 日本红怡院亚洲红怡院最新| 亚洲一区二区三区电影| 亚洲午夜成激人情在线影院 | 一区二区亚洲精品精华液| 亚洲AV无码专区在线厂| 亚洲人成色7777在线观看不卡 | 亚洲国产另类久久久精品黑人| 亚洲视频在线一区| 亚洲精品免费在线| 中文无码亚洲精品字幕|