久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

kubernetes中如何實現Helm

162次閱讀
沒有評論

共計 4910 個字符,預計需要花費 13 分鐘才能閱讀完成。

這篇文章主要介紹 kubernetes 中如何實現 Helm,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一:簡介
在 Kubernetes 上進行容器化部署并非易事,通常需要先研究 Docker 鏡像的運行需求,環境變量等內容,并能為這些容器定制存儲,網絡等設備,最后設計和編寫 Deployment,Configmap,Service 及 Ingress 等相關 yaml 配置文件,再提交給 Kubernetes 進行部署。這些復雜的過程將逐步被 Helm 應用包管理工具實現。

Helm 是一個由 CNCF 孵化和管理的項目,用于對需要在 Kubernetes 上部署復雜應用進行定義,安裝和更新。Helm 以 Chart 的方式對應用軟件信息描述,可以方便地創建,版本化,共享和發布復雜的應用軟件。

二:Helm 的主要概念
1. Chart: 是 Helm 管理的安裝包,里面包含需要部署的安裝包資源。類似于 yum 中的 rpm 文件。每個 Chart 包含下面兩部分:包的基本描述文件 Chart.yaml 放在 templates 目錄中的一個或多個 Kubernetes manifest 文件模板。
2.Release: 在 Kubernetes 集群上運行的一個 Chart 實例。在同一個集群上,一個 Chart 可以安裝多次。例如一個 MySQL Chart,如果想在服務器上運行兩個 MySQL 數據庫,就可以基本這個 Chart 安裝兩次。每次安裝都會生成新的 Release, 會有獨立的 Release 名稱。
3.Repository: 用于存放和共享 Chart 的倉庫。

三:Helm 的安裝

1.Helm 由兩部分組成,客戶端 helm 和服務的 tiller.

2. 客戶端 helm 的安裝

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get get_helm.sh

chmod 755 get_helm.sh

./get_helm.sh

在執行 get_helm.sh 腳本的過程中,如果無法獲取 helm 安裝包,可以提前通過 https://github.com/kubernetes/helm/releases 下載當前最新穩定版本的安裝包到當前目錄,再執行 get_helm.sh 文件。    這里使用的是 helm-v2.9.1-linux-amd64.tar.gz。

3. 客戶端 tiller 安裝

創建 serviceaccount 和 clusterrolebinding

kubectl create serviceaccount –namespace kube-system tiller

kubectl create clusterrolebinding tiller-cluster-rule –clusterrole=cluster-admin –serviceaccount=kube-system:tiller

安裝 tiller

helm init  -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1

為 tiller 設置 serviceaccount

kubectl patch deploy –namespace kube-system tiller-deploy -p {spec :{ template :{ spec :{ serviceAccount : tiller}}}}

檢查是否安裝成功

kubectl -n kube-system get pods|grep tiller

tiller-deploy-59c7578f9b-qqwpm          1/1       Running   0          17h

helm version

Client: version.Version{SemVer: v2.9.1 , GitCommit: 20adb27c7c5868466912eebdf6664e7390ebe710 , GitTreeState: clean}

Server: version.Version{SemVer: v2.9.1 , GitCommit: 20adb27c7c5868466912eebdf6664e7390ebe710 , GitTreeState: clean}

四:Helm 的使用

1.helm search: 搜索可用的 Chart
Helm 初始化完成之后,默認配置為使用官方的 Kubernetes Chart 倉庫。官方倉庫包含大量的經過組織和持續維護的 Chart, 這個倉庫通常命名為 stable。
可以用 helm inspect chart_name 命令查看 Chart 的詳細信息。

2.helm create: 創建一個 chart
helm create nginx

templates 目錄下的 deployment.yaml 是部署應用的 yaml 文件,其中的雙? 括號包擴起來的部分是 Go template,其中的 Values 是在 values.yaml ? 件中定義。

a.charts 目錄中是本 chart 依賴的 chart,當前是空的
b.Chart.yaml 這個 yaml 文件用于描述 Chart 的基本信息,如名稱版本等
c.templates 是 Kubernetes manifest 文件模板目錄,模板使用 chart 配置的值生成 Kubernetes manifest 文件。模板文件使用的 Go 語言模板語法
d.templates/NOTES.txt 純文本文件,可在其中填寫 chart 的使用說明
e.value.yaml 是 chart 配置的默認值

3. helm install –dry-run –debug ./: 驗證模板和配置

[debug] Created tunnel using local port: 44785

[debug] SERVER: 127.0.0.1:44785

[debug] Original chart version:

[debug] CHART PATH: /root/helm/nginx

NAME: listless-blackbird

REVISION: 1

RELEASED: Wed Jun  6 10:00:49 2018

CHART: nginx-0.1.0

USER-SUPPLIED VALUES:

{}

COMPUTED VALUES:

affinity: {}

