helm介绍及使用

初识helm

Helm 是 kubernetes 的包管理工具,相当于 linux 环境下的 yum/apg-get 命令。

helm 也是 go 语言开发的

Helm 中的一些概念:

  • helm:命令行客户端工具,主要用于 Kubernetes 应用中的 chart 的创建、打包、发布和管理
  • Chart:helm 程序包,一系列用于描述 k8s 资源相关文件的集合,比方说我们部署 nginx,需要deployment 的 yaml,需要 service 的 yaml,这两个清单文件就是一个 helm 程序包,在 k8s 中把这些yaml 清单文件叫做 chart 图表。
  • vlues.yaml 文件为模板中的文件赋值,可以实现我们自定义安装如果是 chart 开发者需要自定义模板,如果是 chart 使用者只需要修改 values.yaml 即可
  • repository:存放 chart 图表的仓库,提供部署 k8s 应用程序需要的那些 yaml 清单文件
    chart--->通过 values.yaml 这个文件赋值-->生成 release 实例
  • Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在k8s 中创建出真实运行的资源对象

helm 把 kubernetes 资源打包到一个 chart 中,制作并完成各个 chart 和 chart 本身依赖关系并利用chart 仓库实现对外分发,而 helm 还可通过 values.yaml 文件完成可配置的发布,如果 chart 版本更新了,helm 自动支持滚更更新机制,还可以一键回滚,但是不是适合在生产环境使用,除非具有定义自制chart 的能力。

下载地址:Releases · helm/helm · GitHubhttps://github.com/helm/helm/releases下载完成号直接把可执行文件复制到/usr/bin 目录下即可使用

mv helm /usr/bin/
helm version

常见的一些命令

# 查看关联的仓库地址
 helm repo list
# 添加chart仓库地址
 helm repo add aliyuncs https://apphub.aliyuncs.com
# 更新 chart 仓库
helm repo update
# 删除 chart 仓库地址
helm repo remove aliyuncs
# 从指定 chart 仓库地址搜索 chart
helm search repo aliyun


# 搜索chart
helm search repo nfs
# 下载chart
helm pull aliyuncs/nfs-client-provisioner
# 部署chart
helm install aliyuncs/nfs-client-provisioner ./
# 查看发布
helm list
# 删除chart
helm delete aliyuncs/nfs-client-provisioner


# 创建chart
helm create myapp
# 语法检查
helm lint /root/myapp/
# 升级chart
helm upgrade --set service.type="NodePort" myapp .
# 回滚chart
# 查看历史
helm history myapp
# 完成回滚
helm rollback myapp 1
# 打包
helm package /root/myapp/

helm 安装 NFS StorageClass

# 1 添加helm 仓库
 helm repo add aliyuncs https://apphub.aliyuncs.com
# 2 查找nfs helm
helm search repo nfs
# 3 下载 nfs client
 hlem pull aliyuncs/nfs-client-provisioner
# 4 解压文件,修改 values.yaml
tar zxvf nfs-client-provisioner-1.2.8.tgz

cd nfs-client-provisioner

vim values.yaml

replicaCount: 1
strategyType: Recreate

image:
  repository: registry.cn-hangzhou.aliyuncs.com/kubeapps/quay-nfs-client-provisioner
  tag: v3.1.0-k8s1.11
  pullPolicy: IfNotPresent

nfs:
  # 配置nfs服务器参数
  server: 192.168.1.191
  path: /opt/nfs
  mountOptions:

# For creating the StorageClass automatically:

storageClass:
    # 改为true
  create: true

  # Set a provisioner name. If unset, a name will be generated.
  # provisionerName:

  # Set StorageClass as the default StorageClass
  # Ignored if storageClass.create is false
  # 是否设置为默认
  defaultClass: true

# 5 安装运行
helm install  nfs-client-provisioner ./

你可能感兴趣的:(kubernetes,kubernetes,linux,docker)