国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Helm:kubernetes包管理工具

社區管理員 / 733人閱讀

最近給部門的小伙伴做了一個關于helm的入門介紹,收到了不錯的反響,于將資料整理分享給博客的讀者們。 本文第一部分介紹helm是做什么的以及能解決什么問題。第二部分介紹helm的核心概念及安裝使用helm的教程, 第三部分介紹helm使用的核心即chart的開發,這一章節通過一個示例給大家演示基本的開發步驟。最后一部分, 簡單說明如何搭建私有模板倉。在讀完后,相信你會對Helm及生態有一個簡單的了解。

什么是 helm

如標題所示,官方給Helm的定義是 kubernetes 的包管理器。那么什么是包管理器呢?

什么是包管理工具

包管理器一組軟件工具,它們以一致的方式自動安裝、升級、配置和刪除計算機操作系統的計算機程序 -維基百科
helm 幫助用戶管理 kubernetes 程序,helm chart 幫助用戶定義、安裝和升級最復雜的 Kubernetes 應用程序,Charts 很容易 創建,版本管理,共享和發布,所以停止 copy-and-paste,開始使用 helm -helm 官方

image.png


核心概念

helm的官方文檔中的描述更加詳細,這里只列出一些重要的概念:

Helm Concept描述重點
Chart(unpackaged)一個文件夾的文件,遵循 chart 的準則可以直接部署到集群
Chart(packaged)上述文件的壓縮包 tar.gz可以直接部署到集群
Chart nameChart.yaml 定義包的名稱部分標識 chart
Templates構成應用程序的一組 Kubernetes 清單Golang 模板引擎
Values可以在 Kubernetes 清單中參數化的設置用于 template 渲染
Chart versionchart 版本部分標示 chart
App Versionchart 中包含的應用程序版本與 chart 版本獨立
Releasekubernetes 集群中部署的 chart同一個 chart 可能部署多個 release
Release namerelease 任意名稱獨立于 chart name
Release Revision每次部署/升級應用程序時遞增的數字于 chart 版本無關

helm 發展

  • 每個月超過百萬次下載

  • CNCF Incubating project

  • 繁榮的社區

  • image.png

helm 如何使用

helm 安裝

helm3剔除了服務 Tiller,直接與kubernetes apiserver通信,所以安裝相比helm2更加簡單。


# mac通過homebrew安裝
brew install helm

# 二進制文件
wget https://github.com/helm/helm/releases/helm-v3.0.0-linux-amd6
tar -zvxf helm-v3.0.0-linux-amd6
mv linux-amd64/helm /usr/local/bin/helm

對于需要從 Helm2 升級到 helm3 的用戶,官方提供了升級插件,我是使用插件進行升級的,沒有遇到問題。

chart

chart:一個包含足夠信息的 Helm 包,用于將一組 Kubernetes 資源安裝到 Kubernetes 集群中。

helm 命令行工具能夠自動生成一個 chart 結構:helm create myapp

image.png

templates包含了所有所需 kubernetes 各個資源的模板文件,Value.yaml文件存儲chart的默認值, 這些值可以通過helm install ,helm upgrade更新,Chart.yaml包含了chart的描述信息,如版本,名稱等。 charts目錄存儲其依賴的第三方chart

安裝 Chart

image.png

在根據正在運行的 Kubernetes 集群進行身份驗證的環境中,使用 Helm 從本地 chart 目錄或 chart repo 安裝。

使用自定義值

image.png

查看 release 狀態

image.png

image.png

查看所有運行的 release

升級 release

回滾 release

移除一個 release

image.png

helm chart 如何開發

chart的開發是Helm的核心,也比較復雜。Helm使用Go模板對資源文件進行模板化,除了Go附帶的幾個內置函數,還添加了許多其他函數。

chart 開發核心特性

以下列舉了helm chart開發中幾個核心知識點,這里只簡單羅列,如果你需要使用,還是建議參考官方文檔。

  1. 內置對象:Release,Values,Chart,Files

  2. Values 文件,--set>-f customValue> default file;

  3. 模板函數及流水線:對傳入 template 的值進行輕度處理,helm 內置了 60 多個常見函數;

  4. 控制語句的使用;

  5. 變量;

  6. 命名模版;

  7. 訪問 templates 中的文件;

  8. 幫助文件 NOTS.Txt 如何編寫;

  9. subcharts 與全局變量;

  10. .helmignore 文件忽略不需要的文件;

  11. chart 開發如何進行調試:helm lint,helm install --dry-run --debug,helm get manifest

