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

資訊專欄INFORMATION COLUMN

Helm:kubernetes包管理工具

社區(qū)管理員 / 740人閱讀

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

什么是 helm

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

什么是包管理工具

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

image.png


核心概念

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

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

helm 發(fā)展

  • 每個(gè)月超過百萬次下載

  • CNCF Incubating project

  • 繁榮的社區(qū)

  • image.png

helm 如何使用

helm 安裝

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


# mac通過homebrew安裝
brew install helm

# 二進(jìn)制文件
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

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

chart

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

helm 命令行工具能夠自動(dòng)生成一個(gè) chart 結(jié)構(gòu):helm create myapp

image.png

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

安裝 Chart

image.png

在根據(jù)正在運(yùn)行的 Kubernetes 集群進(jìn)行身份驗(yàn)證的環(huán)境中,使用 Helm 從本地 chart 目錄或 chart repo 安裝。

使用自定義值

image.png

查看 release 狀態(tài)

image.png

image.png

查看所有運(yùn)行的 release

升級(jí) release

回滾 release

移除一個(gè) release

image.png

helm chart 如何開發(fā)

chart的開發(fā)是Helm的核心,也比較復(fù)雜。Helm使用Go模板對(duì)資源文件進(jìn)行模板化,除了Go附帶的幾個(gè)內(nèi)置函數(shù),還添加了許多其他函數(shù)。

chart 開發(fā)核心特性

以下列舉了helm chart開發(fā)中幾個(gè)核心知識(shí)點(diǎn),這里只簡單羅列,如果你需要使用,還是建議參考官方文檔。

  1. 內(nèi)置對(duì)象:Release,Values,Chart,Files

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

  3. 模板函數(shù)及流水線:對(duì)傳入 template 的值進(jìn)行輕度處理,helm 內(nèi)置了 60 多個(gè)常見函數(shù);

  4. 控制語句的使用;

  5. 變量;

  6. 命名模版;

  7. 訪問 templates 中的文件;

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

  9. subcharts 與全局變量;

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

  11. chart 開發(fā)如何進(jìn)行調(diào)試:helm lint,helm install --dry-run --debug,helm get manifest

開發(fā)一個(gè) chart Demo

我們通過一個(gè)Goweb 程序iim,來演示開發(fā)一個(gè) chart 的完整流程。web 應(yīng)用鏡像已經(jīng)推送到鏡像倉中。

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

  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,添加入口程序參數(shù)。

  4. replicaCount: 1

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

  6. apiVersion: v2
    name: iim
    description: 工業(yè)機(jī)理模型沖刺項(xiàng)目
    type: application
    version: 0.1.0
    appVersion:

    文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/127931.html

相關(guān)文章

  • Kubernetes_v1.21.0生產(chǎn)環(huán)境高可用部署

    kubeadm介紹kubeadm概述Kubeadm 是一個(gè)工具,它提供了 kubeadm init 以及 kubeadm join 這兩個(gè)命令作為快速創(chuàng)建 kubernetes 集群的最佳實(shí)踐。 kubeadm 通過執(zhí)行必要的操作來啟動(dòng)和運(yùn)行一個(gè)最小可用的集群。kubeadm 只關(guān)心啟動(dòng)集群,而不關(guān)心其他工作,如部署前的節(jié)點(diǎn)準(zhǔn)備工作、安裝各種Kubernetes Dashboard、監(jiān)控解決方案...

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

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

    ky0ncheng 評(píng)論0 收藏0
  • Anaconda入門詳解

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

    AlphaWallet 評(píng)論0 收藏0
  • tensorflow學(xué)習(xí)之Anaconda開發(fā)環(huán)境搭建

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

    Y3G 評(píng)論0 收藏0
  • Fabric與dep

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

    王陸寬 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<