Kubernetes 包管理工具--helm

简介:

Helm 可以帮助我们管理 Kubernetes 应用程序 - Helm ,Charts 可以定义、安装和升级复杂的 Kubernetes 应用程序,Charts 包很容易创建、版本管理、分享和分布。Helm 对于 Kubernetes 来说就相当于 yum 对于 Centos 来说,对于越来越复杂的 Kubernetes 应用程序来说,如果单纯依靠我们去手动维护应用程序的 YAML 资源清单文件来说,是非常复杂,成本也是巨大的。接下来我们就来了解了 Helm 的使用方法。

一、安装

前提条件:一个可用的kubernetes集群,使用 Helm 的节点上已经配置好可用kubectl访问集群,Helm 其实就是读取的 kubeconfig 文件来访问集群的

Helm V2 版本必须在 Kubernetes 集群中安装一个 Tiller 服务进行通信,这样大大降低了其安全性和可用性,所以在 V3 版本中移除了服务端,这次安装v3.1.0

下载地址:https://github.com/helm/helm/releases

下载到本地解压后,将 helm 二进制包文件移动到任意的 PATH 路径(默认 /usr/local/bin/)

[root@vmlabmaster-dev bin]# helm version
version.BuildInfo{Version:"v3.1.0", GitCommit:"b29d20baf09943e134c2fa5e1e1cab3bf93315fa", GitTreeState:"clean", GoVersion:"go1.13.7"}

看到上面的版本信息证明已经安装成功了

二、helm常用命令

2.1、添加一个 charts 仓库

#添加微软仓库
$ helm repo add stable http://mirror.azure.cn/kubernetes/charts/
"stable" has been added to your repositories

#列出所有可用的仓库
$ helm repo ls
NAME    URL
stable  http://mirror.azure.cn/kubernetes/charts/

#在微软仓库搜索redis
$ helm search repo stable/redis
NAME            CHART VERSION   APP VERSION     DESCRIPTION
stable/redis    10.5.7          5.0.7           DEPRECATED Open source, advanced key-value stor...
stable/redis-ha 4.4.6           5.0.6           DEPRECATED - Highly available Kubernetes implem...

#更新仓库信息
$ helm repo update

#移除某个repo仓库
$ helm repo remove <REPO_NAME>   

2.2、把仓库的包下载到本地

$ helm pull stable/mysql

2.3、安装一个chart

$ helm install t-nginx stable/my-nginx 
NAME: t-nginx
LAST DEPLOYED: Wed Nov 25 15:12:21 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=my-nginx,app.kubernetes.io/instance=t-nginx" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl --namespace default port-forward $POD_NAME 8080:80

#如没有指定release名称,使用 --generate-name 参数随机生成一个release名称

2.4、显示仓库chart信息

$ helm show chart default/my-nginx

apiVersion: v2
appVersion: 1.16.0
description: A Helm chart for Kubernetes
name: my-nginx
type: application
version: 0.1.0

====================================================================================
$ helm show all default/my-nginx
apiVersion: v2
appVersion: 1.16.0
description: A Helm chart for Kubernetes
name: my-nginx
type: application
version: 0.1.0

---
# Default values for my-nginx.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

image:
  repository: nginx
  pullPolicy: IfNotPresent

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
...

2.5、卸载一个chart

$ helm uninstall t-nginx

三、helm安装chart常用操作

3.1、把一个chart目录打包到一个chart归档文件中

#在chart所在文件目录下
[root@master ~ my-nginx]# helm package .
Successfully packaged chart and saved it to: /tmp/my-nginx/my-nginx-0.1.0.tgz

3.2、把chart包上传到chart私有仓库

#上传mychart包
$ curl --data-binary "@my-nginx-0.1.0.tgz" http://localhost:8080/api/charts

3.3、检查chart可能出现的问题

$ helm lint [PATH]

$ helm lint my-nginx/
==> Linting my-nginx/
[INFO] Chart.yaml: icon is recommended

1 chart(s) linted, 0 chart(s) failed

#用来检测chart是不是满足规范

3.4、测试安装输出资源清单

$ helm install my-nginx --dry-run --debug stable/my-nginx
install.go:158: [debug] Original chart version: ""
install.go:175: [debug] CHART PATH: /root/.cache/helm/repository/my-nginx-0.1.0.tgz

NAME: my-nginx
LAST DEPLOYED: Wed Nov 25 15:40:05 2020
NAMESPACE: default
STATUS: pending-install
REVISION: 1
...

#此操作在我们编写chart包时经常用来测试输出后的内容是否符合预期

3.5、获取已安装release清单

$ helm get manifest default-openvpn

---
# Source: openvpn/templates/config-openvpn.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: default-openvpn
  labels:
    app: openvpn
    chart: openvpn-4.2.4
    release: default-openvpn
    heritage: Helm
data:
...

3.6、helm插件操作

helm plugin install:安装一个或多个Helm插件
helm plugin list:获取已安装的Helm插件列表
helm plugin remove:删除一个或多个Helm插件
helm plugin update:更新一个或多个Helm插件

#安装push插件
$ helm plugin install https://github.com/chartmuseum/helm-push
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值