HELM的安装与使用

说明:

  1. HELM的官方网站:https://helm.sh/,文档可以切换为中文
  2. 在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 

 

 参考资料:

  1. 官方网站:https://helm.sh/
  2. helm 基本使用

posted on 2021-11-01 15:46  Netsharp  阅读(1741)  评论(0编辑  收藏  举报

导航