Kubernetes】【helm使用

      網友投稿 771 2022-05-30

      一、在 Helm3 中的執行順序定義代碼如下:

      var InstallOrder KindSortOrder = []string{ "Namespace", "NetworkPolicy", "ResourceQuota", "LimitRange", "PodSecurityPolicy", "PodDisruptionBudget", "Secret", "ConfigMap", "StorageClass", "PersistentVolume", "PersistentVolumeClaim", "ServiceAccount", "CustomResourceDefinition", "ClusterRole", "ClusterRoleList", "ClusterRoleBinding", "ClusterRoleBindingList", "Role", "RoleList", "RoleBinding", "RoleBindingList", "Service", "DaemonSet", "Pod", "ReplicationController", "ReplicaSet", "Deployment", "HorizontalPodAutoscaler", "StatefulSet", "Job", "CronJob", "Ingress", "APIService", }

      Helm 不是按照文件的某個順序來執行的,而是根據文件內容的 Kind,按照定義的順序執行的,上面的執行順序基本上和類型間的使用(依賴)順序有一定關聯。

      二、Helm使用

      使用命令helm create [charName] 創建一個chart: helm create mychart? ?目錄結構如下:

      mychart/

      ├── charts

      ├── Chart.yaml

      ├── templates

      │?? ├── deployment.yaml

      │?? ├── _helpers.tpl

      │?? ├── hpa.yaml

      │?? ├── ingress.yaml

      │?? ├── NOTES.txt

      │?? ├── serviceaccount.yaml

      │?? ├── service.yaml

      │?? └── tests

      │?????? └── test-connection.yaml

      └── values.yaml

      Chart.yaml 用于描述這個 Chart的相關信息,包括名字、描述信息以及版本等。

      values.yaml 用于存儲 templates 目錄中模板文件中用到變量的值。

      NOTES.txt 用于介紹 Chart 部署后的一些信息,例如:如何使用這個 Chart、列出缺省的設置等。

      Templates 目錄下是 你需要部署一個k8s應用所需要的YAML 文件模板,該YAML模板文件遵循 Go template 語法。

      將需要部署的yaml文件放到templetes目錄下

      使用命令helm lint --strict 將需要打包的chart軟件包按照嚴格模式檢查一下,檢查yaml語法是否存在問題等,有問題會提示具體的報錯信息

      如:helm lint --strict ./mychart/

      檢查通過沒有錯誤之后,使用命令helm package ,如helm package ./mychart/;會根據Chart.yaml的信息生成一個.tgz的壓縮包

      得到.tgz的chart軟件包之后,就可以在k8s集群上進行安裝了,使用命令:helm install 。

      chart軟件包還可以上傳到倉庫等等。

      chart安裝之后就可以在k8s集群上查看是否成功拉起相對應的pod了。

      三、Helm的多Chart依賴管理:

      如果需要依賴多個chart,需要進行簡單的依賴配置,主要是編寫父chart的Chart.yaml,添加依賴管理:

      【Kubernetes】【helm】使用

      dependencies: - name: dep1 repository: file://xxx version: 0.1.0 - name: dep2 repository: file://xxx version: 0.1.0

      在父chart.yaml中添加dependencies標簽

      依賴的每個子chart都填寫正確的基本信息:

      name-->依賴chart中定義的名字,保證兩者相同。

      repository-->依賴chart的倉庫地址,可以是本地文件地址或遠程倉庫地址,確保能找到對應的chart即可

      version-->依賴chart的版本,確保版本唯一。

      上面信息填寫完之后,下面編寫父chart的values.yaml,主要目的是希望所依賴的子chart也能共享使用父chart的模板常量,這樣只需要修改父chart的模板常量依賴的子chart也能得到更新:

      global: namespace: xxx basic: name:xxx1 dep1: replicas: x1 images_name: x1 images_version: 0.1.0 dep2: replicas: x2 images_name: x2 images_version: 0.1.0

      定義global-->全局常量,子父chart均可直接引用,為共享常量,子父的模板文件可以直接這樣引用:{{.Values.global.namespace}}

      定義basic-->當前父chart擁有的常量,只能在父chart的模板文件中使用,如:{{.Values.basic.name}}

      定義dep1-->為依賴子chart名稱為dep1所使用的常量,在子chart的模板文件中直接使用,如:{{.Values.dep1.replicas}}

      同理,想要引入依賴子chart使用的常量可以繼續定義dep2等。

      編寫好values.yaml之后,使用命令helm dependency update? 父chart目錄/ ,將父chart的目錄添加依賴管理,會在父chart目錄下的子目錄charts生成所依賴的子chart的tgz包。

      (可選)使用命令helm dependenct list 父chart目錄/,查看所擁有的依賴包

      (可選)使用命令helm dependenct builid 父chart目錄/,重新編譯charts目錄下的依賴包

      最后可是使用命令helm package 父chart目錄/? 或者helm install 父chart目錄/,來完成最后的打包或安裝部署。

      Kubernetes

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

      上一篇:國泰新點出席2018全國大數據標準化會議
      下一篇:搭建化工產業鏈接信息化橋梁,供應鏈管理系統讓化企省錢省力省心
      相關文章
      国产国拍亚洲精品mv在线观看| 亚洲男人的天堂www| 久久亚洲AV无码精品色午夜| 国产亚洲精久久久久久无码| 亚洲第一视频在线观看免费| 精品久久亚洲一级α| 亚洲欧美日韩国产精品一区| 亚洲人成电影网站色www| 自拍偷区亚洲国内自拍| 亚洲a级成人片在线观看| 亚洲AV无码国产精品色| 精品久久亚洲中文无码| 亚洲中字慕日产2021| 亚洲首页国产精品丝袜| 亚洲精品无AMM毛片| 亚洲国产成人精品无码区二本| 亚洲乱人伦中文字幕无码| 亚洲综合一区无码精品| 亚洲午夜无码久久久久小说| 亚洲va久久久久| 亚洲一本一道一区二区三区| 亚洲国产精品美女久久久久| 亚洲国产欧美日韩精品一区二区三区| 亚洲精华国产精华精华液网站| 国产亚洲欧美日韩亚洲中文色| 亚洲成av人片一区二区三区| 久久久久亚洲?V成人无码| 国产亚洲一区二区三区在线观看| 亚洲av永久无码精品古装片| 亚洲伦理一区二区| 亚洲成人网在线观看| 亚洲欧美日韩中文无线码| 国产精品亚洲色图| 亚洲精品视频免费观看| 在线亚洲人成电影网站色www| 亚洲精品无码久久一线| 亚洲免费视频在线观看| 亚洲香蕉久久一区二区| 亚洲精品久久无码av片俺去也| 无码专区一va亚洲v专区在线| 中文字幕亚洲无线码|