Helm是Kubernetes的软件包管理器,类似于yum、apt等包管理工具一样,Helm可以轻松的一键式部署出我们想要的应用。
编写Helm有三个主要目标:
1.轻松地实现从“从零到Kubernetes”;
2.提供与操作系统类似的软件包管理系统;
3.强调将应用程序部署到Kubernetes的安全性和可配置性。
ingress-nginx-4.0.17.tgz
,也可以是一个目录ingress-nginx
。[root@k8s-master01 ingress-nginx]# ls
CHANGELOG.md Chart.yaml ci OWNERS README.md README.md.gotmpl templates values.yaml
当一个chart被安装时,它的流程可能是这个样子的:
Helm拥有v2和v3版本,这里就忽略v2了,因为我是用的是v3。
Helm提供了一个名为helm的命令行工具,我们使用它进行操作。
安装helm时要注意一点,helm的版本要匹配kubernetes的版本,如下图:
具体详细版本对应参考:https://helm.sh/docs/topics/version_skew/
详细说明或其他方式安装参考:https://helm.sh/docs/intro/install/官方文档
目前到我安装的时候helm的最新版本为3.8.0,而我的k8s集群版本为1.23.x是完全符合的。
wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz
tar xf helm-v3.8.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
只有一个客户端工具是没法干活的,我们还需要知道它的chart包从哪来,相当于yum安装的软件源。
helm repo add bitnami https://charts.bitnami.com/bitnami
# 我的环境添加的存储库
[root@k8s-master01 ~]# helm repo list
NAME URL
ingress-nginx https://kubernetes.github.io/ingress-nginx
nginx-stable https://helm.nginx.com/stable
bitnami https://charts.bitnami.com/bitnami
helm repo list
[root@k8s-master01 ~]# helm search repo apache
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/apache 9.0.2 2.4.52 Apache HTTP Server is an open-source HTTP serve...
bitnami/airflow 12.0.1 2.2.3 Apache Airflow is a tool to express and execute...
[root@k8s-master01 ~]# helm search hub wordpress
URL CHART VERSION APP VERSION DESCRIPTION
https://artifacthub.io/packages/helm/kube-wordp... 0.1.0 1.1 this is my wordpress package
https://artifacthub.io/packages/helm/bitnami/wo... 13.0.11 5.9.0 WordPress is the world's most popular blogging ...
kubectl create ns mysql
hellm install my-mysql bitnami/mysql -n mysql
说一下这条命令的含义:
安装完可以查看一下是否安装成功:
需要注意的是:
[root@k8s-master01 ~]# helm list -n mysql
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-mysql mysql 1 2022-02-17 14:32:38.423267837 +0800 CST deployed mysql-8.8.23 8.0.28
[root@k8s-master01 ~]# helm status my-mysql -n mysql
[root@k8s-master01 ~]# helm uninstall my-mysql -n mysql
默认安装的配置往往不是我们需要的,那么我们可以将chart包pull下来,然后进行修改参数后再执行。
[root@k8s-master01 ~]# helm pull bitnami/mysql
[root@k8s-master01 ~]# tar xf mysql-8.8.23.tgz -C /temp/
[root@k8s-master01 ~]# cd /temp/mysql/
[root@k8s-master01 mysql]# ls
Chart.lock charts Chart.yaml ci README.md templates values.schema.json values.yaml
values.yaml
文件,这里就不修改了values.yaml
文件,因为你执行的是本地文件,就不用加源地址了[root@k8s-master01 mysql]# helm install mysql-01 -n mysql .
[root@k8s-master01 mysql]# helm upgrade --install mysql-01 -n mysql .
就到这吧,只说一下helm的基本使用。
以后会写chart的使用,自己创建chart等内容。