說明:
- HELM的官方網站:https://helm.sh/,文檔可以切換為中文
- 在Helm2中Tiller 主要用於在 Kubernetes 集群中管理各種應用發布的版本,在 Helm 3 中移除了 Tiller, 版本相關的數據直接存儲在了 Kubernetes 中。所以在Helm中沒有helm init的命令
以下為正文:
根據官網網站,ubuntu下安裝的方式為:
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - sudo apt-get install apt-transport-https --yes echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm
可以通過helm和helm version查看命令
再執行下面腳本讓helm支持命令補全功能(輸入完命令后按Tab鍵就會自動補全)
echo "source <(helm completion bash)" >> ~/.bash_profile
#先添加常用的chart源 helm repo add stable https://kubernetes-charts.storage.googleapis.com helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add aliyuncs https://apphub.aliyuncs.com #查看chart列表 [root@master nginx]# helm repo list NAME URL stable https://kubernetes-charts.storage.googleapis.com incubator https://kubernetes-charts-incubator.storage.googleapis.com bitnami https://charts.bitnami.com/bitnami aliyuncs https://apphub.aliyuncs.com
查找mysql的chart
helm search repo mysql NAME CHART VERSION APP VERSION DESCRIPTION aliyuncs/mysql 6.8.0 8.0.19 Chart to create a Highly available MySQL cluster aliyuncs/mysqldump 2.6.0 2.4.1 A Helm chart to help backup MySQL databases usi... aliyuncs/mysqlha 1.0.0 5.7.13 MySQL cluster with a single master and zero or ... aliyuncs/prometheus-mysql-exporter 0.5.2 v0.11.0 A Helm chart for prometheus mysql exporter with... bitnami/mysql 8.8.12 8.0.27 Chart to create a Highly available MySQL cluster aliyuncs/percona 1.2.0 5.7.17 free, fully compatible, enhanced, open source d... aliyuncs/percona-xtradb-cluster 1.0.3 5.7.19 free, fully compatible, enhanced, open source d... aliyuncs/phpmyadmin 4.2.12 5.0.1 phpMyAdmin is an mysql administration frontend bitnami/phpmyadmin 8.2.18 5.1.1 phpMyAdmin is an mysql administration frontend aliyuncs/mariadb 7.3.9 10.3.22 Fast, reliable, scalable, and easy to use open-... aliyuncs/mariadb-galera 0.8.1 10.4.12 MariaDB Galera is a multi-master database clust... bitnami/mariadb 9.7.0 10.5.12 Fast, reliable, scalable, and easy to use open-... bitnami/mariadb-cluster 1.0.2 10.2.14 DEPRECATED Chart to create a Highly available M... bitnami/mariadb-galera 6.0.3 10.6.4 MariaDB Galera is a multi-master database clust...
下載mysql的chart到本地看看
$ helm pull aliyuncs/mysql --untar $ tree mysql locales-launch: Data of en_US locale not found, generating, please wait... mysql ├── Chart.yaml ├── ci │ └── values-production.yaml ├── files │ └── docker-entrypoint-initdb.d │ └── README.md ├── README.md ├── templates │ ├── _helpers.tpl │ ├── initialization-configmap.yaml │ ├── master-configmap.yaml │ ├── master-statefulset.yaml │ ├── master-svc.yaml │ ├── NOTES.txt │ ├── secrets.yaml │ ├── servicemonitor.yaml │ ├── slave-configmap.yaml │ ├── slave-statefulset.yaml │ └── slave-svc.yaml ├── values-production.yaml └── values.yaml
安裝mysql
$ helm install aliyuncs/mysql --generate-name NAME: mysql-1635754710 # release的名字 LAST DEPLOYED: Mon Nov 1 08:18:30 2021 NAMESPACE: default # namespace默認為default STATUS: deployed # 已經將chart部署到集群 REVISION: 1 TEST SUITE: None NOTES: # NOTES顯示的是release的使用方法 Please be patient while the chart is being deployed Tip: Watch the deployment status using the command: kubectl get pods -w --namespace default Services: echo Master: mysql-1635754710.default.svc.cluster.local:3306 echo Slave: mysql-1635754710-slave.default.svc.cluster.local:3306 Administrator credentials: # 這里告訴你如何獲取mysql的用戶名和密碼 echo Username: root echo Password : $(kubectl get secret --namespace default mysql-1635754710 -o jsonpath="{.data.mysql-root-password}" | base64 --decode) To connect to your database: # 這里告訴你如何連接數據庫 1. Run a pod that you can use as a client: kubectl run mysql-1635754710-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mysql:8.0.19-debian-10-r0 --namespace default --command -- bash 2. To connect to master service (read/write): mysql -h mysql-1635754710.default.svc.cluster.local -uroot -p my_database 3. To connect to slave service (read-only): mysql -h mysql-1635754710-slave.default.svc.cluster.local -uroot -p my_database To upgrade this helm chart: # 這里告訴你如何修改chart的默認配置 1. Obtain the password as described on the 'Administrator credentials' section and set the 'root.password' parameter as shown below: ROOT_PASSWORD=$(kubectl get secret --namespace default mysql-1635754710 -o jsonpath="{.data.mysql-root-password}" | base64 --decode) helm upgrade mysql-1635754710 bitnami/mysql --set root.password=$ROOT_PASSWORD
在 Helm 3 中,則必須主動指定名稱,或者增加 --generate-name 的參數
查看執行結果
kubectl get pods NAME READY STATUS RESTARTS AGE mysql-1635754710-master-0 0/1 Pending 0 3m15s mysql-1635754710-slave-0 0/1 Pending 0 3m15s
Pod是Pending狀態,通過:kubectl describe pod mysql-1635754710-master-0這個命令可以看到是PersistentVolumeClaim相關的問題
查看剛才安裝的release
$ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION mysql-1635840856 default 1 2021-11-02 08:14:17.004198481 +0000 UTC deployed mysql-6.8.0 8.0.19
再卸載
$ helm uninstall mysql-1635840856 release "mysql-1635840856" uninstalled
helm基本操作
helm create xx 創建一個chart helm install chartxx 安裝 helm uninstall chartxx 卸載 helm upgrade chartxx 更新 helm template 渲染 helm list 列出已經deploy的應用 helm reset 卸載helm
參考資料:
