searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Helm工具介绍与使用

2023-09-12 01:04:41
46
0

Helm 是 Kubernetes 的包管理器,类似于rpm 包管理工具yum。

安装helm步骤也很简单,即只需要下载一个可执行文件并赋予可执行权限即可:

$ chmod 700 get_helm.sh
$ ./get_helm.sh

查看 helm 版本信息:

[root@kvm ~]# helm version
version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"}

使用Helm之前先介绍如下三个概念:

  • Chart

    代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义;

  • Repository(仓库)

    是用来存放和共享 charts 的地方,可以采用harbor来实现;

  • Release

    是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 releaserelease name

在了解了上述这些概念以后,我们就可以这样来解释 Helm:

Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。

如下所示为搜索并安装一个mariadb 应用:

[root@kvm ~]# helm repo list
[root@kvm ~]# helm search repo mariadb
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
aliyun/mariadb          2.1.6           10.1.31         Fast, reliable, scalable, and easy to use open-...
bitnami/mariadb         13.0.3          11.0.3          MariaDB is an open source, community-developed ...
bitnami/mariadb-galera  9.0.2           11.0.3          MariaDB Galera is a multi-primary database clus...
stable/mariadb          2.1.6           10.1.31         Fast, reliable, scalable, and easy to use open-...
bitnami/phpmyadmin      12.0.1          5.2.1           phpMyAdmin is a free software tool written in P...
[root@kvm ~]#
[root@kvm ~]#
[root@kvm ~]# helm install test1 bitnami/mariadb
NAME: test1
LAST DEPLOYED: Fri Sep  8 20:14:16 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: mariadb
CHART VERSION: 13.0.3
APP VERSION: 11.0.3

** Please be patient while the chart is being deployed **

Tip:

  Watch the deployment status using the command: kubectl get pods -w --namespace default -l app.kubernetes.io/instance=test1

Services:

  echo Primary: test1-mariadb.default.svc.cluster.local:3306

Administrator credentials:

  Username: root
  Password : $(kubectl get secret --namespace default test1-mariadb -o jsonpath="{.data.mariadb-root-password}" | base64 -d)

To connect to your database:

  1. Run a pod that you can use as a client:

      kubectl run test1-mariadb-client --rm --tty -i --restart='Never' --image  docker.io/bitnami/mariadb:11.0.3-debian-11-r0 --namespace default --command -- bash

  2. To connect to primary service (read/write):

      mysql -h test1-mariadb.default.svc.cluster.local -uroot -p my_database

To upgrade this helm chart:

  1. Obtain the password as described on the 'Administrator credentials' section and set the 'auth.rootPassword' parameter as shown below:

      ROOT_PASSWORD=$(kubectl get secret --namespace default test1-mariadb -o jsonpath="{.data.mariadb-root-password}" | base64 -d)
      helm upgrade --namespace default test1 oci://registry-1.docker.io/bitnamicharts/mariadb --set auth.rootPassword=$ROOT_PASSWORD
[root@kvm ~]#
[root@kvm ~]#
[root@kvm ~]# helm list
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
test1   default         1               2023-09-08 20:14:16.151539678 +0800 CST deployed        mariadb-13.0.3  11.0.3

如下所示工作负载和服务被成功创建:

[root@kvm ~]# kubectl get service -o wide |grep test1
test1-mariadb   ClusterIP   10.233.19.11   <none>        3306/TCP   2m32s   app.kubernetes.io/component=primary,app.kubernetes.io/instance=test1,app.kubernetes.io/name=mariadb
[root@kvm ~]#
[root@kvm ~]#
[root@kvm ~]# kubectl get pods -o wide |grep test1
test1-mariadb-0   1/1     Running   0          2m38s   10.233.107.38   kvm    <none>           <none>

如果想卸载这个mariadb应用也很简单,只需执行如下步骤即可:

[root@kvm ~]# helm uninstall test1
release "test1" uninstalled
[root@kvm ~]#
[root@kvm ~]#
[root@kvm ~]# helm list
NAME    NAMESPACE       REVISION        UPDATED STATUS  CHART   APP VERSION
[root@kvm ~]#
0条评论
0 / 1000