溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Helm工具的介紹和部署

發(fā)布時(shí)間:2020-05-26 17:43:22 來(lái)源:億速云 閱讀:330 作者:鴿子 欄目:云計(jì)算

一、Helm概述

1)Helm簡(jiǎn)介

Helm是一個(gè)用于kubernetes的包管理器。每個(gè)包稱為一個(gè)Chart,一個(gè)Chart是一個(gè)目錄(一般情況下會(huì)將目錄進(jìn)行打包壓縮,形成name-version.tgz格式的單一文件,方便傳輸和存儲(chǔ))。我們可以將Helm看作Kubernetes下的apt-get/yum。

對(duì)于應(yīng)用發(fā)布者而言,可以通過(guò)Helm打包應(yīng)用,管理應(yīng)用依賴關(guān)系,管理應(yīng)用版本并發(fā)布應(yīng)用到軟件倉(cāng)庫(kù)。

對(duì)于使用者而言,使用Helm后無(wú)須了解Kubernetes的yaml文件語(yǔ)法、應(yīng)用部署文件。直接使用Helm下載即可在Kubernetes上安裝需要的應(yīng)用。

2)Helm組件及相關(guān)術(shù)語(yǔ)

1)Helm

Helm是一個(gè)命令行下的客戶端工具。主要用于Kubernetes應(yīng)用程序Chart的創(chuàng)建、打包、發(fā)布及創(chuàng)建和管理本地和遠(yuǎn)程的Chart倉(cāng)庫(kù)。

2)Tiller

Tiller是Helm的服務(wù)端,部署在Kubernetes集群中,Tiller用于接收Helm的請(qǐng)求,并根據(jù)Chart生成Kubernetes的部署文件,然后提交給Kubernetes創(chuàng)建應(yīng)用,Tiller還提供和了Release的升級(jí)、刪除、回滾等一系列功能。

3)Chart

Chart是一個(gè)Helm的程序包,包含了運(yùn)行一個(gè)Kubernetes應(yīng)用程序所需的鏡像、依賴關(guān)系和資源定義等。

4)Repoistory

Repoistory是Helm的軟件倉(cāng)庫(kù),Repository本質(zhì)上是一個(gè)Web服務(wù)器,該服務(wù)器保存了一系列的Chart軟件包以供用戶下載,并且提供了該Repository的Chart包的清單文件便于查詢。Helm可以同時(shí)管理多個(gè)不同的Repository。

5)Release

Release是應(yīng)用程序運(yùn)行Chart之后,得到的一個(gè)實(shí)例。

注意:Helm中提到的Release和我們通常概念中的版本有所不同,這里的Release可以理解為Helm使用Chart包部署的一個(gè)應(yīng)用實(shí)例。

3)Helm工作原理

Chart install過(guò)程:
1)Helm從指定的目錄或者tgz文件中解析出Chart結(jié)構(gòu)信息;
2)Helm將指定的Chart結(jié)構(gòu)和Values信息通過(guò)gRPC傳遞給Tiller;
3)Tiller根據(jù)Chart和Values生成一個(gè)Release;
4)Tiller將Release發(fā)送給Kubernetes用于生成Release;
---
Chart update過(guò)程:
1)Helm從指定的目錄或者tgz文件中解析出Chart結(jié)構(gòu)信息;
2)Helm將要更新的Release的名稱和Chart結(jié)構(gòu)、Values信息傳遞給Tiller;
3)Tiller生成Release并更新指定名稱的Release的history;
4)Tiller將Release發(fā)送給Kubernetes用于更新Release;
---
Chart Rollback過(guò)程:
1)Helm將要回滾的Release的名稱傳遞給Tiller;
2)Tiller根據(jù)Release的名稱查找history;
3)Tiller從history中獲取上一個(gè)Release;
4)Tiller將上一個(gè)Release發(fā)送給Kubernetes用于替換當(dāng)前的Release;

二、部署Helm

1)安裝Helm客戶端

