Helm is the best way to find, share, and use software built forKubernetes.
Helm之於Kubernetes好比yum之於RHEL,或者apt-get之於Ubuntu。Helm使用Chart幫助我們管理應用,Chart就好像RPM一樣,裡面描述了應用及其依賴關係。
主要概念:
Chart:Helm管理的應用部署包,一個結構相對固定的目錄或者tgz壓縮檔案,Chart之間可相互依賴
Release:Chart部署之後的事例,每一次helm install就會生成一個新的release
HELM安裝流程
1. 安裝客戶端工具helm
下載 Helm 2.6.1(注意需要翻牆):
[root@node01 ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.7.0-linux-amd64.tar.gz
我csdn資源也有,
網址:https://download.csdn.net/download/u013289746/10462621
[root@node01 ~]# tar -zxvf helm-v2.7.0-linux-amd64.tgz
[root@node01 ~]# mv linux-amd64/helm /usr/local/bin/helm
[root@node01 ~]# helm version
Client:&version.Version{SemVer:"v2.7.0",GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6",GitTreeState:"clean"}
Error: cannot connect to Tiller
報錯為沒有tiller server,我們接下來安裝tiller;
2. Helm TILLER安裝
Helm Tiller是Helm的server,Tiller有多種安裝方式,比如本地安裝或以pod形式部署到Kubernetes叢集中。本文以pod安裝為例,安裝Tiller的最簡單方式是helm init, 該命令會檢查helm本地環境設定是否正確,helm init會連線kubectl預設連線的kubernetes叢集(可以透過kubectl config view檢視),一旦連線叢集成功,tiller會被安裝到kube-system namespace中
[root@node01 ~]# yum install socat #注意必須在授權之前安裝
[root@node01 ~]#helm init --service-account tiller--skip-refresh
注意由於某些原因需要網路可以訪問gcr.io和kubernetes-charts.storage.googleapis.com,如果無法訪問可以透過helm init –service-accounttiller –tiller-image <your-docker-registry>/tiller:2.7.2 –skip-refresh使用私有映象倉庫中的tiller映象
也可以使用阿里的服務端tiller,並建立阿里的repo(--upgrade能夠保證已經裝上tiller server端的情況下進行安裝)
[root@node01 ~]# kubectl get pod -n kube-system -l app=helmNAME READY STATUS RESTARTS AGEtiller-deploy-587df449fb-c6tzp 1/1Running09m
3. 許可權配置
按照上述方法安裝之後執行helm version,會報許可權的錯誤
解決辦法:許可權方法1:
建立tiller的和
"{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}"許可權方法2Kubernetes RBAC配置
因為我們將tiller部署在Kubernetes 1.8上,Kubernetes APIServer開啟了RBAC訪問控制,所以我們需要建立tiller使用的service account: tiller並分配合適的角色給它。詳細內容可以檢視helm文件中的Role-basedAccess Control。這裡簡單起見直接分配cluster-admin這個叢集內建的ClusterRole給它。
建立rbac-config.yaml檔案:
apiVersion: v1kind:ServiceAccountmetadata: name: tillernamespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind:ClusterRoleBindingmetadata: name: tillerroleRef: apiGroup: rbac.authorization.k8s.io kind:ClusterRole name: cluster-adminsubjects:- kind:ServiceAccount name: tillernamespace: kube-systemkubectl create -f rbac-config.yamlserviceaccount "tiller" createdclusterrolebinding "tiller" created
常見錯誤:
1.an error occurred forwarding 41746 -> 44134: error forwarding port44134 to pod a2976f378ae41750ce35ac9b42d2bd0b2cade3c7c7f8b102a5e2ebf7624be5ef,uid : unable to do port forwarding: socat not found.
解決方案:
yum intall socat
2.helm版本的問題
儘量使用較新的版本
具體helm的用法,可以直接輸入helm –help來進行檢視;
Helm is the best way to find, share, and use software built forKubernetes.
Helm之於Kubernetes好比yum之於RHEL,或者apt-get之於Ubuntu。Helm使用Chart幫助我們管理應用,Chart就好像RPM一樣,裡面描述了應用及其依賴關係。
主要概念:
Chart:Helm管理的應用部署包,一個結構相對固定的目錄或者tgz壓縮檔案,Chart之間可相互依賴
Release:Chart部署之後的事例,每一次helm install就會生成一個新的release
HELM安裝流程
1. 安裝客戶端工具helm
下載 Helm 2.6.1(注意需要翻牆):
[root@node01 ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.7.0-linux-amd64.tar.gz
我csdn資源也有,
網址:https://download.csdn.net/download/u013289746/10462621
[root@node01 ~]# tar -zxvf helm-v2.7.0-linux-amd64.tgz
[root@node01 ~]# mv linux-amd64/helm /usr/local/bin/helm
[root@node01 ~]# helm version
Client:&version.Version{SemVer:"v2.7.0",GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6",GitTreeState:"clean"}
Error: cannot connect to Tiller
報錯為沒有tiller server,我們接下來安裝tiller;
2. Helm TILLER安裝
Helm Tiller是Helm的server,Tiller有多種安裝方式,比如本地安裝或以pod形式部署到Kubernetes叢集中。本文以pod安裝為例,安裝Tiller的最簡單方式是helm init, 該命令會檢查helm本地環境設定是否正確,helm init會連線kubectl預設連線的kubernetes叢集(可以透過kubectl config view檢視),一旦連線叢集成功,tiller會被安裝到kube-system namespace中
[root@node01 ~]# yum install socat #注意必須在授權之前安裝
[root@node01 ~]#helm init --service-account tiller--skip-refresh
注意由於某些原因需要網路可以訪問gcr.io和kubernetes-charts.storage.googleapis.com,如果無法訪問可以透過helm init –service-accounttiller –tiller-image <your-docker-registry>/tiller:2.7.2 –skip-refresh使用私有映象倉庫中的tiller映象
也可以使用阿里的服務端tiller,並建立阿里的repo(--upgrade能夠保證已經裝上tiller server端的情況下進行安裝)
[root@node01 ~]# kubectl get pod -n kube-system -l app=helmNAME READY STATUS RESTARTS AGEtiller-deploy-587df449fb-c6tzp 1/1Running09m
3. 許可權配置
按照上述方法安裝之後執行helm version,會報許可權的錯誤
解決辦法:許可權方法1:
建立tiller的和
"{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}"許可權方法2Kubernetes RBAC配置
因為我們將tiller部署在Kubernetes 1.8上,Kubernetes APIServer開啟了RBAC訪問控制,所以我們需要建立tiller使用的service account: tiller並分配合適的角色給它。詳細內容可以檢視helm文件中的Role-basedAccess Control。這裡簡單起見直接分配cluster-admin這個叢集內建的ClusterRole給它。
建立rbac-config.yaml檔案:
apiVersion: v1kind:ServiceAccountmetadata: name: tillernamespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind:ClusterRoleBindingmetadata: name: tillerroleRef: apiGroup: rbac.authorization.k8s.io kind:ClusterRole name: cluster-adminsubjects:- kind:ServiceAccount name: tillernamespace: kube-systemkubectl create -f rbac-config.yamlserviceaccount "tiller" createdclusterrolebinding "tiller" created
常見錯誤:
1.an error occurred forwarding 41746 -> 44134: error forwarding port44134 to pod a2976f378ae41750ce35ac9b42d2bd0b2cade3c7c7f8b102a5e2ebf7624be5ef,uid : unable to do port forwarding: socat not found.
解決方案:
yum intall socat
2.helm版本的問題
解決方案:
儘量使用較新的版本
具體helm的用法,可以直接輸入helm –help來進行檢視;