開發一個 chart Demo

我們通過一個Goweb 程序iim,來演示開發一個 chart 的完整流程。web 應用鏡像已經推送到鏡像倉中。

  1. 首先在項目中創建 chart 目錄,我們使用helm create iim工具生成。其中templates會自動生成 deployment,service ,serviceaccount 資源文件,以及自定義幫助文件模板。我們可以移除一些不必要的文件,如 serviceaccount,因為這里不需要使用這些 kubernetes 資源; _ NOTES.txt:關于應用的幫助信息,如訪問地址 _ _helpers.tpl: 放置 chart 幫助程序的地方,便于后續重用

  2. containers:
     - name: { { .Chart.Name } }
       securityContext: { { - toYaml .Values.securityContext | nindent 12 } }
       image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
       imagePullPolicy: { { .Values.image.pullPolicy } }
       command: ["./iimserver"]
       args:
         [
           "-c",
           "/app/config.toml",
           "-m",
           "/app/model.conf",
           "-menu",
           "/app/menu.json",
         ]
  3. 修改 deployment.yaml,添加入口程序參數。

  4. replicaCount: 1

    image:
     repository: daocloud.io/daocloud/iim-backend
     pullPolicy: IfNotPresent
  5. 修改程序默認配置,即 Value.yaml 文件

  6. apiVersion: v2
    name: iim
    description: 工業機理模型沖刺項目
    type: application
    version: 0.1.0
    appVersion:

    文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127931.html

相關文章

  • Kubernetes_v1.21.0生產環境高可用部署

    kubeadm介紹kubeadm概述Kubeadm 是一個工具,它提供了 kubeadm init 以及 kubeadm join 這兩個命令作為快速創建 kubernetes 集群的最佳實踐。 kubeadm 通過執行必要的操作來啟動和運行一個最小可用的集群。kubeadm 只關心啟動集群,而不關心其他工作,如部署前的節點準備工作、安裝各種Kubernetes Dashboard、監控解決方案...

    Tecode 評論0 收藏0
  • 如何選擇合適的混合云管理方式

    摘要:與或等流行工具結合或集成在當今的混合云管理提供商中很常見。如果中止混合云管理合同,那么它只是策略的一部分,而加入現有資源則需要模板轉換為混合云管理格式。實際上,組織不必選擇最好的混合云管理產品。混合云管理(HCM)市場的發展如今有些停滯不前,但最近這一切發生了變化。很多企業開始解決云計算管理挑戰,在采用云計算策略的企業中,超過一半的基礎設施決策者正在積極監控使用情況,并創建有效的云計算策略。...

    ky0ncheng 評論0 收藏0
  • Anaconda入門詳解

    摘要:的包使用軟件包管理系統進行管理。超過萬人使用發行版本,并且擁有超過個適用于和的數據科學軟件包。提供了大部分功能,并且大多數情況下兩個可以同時使用。 Anaconda Anaconda簡介 Anaconda是一個免費開源的Python和R語言的發行版本,用于計算科學(數據科學、機器學習、大數據處理和預測分析),Anaconda致力于簡化包管理和部署。Anaconda的包使用軟件包管理系統...

    AlphaWallet 評論0 收藏0
  • tensorflow學習之Anaconda開發環境搭建

    摘要:的開發環境有很多,可以在上搭建,也可以使用管理工具搭建,也可以直接在本機中安裝。例如創建開發環境點擊左下角,彈出創建開發環境框,輸入環境名和選擇類型即可。以上內容是我們需要搭建開發環境的全部內容。 tensorflow的開發環境有很多,可以在Docker上搭建,也可以使用Anaconda管理工具搭建,也可以直接在本機中安裝tensorflow。在這里為了工具包的方便管理,我選擇使用An...

    Y3G 評論0 收藏0
  • Fabric與dep

    摘要:但是在與此同時出現了然后隨著的出現,又更名為,真的是百家爭鳴那。采用文件來追蹤依賴,而不是的和文件。然而他們并不想提交大量的文件,因為鏈碼程序僅僅是個小的代碼庫。想必在年會逐漸替換以及中的,希望可以終結混亂的包管理機制。 作者: TopJohn原文連接:https://www.xuanzhangjiong.to... Fabric與dep 個人感受 接觸Golang有2年時間了,從最...

    王陸寬 評論0 收藏0

發表評論

0條評論

社區管理員

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<