[root@master ~]# wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
#從Github上下載Helm軟件包
[root@master ~]# tar zxf helm-v2.14.3-linux-amd64.tar.gz
[root@master ~]# mv linux-amd64/helm /usr/local/bin/
[root@master ~]# chmod +x /usr/local/bin/helm 
#獲取這個(gè)軟件包只是為了獲取這個(gè)helm文件
[root@master ~]# echo 'source <(helm completion bash)' >> /etc/profile
[root@master ~]# source /etc/profile
#設(shè)置helm命令可以自動(dòng)補(bǔ)全并且寫入環(huán)境變量文件中

2)安裝Tiller server

[root@master ~]#  vim tiller-rbac.yaml             #編寫yaml文件并創(chuàng)建授權(quán)用戶
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
[root@master ~]# kubectl apply -f tiller-rbac.yaml  
[root@master ~]# helm init --service-account=tiller
#指定剛才創(chuàng)建的授權(quán)用戶初始化helm
[root@master ~]# kubectl get pod -n kube-system | grep tiller
tiller-deploy-8557598fbc-jf85m   0/1     ErrImagePull   0          3m1s
#發(fā)現(xiàn)pod并沒(méi)有運(yùn)行,那是因?yàn)樵損od使用的是Google的鏡像,國(guó)內(nèi)下載不了,需要將鏡像換成國(guó)內(nèi)的鏡像,這里選擇阿里云
[root@master ~]# kubectl edit pod -n kube-system tiller-deploy-8557598fbc-jf85m
#修改spec字段的image指定的鏡像,修改前如下:
    image: gcr.io/kubernetes-helm/tiller:v2.14.3
#修改后如下:
    image: registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3
#修改后,如果沒(méi)有自動(dòng)下載,就想辦法吧,比如說(shuō)在tiller容器所在的節(jié)點(diǎn)手動(dòng)下載下來(lái)鏡像,然后重啟該節(jié)點(diǎn)的kubelet,或重啟該容器
[root@master ~]# kubectl get pod -n kube-system  | grep tiller
tiller-deploy-8557598fbc-jf85m   1/1     Running   0          6m31s
#必須保證tiller的Pod正常運(yùn)行

3)配置Helm倉(cāng)庫(kù)

[root@master ~]# helm repo list   #查看倉(cāng)庫(kù)的詳細(xì)信息
NAME    URL                                             
stable  https://kubernetes-charts.storage.googleapis.com
local   http://127.0.0.1:8879/charts 
#默認(rèn)情況下,倉(cāng)庫(kù)的地址是某歌,國(guó)內(nèi)無(wú)法下載,需要更改為國(guó)內(nèi)的倉(cāng)庫(kù)地址
[root@master ~]# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
#更改為國(guó)內(nèi)阿里云的倉(cāng)庫(kù)地址
[root@master ~]# helm repo list
NAME    URL
stable  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
local   http://127.0.0.1:8879/charts  
#再次查看倉(cāng)庫(kù)地址,可以發(fā)現(xiàn)地址已經(jīng)換成了阿里云的倉(cāng)庫(kù)地址
[root@master ~]# helm repo update       # 更新一下Helm倉(cāng)庫(kù)
[root@master ~]# helm version        #查看helm版本信息
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
#必須保證可以查看出來(lái)client和server,才可正常使用helm

就此Helm就已經(jīng)表示部署成功,可以正常使用!

三、使用helm安裝mysql+Storage Class

1)創(chuàng)建Storage Class

1)部署nfs
[root@master ~]# yum -y install nfs-utils rpcbind
[root@master ~]# mkdir /nfsdata
[root@master ~]# echo "/nfsdata *(rw,no_root_squash,sync)" > /etc/exports
[root@master ~]# systemctl start nfs-server && systemctl start rpcbind
[root@master ~]# showmount -e
Export list for master:
/nfsdata *
2)創(chuàng)建rbac授權(quán)
[root@master ~]# vim rbac-rolebind.yaml
apiVersion: v1                            #創(chuàng)建一個(gè)用于認(rèn)證的服務(wù)賬號(hào)
kind: ServiceAccount
metadata:
  name: nfs-provisioner
