K8S学习记录

K8S学习记录 - Helm Kubernetes 包管理器

一、简介

Helm 帮助您管理 Kubernetes 应用程序——Helm Charts 帮助您定义、安装和升级最复杂的 Kubernetes 应用程序。

Helm 可以使用 Charts 启动 Kubernetes 集群,提供可用的工作流:

  • 一个 Redis 集群
  • 一个 Postgres 数据库
  • 一个 HAProxy 边界负载均衡

特性:

  • 查找并使用流行的软件,将其打包为 Helm Charts,以便在 Kubernetes 中运行
  • 以 Helm Charts 的形式共享您自己的应用程序
  • 为您的 Kubernetes 应用程序创建可复制的构建
  • 智能地管理您的 Kubernetes 清单文件
  • 管理 Helm 包的发行版

Chart 是 Kubernetes 的单元。

Chart 是 Helm 的应用打包格式。chart 由一系列文件组成,

这些文件描述了 Kubernetes 部署应用时所需要的资源,比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。

单个的 chart 可以非常简单,只用于部署一个服务,比如 Memcached;chart 也可以很复杂,部署整个应用,比如包含 HTTP Servers、 Database、消息中间件、cache 等。

chart 将这些文件放置在预定义的目录结构中,通常整个 chart 被打成 tar 包,而且标注上版本信息,便于 Helm 部署。

二、基本概念

  Helm 类似于Linux系统下的包管理器,如yum/apt等,可以方便快捷的将之前打包好的 yaml 文件快速部署进 kubernetes 内,方便管理维护。

  • helm:一个命令行下客户端工具,主要用于kubernetes应用chart的创建/打包/发布已经创建和管理和远程Chart仓库。
  • Tiller:helm的服务端,部署于kubernetes内,Tiller接受helm的请求,并根据chart生成kubernetes部署文件(helm称为release),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
  • Chart: helm的软件包,采用tar格式,其中包含运行一个应用所需的所有镜像/依赖/资源定义等,还可能包含kubernetes集群中服务定义
  • Release:在kubernetes中集群中运行的一个Chart实例,在同一个集群上,一个Chart可以安装多次,每次安装均会生成一个新的release。
  • Repository:用于发布和存储Chart的仓库

  helm的作用:像centos7中的yum命令一样,管理软件包,只不过helm这儿管理的是在k8s上安装的各种容器。

  tiller的作用:像centos7的软件仓库一样,简单说类似于/etc/yum.repos.d目录下的xxx.repo。

参考资料:

Helm Kubernetes 包管理器

玩K8S不得不会的HELM

k8s的chart学习(上)

k8s的chart学习(下)

harbor管理 helm-charts

k8s的charts的四种安装方式及helm私有仓库

原文地址:https://www.cnblogs.com/wangwangfei/p/14845204.html