image:

 pullPolicy: IfNotPresent

 repository: nginx

 tag: stable

ingress:

 annotations: {}

 enabled: false

 hosts:

 – chart-example.local

 path: /

 tls: []

nodeSelector: {}

replicaCount: 1

resources: {}

service:

 port: 80

 type: ClusterIP

tolerations: []

HOOKS:

MANIFEST:

# Source: nginx/templates/service.yaml

apiVersion: v1

kind: Service

metadata:

 name: listless-blackbird-nginx

 labels:

 app: nginx

 chart: nginx-0.1.0

 release: listless-blackbird

 heritage: Tiller

spec:

 type: ClusterIP

 ports:

 – port: 80

 targetPort: http

 protocol: TCP

 name: http

 selector:

 app: nginx

 release: listless-blackbird

# Source: nginx/templates/deployment.yaml

apiVersion: apps/v1beta2

kind: Deployment

metadata:

 name: listless-blackbird-nginx

 labels:

 app: nginx

 chart: nginx-0.1.0

 release: listless-blackbird

 heritage: Tiller

spec:

 replicas: 1

 selector:

 matchLabels:

 app: nginx

 release: listless-blackbird

 template:

 metadata:

 labels:

 app: nginx

 release: listless-blackbird

 spec:

 containers:

 – name: nginx

 image: nginx:stable

 imagePullPolicy: IfNotPresent

 ports:

 – name: http

 containerPort: 80

 protocol: TCP

 livenessProbe:

 httpGet:

 path: /

 port: http

 readinessProbe:

 httpGet:

 path: /

 port: http

 resources:

 {}

4.helm install : 安裝 Chart
在安裝過程中,Helm 客戶端會輸出一些有用的信息,例如 Release 的狀態,以及額外的配置步驟等。在 helm install 過程中,可以使用 helm status 命令來跟蹤 release 狀態。

5. 自定義 Chart 配置
a.–values 或者 -f: 使用 yaml 配置文件進行參數配置,可以配置多個文件,最后一個優先生效。多個文件中重復的 value 會進行覆蓋操作,不同的 value 會疊加生效。
b.–set: 在命令行直接設置參數
舉例:
helm install stable/mariadb -f config.yaml -f config2.yaml
helm install stable/mariadb –set mariadbDatabase=firstdb,mariadbRootPassword=abcdefg

6.helm upgrade 和 helm rollback: 應用的更新或回滾

helm upgrade 會利用用戶提供的更新信息來對 Release 進行更新。應為 Kubernetes Chart 可能會有很大的規模或者相對復雜的關系,helm 會嘗試進行最小影響的更新,只更新相對于上一個 release 來說發生變化的內容。

7.helm delete : 刪除一個 Release

8.helm repo : 倉庫的使用
a. helm repo list : 列出所有倉庫

NAME  URL

stable https://kubernetes-charts.storage.googleapis.com

local  http://127.0.0.1:8879/charts

b. helm repo add : 添加倉庫

c.helm repo update : 更新倉庫中的 Chart 信息

9. 快速制作自定義的 Chart
同其它軟件開發過程一樣,快速制作一個簡單 Chart 的方法,就是從其它項目中復制并修改。例如我們要簡單地改寫前面 MariaDB 的 Chart 令其使用本地的私有鏡像倉庫,可以按照如下步驟進行:
a. 下載 Chart: 使用 helm fetch stable/mariadb 命令下載這一 Chart 的壓縮包
b. 編輯 Chart
c. 利用 tar 解壓后,將目錄重新命名為 mymariadb
d. 修改 templates 中的 deployment.yaml
e. 將 Chart.yaml 中的版本號修改為 0.1.1 name 為 mymariadb
f. 使用 helm package mymariadb 打包 chart, 并生成一個名為 mymariadb-0.11.tgz 的壓縮包
g. 安裝 chart 通過 helm install mymariadb-0.1.1.tgz 命令將新生成的 Chart 安裝到集群當中。

10. 搭建私有 Repository
Chart 倉庫主要由 Chart 壓縮包和索引文件構成,通過 HTTP/HTTPS 對外提供服務。
通過 helm repo index 創建索引

以上是“kubernetes 中如何實現 Helm”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計4910字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 内乡县| 长沙县| 临汾市| 钦州市| 珠海市| 丽江市| 黎城县| 莱西市| 宁波市| 虹口区| 敦化市| 朔州市| 乐至县| 资溪县| 新平| 郴州市| 大同市| 满城县| 丰城市| 芮城县| 岑巩县| 双峰县| 贵德县| 孝感市| 商丘市| 武威市| 富源县| 广水市| 永顺县| 平阴县| 聊城市| 乌鲁木齐市| 民乐县| 璧山县| 秀山| 安徽省| 全南县| 广昌县| 吴堡县| 泰州市| 通渭县|