---
apiVersion: rbac.authorization.k8s.io/v1        #創(chuàng)建群集規(guī)則
kind: ClusterRole
metadata:
  name: nfs-provisioner-runner
rules:
   -  apiGroups: [""]
      resources: ["persistentvolumes"]
      verbs: ["get", "list", "watch", "create", "delete"]
   -  apiGroups: [""]
      resources: ["persistentvolumeclaims"]
      verbs: ["get", "list", "watch", "update"]
   -  apiGroups: ["storage.k8s.io"]
      resources: ["storageclasses"]
      verbs: ["get", "list", "watch"]
   -  apiGroups: [""]
      resources: ["events"]
      verbs: ["watch", "create", "update", "patch"]
   -  apiGroups: [""]
      resources: ["services", "endpoints"]
      verbs: ["get","create","list", "watch","update"]
   -  apiGroups: ["extensions"]
      resources: ["podsecuritypolicies"]
      resourceNames: ["nfs-provisioner"]
      verbs: ["use"]
---
kind: ClusterRoleBinding                #將服務(wù)認(rèn)證用戶與群集規(guī)則進(jìn)行綁定
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-provisioner
    namespace: default
roleRef:
  kind: ClusterRole
  name: nfs-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
[root@master ~]# kubectl apply -f rbac-rolebind.yaml
3)創(chuàng)建nfs-deployment.資源
[root@master ~]# vim nfs-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nfs-client-provisioner
spec:
  replicas: 1                              #指定副本數(shù)量為1
  strategy:
    type: Recreate                      #指定策略類型為重置
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccount: nfs-provisioner            #指定rbac yaml文件中創(chuàng)建的認(rèn)證用戶賬號(hào)
      containers:
        - name: nfs-client-provisioner
          image: registry.cn-hangzhou.aliyuncs.com/open-ali/nfs-client-provisioner     #使用的鏡像 
          volumeMounts:
            - name: nfs-client-root
              mountPath:  /persistentvolumes             #指定容器內(nèi)掛載的目錄
          env:
            - name: PROVISIONER_NAME           #容器內(nèi)的變量用于指定提供存儲(chǔ)的名稱
              value: lzj-test
            - name: NFS_SERVER                      #容器內(nèi)的變量用于指定nfs服務(wù)的IP地址
              value: 192.168.1.1
            - name: NFS_PATH                       #容器內(nèi)的變量指定nfs服務(wù)器對(duì)應(yīng)的目錄
              value: /nfsdata
      volumes:                                                #指定掛載到容器內(nèi)的nfs的路徑及IP
        - name: nfs-client-root
          nfs:
            server: 192.168.1.1
            path: /nfsdata
[root@master ~]# kubectl apply -f nfs-deployment.yaml
[root@master ~]# kubectl get pod | grep nfs         #確認(rèn)pod運(yùn)行成功
nfs-client-provisioner-7cf975c58b-2hbcm   1/1     Running   0          80s
4)創(chuàng)建Storage Class
[root@master ~]# vim storage-class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: stateful-nfs
provisioner: lzj-test                  #這個(gè)要和nfs-client-provisioner的env環(huán)境變量中的PROVISIONER_NAME的value值對(duì)應(yīng)。
reclaimPolicy: Retain               #指定回收策略為Retain(手動(dòng)釋放)
[root@master ~]# kubectl apply -f storage-class.yaml 
[root@master ~]# kubectl get sc            #確認(rèn)Storage Class創(chuàng)建成功
NAME           PROVISIONER   AGE
stateful-nfs   lzj-test      14s

2)helm部署mysql

[root@master ~]# helm fetch stable/mysql       #將mysql的軟件包下載到本地
[root@master ~]# tar zxf mysql-0.3.5.tgz 
[root@master ~]# vim mysql/values.yaml     +55
  storageClass: "stateful-nfs"                  #去除注釋,并指定剛才創(chuàng)建的Storage Class名稱
