回覆列表
  • 1 # Windows軟體大神

    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來進行檢視;

  • 中秋節和大豐收的關聯?
  • 八一男籃球員薪水多少?球隊內部問題頻出,是因為錢嗎?你怎麼評價?