千家信息网

Helm安装和使用

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,一、 Helm简介Helm是Kubernetes首选的包管理工具,在K8S中一个应用可能多个YAML清单文件,当应用很多时这些清单文件就会显得很乱。Helm便能很好解决这种问题,Helm charts
千家信息网最后更新 2024年11月25日Helm安装和使用

一、 Helm简介

Helm是Kubernetes首选的包管理工具,在K8S中一个应用可能多个YAML清单文件,当应用很多时这些清单文件就会显得很乱。Helm便能很好解决这种问题,Helm charts可以为K8S YAML清单文件提供模板语法,而且可以实现应用的一键部署、更新、回滚、删除等等。
Helm只是客户端,服务端是Tiller,具体架构如下:

相关术语:

Helm 命令行客户端。Tiller 服务端,部署在K8S集群中,负责监听Helm的请求、与K8S apiserver交互,实现应用的应用部署、更新等一系列操作。Repository  chart仓库,是一个http/https服务器。Chart 安装包,由一系列的清单文件组成。Release chart部署到K8S后的实例。

二、 软件环境

OS版本:Centos7.5
K8S版本:v1.14.0
Docker版本:18.09.5-ce
Helm版本:v2.13.1

三、 安装配置Helm

1. 二进制方式部署

仓库地址:https://github.com/helm/helm/releases#根据需要下载对应版本wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gztar zxf helm-v2.13.1-linux-amd64.tar.gzmv linux-amd64/helm /usr/local/bin/#helm使用方法helm help

2. 为Tiller配置授权帐号

#当前Kubernetes集群启用了RBAC,为tiller配置指定授权帐号:

cat < tiller.yamlapiVersion: v1kind: ServiceAccountmetadata:  name: tiller  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: tillerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:  - kind: ServiceAccount    name: tiller    namespace: kube-systemEOF

apply后查看创建结果

[root@k8s-master03]# kubectl get serviceaccount tiller -n kube-system -o wideNAME     SECRETS   AGEtiller   1         100s[root@k8s-master03]# kubectl get clusterrolebinding tiller -o wideNAME     AGE   ROLE                        USERS   GROUPS   SERVICEACCOUNTStiller   37s   ClusterRole/cluster-admin                    kube-system/tiller

3. 安装服务端Tiller

#helm init

[root@k8s-master03]# helm init --service-account tiller -i registry.aliyuncs.com/google_containers/tiller:v2.13.1 --skip-refreshCreating /root/.helm Creating /root/.helm/repository Creating /root/.helm/repository/cache Creating /root/.helm/repository/local Creating /root/.helm/plugins Creating /root/.helm/starters Creating /root/.helm/cache/archive Creating /root/.helm/repository/repositories.yaml Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com Adding local repo with URL: http://127.0.0.1:8879/charts $HELM_HOME has been configured at /root/.helm.Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.

helm初始化默认使用gcr.io源,由于国内正常无法访问,所以这里使了用阿里源。
注意tiller版本要和helm版本相同。
#helm init参数说明

--service-account 指定授权帐号-i 指定仓库镜像--skip-refresh 禁止Tiller更新索引,一般用于离线安装--node-selectors 选择节点标签,将Tiller pod部署在指定节点上--override 更改Tiller deployment属性值--output 跳过安装,并输出到json或yaml格式的清单文件中,可以用于kubectl手工安装,该选项类似于kubectl的-dry-run

#查看创建pod

[root@k8s-master03 ~]# kubectl get pods -n kube-system -l name=tiller                    NAME                            READY   STATUS    RESTARTS   AGEtiller-deploy-96f5d9ff4-ctswl   1/1     Running   0          45m

四、 使用Helm

#创建本地chart,会在本地生成一个文件夹,里面包含chart所需的所有文件helm create chart名称 选项 #helm仓库增删改查helm repo addhelm repo listhelm repo lremovehelm repo update#从仓库中查找可用的chart,如果不指定将列出所有的charthelm searchhelm search mysql#查看chart的详细信息helm inspect chart名称#将仓库中的chart下载到本地保存为tar包helm fetch chart名称#从chart安装应用helm install chart名称 选项#查看当前集群中部署的releasehelm list#查看release的状态helm status release名称#查看release历史版本helm history release名称#升级releasehelm upgrade release名称 chart名称 选项#回滚releasehelm rollback release名称 版本号 选项#删除releasehelm delete release名称 选项

参考:
helm安装
https://helm.sh/docs/using_helm/#installing-helm
https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/ha-install/helm-rancher/tcp-l4/helm-install/
helm命令详解
https://helm.sh/docs/helm/

0