[root@master ~]# vim mysql/values.yaml +79
  type: NodePort                                     #默認(rèn)是ClusterIP,可更改為NodePort
[root@master ~]# helm install stable/mysql -f mysql/values.yaml --set mysqlRootPassword=123.com -n test-mysql
#如果修改了values.yaml文件的數(shù)據(jù),創(chuàng)建時(shí)應(yīng)該指定values.yaml文件  
#安裝mysql,并設(shè)置mysql的root密碼為123.com,-n表示指定名稱
[root@master ~]# helm list               #查看已安裝的軟件包
NAME        REVISION    UPDATED                     STATUS      CHART       APP VERSION NAMESPACE
test-mysql  1           Mon Mar  2 15:14:15 2020    DEPLOYED    mysql-0.3.5             default 
[root@master ~]# kubectl get svc | grep test-mysql        #確認(rèn)service類型
test-mysql-mysql   NodePort    10.111.61.171   <none>        3306:30637/TCP   26m
[root@master ~]# kubectl get pv,pvc          #查看PV、PVC是否綁定成功
NAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                      STORAGECLASS   REASON   AGE
persistentvolume/pvc-2d0d5eb7-1023-436d-b931-0a344a3df990   8Gi        RWO            Delete           Bound    default/test-mysql-mysql   stateful-nfs            27m

NAME                                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/test-mysql-mysql   Bound    pvc-2d0d5eb7-1023-436d-b931-0a344a3df990   8Gi        RWO            stateful-nfs   27m
[root@master ~]# kubectl exec -it test-mysql-mysql-dfb9b6944-tz2vd -- mysql -u root -p123.com
#登錄到剛才創(chuàng)建的mysql數(shù)據(jù)庫(kù)中
mysql> 

3)使用helm對(duì)mysql進(jìn)行升級(jí)操作

[root@master ~]# kubectl describe pod test-mysql-mysql-dfb9b6944-tz2vd 
#查看pod的詳細(xì)信息可以看出,該pod所用鏡像為mysql:5.7.14
[root@master ~]# helm upgrade --set imageTag=5.7.15 test-mysql stable/mysql -f mysql/values.yaml 
#對(duì)test-mysql這個(gè)實(shí)例進(jìn)行鏡像的升級(jí),由于更改了service、Storage Class,所以升級(jí)時(shí),也需指定values.yaml文件
[root@master ~]# kubectl get pod | grep test-mysql        #確保升級(jí)之后,pod是正常運(yùn)行的
#注意升級(jí)之后,pod名稱會(huì)發(fā)生變化
test-mysql-mysql-54c7bfdd77-lrzm8         1/1     Running   0          3m11s
[root@master ~]# kubectl describe pod test-mysql-mysql-54c7bfdd77-lrzm8 
#查看pod的詳細(xì)信息,可以看出,鏡像已經(jīng)升級(jí)為mysql:5.7.15

4)使用helm對(duì)mysql進(jìn)行回滾操作

