您好,登錄后才能下訂單哦!
Helm是Kubernetes首選的包管理工具,在K8S中一個應用可能多個YAML清單文件,當應用很多時這些清單文件就會顯得很亂。Helm便能很好解決這種問題,Helm charts可以為K8S YAML清單文件提供模板語法,而且可以實現應用的一鍵部署、更新、回滾、刪除等等。
Helm只是客戶端,服務端是Tiller,具體架構如下:
相關術語:
Helm 命令行客戶端。
Tiller 服務端,部署在K8S集群中,負責監聽Helm的請求、與K8S apiserver交互,實現應用的應用部署、更新等一系列操作。
Repository chart倉庫,是一個http/https服務器。
Chart 安裝包,由一系列的清單文件組成。
Release chart部署到K8S后的實例。
OS版本:Centos7.5
K8S版本:v1.14.0
Docker版本:18.09.5-ce
Helm版本:v2.13.1
倉庫地址:
https://github.com/helm/helm/releases
#根據需要下載對應版本
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz
tar zxf helm-v2.13.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
#helm使用方法
helm help
#當前Kubernetes集群啟用了RBAC,為tiller配置指定授權帳號:
cat <<EOF> tiller.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
EOF
apply后查看創建結果
[root@k8s-master03]# kubectl get serviceaccount tiller -n kube-system -o wide
NAME SECRETS AGE
tiller 1 100s
[root@k8s-master03]# kubectl get clusterrolebinding tiller -o wide
NAME AGE ROLE USERS GROUPS SERVICEACCOUNTS
tiller 37s ClusterRole/cluster-admin kube-system/tiller
#helm init
[root@k8s-master03]# helm init --service-account tiller -i registry.aliyuncs.com/google_containers/tiller:v2.13.1 --skip-refresh
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
helm初始化默認使用gcr.io源,由于國內正常無法訪問,所以這里使了用阿里源。
注意tiller版本要和helm版本相同。
#helm init參數說明
--service-account 指定授權帳號
-i 指定倉庫鏡像
--skip-refresh 禁止Tiller更新索引,一般用于離線安裝
--node-selectors 選擇節點標簽,將Tiller pod部署在指定節點上
--override 更改Tiller deployment屬性值
--output 跳過安裝,并輸出到json或yaml格式的清單文件中,可以用于kubectl手工安裝,該選項類似于kubectl的—dry-run
#查看創建pod
[root@k8s-master03 ~]# kubectl get pods -n kube-system -l name=tiller
NAME READY STATUS RESTARTS AGE
tiller-deploy-96f5d9ff4-ctswl 1/1 Running 0 45m
#創建本地chart,會在本地生成一個文件夾,里面包含chart所需的所有文件
helm create chart名稱 選項
#helm倉庫增刪改查
helm repo add
helm repo list
helm repo lremove
helm repo update
#從倉庫中查找可用的chart,如果不指定將列出所有的chart
helm search
helm search mysql
#查看chart的詳細信息
helm inspect chart名稱
#將倉庫中的chart下載到本地保存為tar包
helm fetch chart名稱
#從chart安裝應用
helm install chart名稱 選項
#查看當前集群中部署的release
helm list
#查看release的狀態
helm status release名稱
#查看release歷史版本
helm history release名稱
#升級release
helm upgrade release名稱 chart名稱 選項
#回滾release
helm rollback release名稱 版本號 選項
#刪除release
helm delete release名稱 選項
參考:
helm安裝
https://helm.sh/docs/using_helm/#installing-helm
https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/ha-install/helm-rancher/tcp-l4/helm-install/
helm命令詳解
https://helm.sh/docs/helm/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。