k8s之Helm

官方文档: https://helm.sh/zh/docs/intro/using_helm/

 

Helm 帮助您管理 Kubernetes 应用—— Helm Chart,Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。

复杂性管理 ——即使是最复杂的应用,Helm Chart 依然可以描述, 提供使用单点授权的可重复安装应用程序。

易于升级 ——随时随地升级和自定义的钩子消除您升级的痛苦。

分发简单 —— Helm Chart 很容易在公共或私有化服务器上发版,分发和部署站点。

回滚 —— 使用 helm rollback 可以轻松回滚到之前的发布版本。

 

概念:

Chart:

代表Helm包,它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物。

Repository(仓库)

 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。

Release

运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name


安装:

choco.exe install kubernetes-helm

 

 

命令:

# 安装chart
helm install release名称 chart名称
  # 本地-压缩包
helm install release名称 foo-0.1.1.tgz
  # 本地-解压后的chart目录
helm install foo path/to/foo
  # 远程-指定URL helm install foo https://example.com/charts/foo-1.2.3.tgz

# 卸载Release
helm uninstall release名称
  --keep-history: 保留删除记录



# 查看所有已部署的Release
helm list
  --uninstalled: 只会展示使用--keep-history删除的release
  --all: 展示保留的所有release记录, 包括已失效或删除的条目
# 查看release的状态 helm status release名称

# 查看chart中可配置选项 helm show values hellok8s
/hello-helm

# 获取Release中的配置项
helm get values release名称 # 添加新的仓库 helm repo add dev https:
//example.com/dev-charts # 创建模版 helm create hello-helm

# 升级
helm upgrade release名称 Chart名称
  -f: 指定values.yaml文件 // 可以指定多个

# 回滚
helm rollback release名称 1(版本号)
上面这条命令将我们的 happy-panda 回滚到了它最初的版本。release 版本其实是一个增量修订(revision)。
每当发生了一次安装、升级或回滚操作,revision 的值就会加1。第一次 revision 的值永远是1。
我们可以使用 helm history [RELEASE] 命令来查看一个特定 release 的修订版本号。

 

Helm按照以下顺序安装资源:

  • Namespace
  • NetworkPolicy
  • ResourceQuota
  • LimitRange
  • PodSecurityPolicy
  • PodDisruptionBudget
  • ServiceAccount
  • Secret
  • SecretList
  • ConfigMap
  • StorageClass
  • PersistentVolume
  • PersistentVolumeClaim
  • CustomResourceDefinition
  • ClusterRole
  • ClusterRoleList
  • ClusterRoleBinding
  • ClusterRoleBindingList
  • Role
  • RoleList
  • RoleBinding
  • RoleBindingList
  • Service
  • DaemonSet
  • Pod
  • ReplicationController
  • ReplicaSet
  • Deployment
  • HorizontalPodAutoscaler
  • StatefulSet
  • Job
  • CronJob
  • Ingress
  • APIService

Helm 客户端不会等到所有资源都运行才退出。许多 charts 需要大小超过 600M 的 Docker 镜像,可能需要很长时间才能安装到集群中。

 

 

 

相关文档:

 

posted @ 2023-10-08 16:04  X-Wolf  阅读(21)  评论(0编辑  收藏  举报