[root@master ~]# helm list                #再次查看實(shí)例,可以發(fā)現(xiàn)“REVISION”字段為2,而初次創(chuàng)建實(shí)例時(shí),該列為1,只要對(duì)該實(shí)例進(jìn)行升級(jí)回滾一次,數(shù)值便會(huì)加1
NAME        REVISION    UPDATED                     STATUS      CHART       APP VERSION NAMESPACE
test-mysql  2           Mon Mar  2 15:48:35 2020    DEPLOYED    mysql-0.3.5             default 
[root@master ~]# helm history test-mysql           #查看該實(shí)例的歷史版本
REVISION    UPDATED                     STATUS      CHART       DESCRIPTION                   
1           Mon Mar  2 15:14:15 2020    SUPERSEDED  mysql-0.3.5 Install complete             
2           Mon Mar  2 15:48:35 2020    DEPLOYED    mysql-0.3.5 Upgrade complete   
[root@master ~]# helm rollback test-mysql 1              #將該實(shí)例回滾到版本1
[root@master ~]# helm list        #再次查看,可以看到“REVISION”的值變成了3
NAME        REVISION    UPDATED                     STATUS      CHART       APP VERSION NAMESPACE
test-mysql  3           Mon Mar  2 15:57:58 2020    DEPLOYED    mysql-0.3.5             default 
[root@master ~]# kubectl get pod | grep test-mysql    #確認(rèn)pod是正常狀態(tài)
#對(duì)pod進(jìn)行回滾操作也會(huì)更改pod的名稱
test-mysql-mysql-dfb9b6944-tj2cr          1/1     Running   1          107s
[root@master ~]# kubectl describe pod test-mysql-mysql-dfb9b6944-tj2cr 
#查看pod的詳細(xì)信息,可以看出,該pod使用的鏡像已經(jīng)回滾到mysql:5.7.14版本

四、部署helm私有倉(cāng)庫(kù)

1)node01節(jié)點(diǎn)運(yùn)行web容器作為私有倉(cāng)庫(kù)

[root@node01 ~]# mkdir -p /var/www/charts
#創(chuàng)建目錄,用于存放charts包
[root@node01 ~]# docker run -d -p 8080:80 -v /var/www:/usr/local/apache2/htdocs httpd

2)master節(jié)點(diǎn)上,創(chuàng)建chart包并打包

[root@master ~]# helm create testchart 
#創(chuàng)建chart包(生成的是目錄),名稱為testchart
[root@master ~]# helm package testchart 
#將剛才生成的目錄進(jìn)行打包,會(huì)在當(dāng)前目錄下生成名為testchart-0.1.0.tgz的包

3)master節(jié)點(diǎn)生成倉(cāng)庫(kù)的index文件

[root@master ~]# mkdir myrepo
[root@master ~]# mv testchart-0.1.0.tgz myrepo/
#創(chuàng)建用于存放chart包的目錄,并將chart包移動(dòng)到該目錄
[root@master ~]# helm repo index myrepo/ --url http://192.168.1.2:8080/charts
#url路徑表示運(yùn)行web容器的節(jié)點(diǎn)IP+端口
[root@master ~]# ls myrepo/
index.yaml  testchart-0.1.0.tgz
#確認(rèn)已經(jīng)生成index.yaml文件
[root@master ~]# scp myrepo/* node01:/var/www/charts
#將生成的index.yaml文件及charts包復(fù)制到web容器所在節(jié)點(diǎn)映射的本地目錄

4)將新repo倉(cāng)庫(kù)添加到helm

[root@master ~]#  helm repo add newrepo http://192.168.1.2:8080/charts
#url是web容器所在的節(jié)點(diǎn)的IP+端口+存放chart包的目錄,并指定倉(cāng)庫(kù)的名稱為newrepo
[root@master ~]# helm repo list
NAME    URL                               
stable  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
local   http://127.0.0.1:8879/charts               
newrepo http://192.168.1.2:8080/charts   
#stable是剛創(chuàng)建helm添加的阿里云的倉(cāng)庫(kù)
#local是本地的緩存
#newrepo是剛剛添加的倉(cāng)庫(kù)名稱(確認(rèn)該倉(cāng)庫(kù)已經(jīng)存在)

配置至此,已經(jīng)可以正常供內(nèi)網(wǎng)環(huán)境使用這個(gè)charts包的私有倉(cāng)庫(kù)了,下面是一些驗(yàn)證。

5)搜索可用的chart包并部署

