一、安装Helm客户端

  在github上的helm项目下选择对应平台的二进制包并下载,此处以MacOS为例:

# 下载
wget https://get.helm.sh/helm-v3.12.3-darwin-amd64.tar.gz

# 解压
tar zxvf helm-v3.12.3-darwin-amd64.tar.gz

# 加执行权限
chmod +x helm

# 将二进制移动到path下
mv helm /usr/local/bin/

验证安装结果

helm version

能够查看到版本信息,即安装成功 

安装OpenTelemetry监控k8s集群_Drupal

二、helm简单使用

2.1 简介

  Helm直接与Kubernetes API服务器交互,因此,Helm需要能够连接到Kubernetes集群。helm通过读取kubectl使用的相同配置文件来自动完成与api server的连接。helm会首先尝试通过读取环境变量$KUBECONFIG来查找此信息,如果没有设置此环境变量,它将在与kubectl相同的默认位置查找,例如在linux和macos上的$HOME/.kube/config。

  我们将从下面流程开始:

1. 添加chart存储库

2. 查找要安装的chart

3. 安装helm chart

4. 查看安装内容列表

5. 升级安装

6. 删除安装

注:helm chart是一个单独的软件包,可以安装到Kubernetes集群中。

2.2 添加chart存储库

  使用helm repo add命令添加chart,例如:

% helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories

验证bitnami存储库是否存在

% helm repo list
NAME    	URL
jetstack	https://charts.jetstack.io
bitnami 	https://charts.bitnami.com/bitnami

2.3 搜索chart存储库

% helm search repo drupal
NAME          	CHART VERSION	APP VERSION	DESCRIPTION
bitnami/drupal	15.1.3       	10.1.3     	Drupal is one of the most versatile open source...

默认情况下,helm尝试安装chart的最新稳定版本,但是你可以覆盖此行为并安装chart的特定版本,因此也可以需要先查看chart的确切版本:

% helm search repo drupal --versions
NAME          	CHART VERSION	APP VERSION	DESCRIPTION
bitnami/drupal	15.1.3       	10.1.3     	Drupal is one of the most versatile open source...
bitnami/drupal	15.1.2       	10.1.2     	Drupal is one of the most versatile open source...
bitnami/drupal	15.1.1       	10.1.2     	Drupal is one of the most versatile open source...
bitnami/drupal	15.1.0       	10.1.2     	Drupal is one of the most versatile open source...
bitnami/drupal	15.0.4       	10.1.2     	Drupal is one of the most versatile open source...
bitnami/drupal	15.0.3       	10.1.2     	Drupal is one of the most versatile open source...
bitnami/drupal	15.0.2       	10.1.2     	Drupal is one of the most versatile open source...
bitnami/drupal	15.0.1       	10.1.2     	Drupal is one of the most versatile open source...

2.4 安装程序包

  在helm中安装chart至少需要两条信息:安装的名称和要安装的chart。helm需要一种方法来区分同一chart的不同实例,因此,chart的installation是chart的一个特定实例,一个chart可能包含多个installation。当我们运行helm install命令时,需要给它指定一个installation名和chart名。示例如下:

% helm install mysite bitnami/drupal
NAME: mysite
LAST DEPLOYED: Tue Sep 19 16:01:52 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: drupal
CHART VERSION: 15.1.3
APP VERSION: 10.1.3** Please be patient while the chart is being deployed **

1. Get the Drupal URL:

  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        Watch the status with: 'kubectl get svc --namespace default -w mysite-drupal'

  export SERVICE_IP=$(kubectl get svc --namespace default mysite-drupal --template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
  echo "Drupal URL: http://$SERVICE_IP/"

2. Get your Drupal login credentials by running:

  echo Username: user
  echo Password: $(kubectl get secret --namespace default mysite-drupal -o jsonpath="{.data.drupal-password}" | base64 -d)

上面创建了bitnami/drupal chart的一个实例,并将这个实例命名为mysite。

2.5 列出你的安装

% helm list
NAME  	NAMESPACE	REVISION	UPDATED                            	STATUS  	CHART        	APP VERSION
mysite	default  	1       	2023-09-19 16:01:52.20696 +0800 CST	deployed	drupal-15.1.3	10.1.3

2.6 升级安装

升级到指定版本

helm upgrade mysite bitnami/drupal --version 6.2.22

2.7 卸载安装

% helm uninstall mysite
release "mysite" uninstalled

三、总结

  helm是一个非常强大的k8s包管理工具,可以很方便的帮助我们在k8s集群中部署和管理应用,本文简单介绍了helm的入门使用,后续将介绍helm的一些高级用法。