[root@master ~]# helm search testchart
NAME                CHART VERSION   APP VERSION DESCRIPTION                
local/testchart     0.1.0           1.0         A Helm chart for Kubernetes
newrepo/testchart   0.1.0           1.0         A Helm chart for Kubernetes
#local是本地的緩存,不用理會(huì),可以查看到newrepo提供的testchart包
[root@master ~]# helm install newrepo/testchart -n test-nginx
#既然可以搜索到就表示可以使用chart包創(chuàng)建實(shí)例
[root@master ~]# kubectl get pod | grep test-nginx
test-nginx-testchart-64d8585997-qjjgb     1/1     Running   0          3m54s
#確認(rèn)pod已經(jīng)運(yùn)行成功
[root@master ~]# kubectl describe pod test-nginx-testchart-64d8585997-qjjgb 
#通過(guò)查看pod的詳細(xì)信息,確認(rèn)pod所使用的鏡像

6)更新chart包中所運(yùn)行服務(wù)的鏡像

其實(shí)就是一個(gè)服務(wù)版本升級(jí)的操作,大概思路如下:修改解壓后的charts包目錄下的values.yaml文件為所需的值(values.yaml文件包含的是這個(gè)服務(wù)的值,可以在里面指定鏡像及標(biāo)簽、數(shù)據(jù)持久化的類型等等),修改完成后,再使用下面的命令進(jìn)行升級(jí)操作。

[root@master ~]# helm upgrade -f testchart/values.yaml test-nginx newrepo/testchart
#my-nginx是之前實(shí)例的名稱,可以通過(guò)“helm list”查看實(shí)例名稱
#newrepo/testchart :為自定義倉(cāng)庫(kù)中的chart包
[root@master ~]# kubectl describe pod test-nginx-testchart-6d6984ddd9-gn9sw
#確認(rèn)pod所使用的鏡像已經(jīng)更新

注意

如果使用命令的方式直接進(jìn)行升級(jí),命令執(zhí)行完成不會(huì)報(bào)錯(cuò),但是鏡像并不會(huì)更新,推薦使用更改values.yaml的方式進(jìn)行升級(jí)!

7)再次向newrepo倉(cāng)庫(kù)上傳chart包

[root@master ~]# helm create mychart
[root@master ~]# helm package mychart/
[root@master ~]# mv mychart-0.1.0.tgz myrepo/
[root@master ~]# helm repo index myrepo/ --url http://192.168.1.2:8080/charts
#當(dāng)有新的chart包時(shí),需更新index.yaml文件
[root@master ~]# scp myrepo/* node01:/var/www/charts
[root@master ~]# helm repo update
#如果需要使用則需更新一下本地的倉(cāng)庫(kù)
[root@master ~]# helm search mychart
NAME            CHART VERSION   APP VERSION DESCRIPTION                
local/mychart   0.1.0           1.0         A Helm chart for Kubernetes
newrepo/mychart 0.1.0           1.0         A Helm chart for Kubernetes
#確保新添加的chart包可以被搜索到

五、Helm常用命令

[root@master ~]# helm version        #查看helm版本信息
[root@master ~]# helm list               #查看當(dāng)前安裝的Chart包
[root@master ~]# helm search mysql         #查看與mysql相關(guān)的chart包
[root@master ~]# helm fetch stable/mysql            #將mysql軟件包下載到本地
[root@master ~]# helm inspect stable/mysql       #查看該軟件包的詳細(xì)信息
[root@master ~]# helm install stable/mysql -n mysql        #安裝指定的mysql軟件包,并命名為mysql
[root@master ~]# helm status mysql                 #查看mysql的狀態(tài)信息
[root@master ~]# helm delete --purge mysql       #刪除mysql,并將本地的緩存也進(jìn)行刪除
[root@master ~]# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
#添加阿里云的repo源
[root@master ~]# helm repo update              #更新repo倉(cāng)庫(kù)資源
[root@master ~]# helm create helm_charts       #創(chuàng)建一個(gè)chart,名稱為helm_charts
[root@master ~]# cd helm_charts/ && helm lint       #測(cè)試charts語(yǔ)法
[root@master ~]# helm package helm_charts  #打包c(diǎn)harts
[root@master helm_charts]# helm template helm_charts-0.1.0.tgz       #查看該軟件包生成的yaml文件


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI