首页 > 其他分享 >helm原理及实践

helm原理及实践

时间:2024-08-23 20:47:49浏览次数:13  
标签:nginx 实践 应用程序 chart Helm helm 原理 release

目录

为什么用Helm

它使Kubernetes应用程序的配置、部署和维护变得更加简单、可控和可重复。

优势 描述
模板化配置 Helm 将应用程序的配置参数化,并使用模板引擎将这些参数嵌入到配置文件中。这使得配置更加灵活和可重用。
简化部署 Helm Charts(Helm包的描述文件)将应用程序及其所有依赖关系打包到一个单独的包中,从而简化了应用程序的部署和升级过程。
版本控制 Helm 支持版本控制,在不同环境中轻松部署不同版本的应用程序。这对于开发、测试和生产环境之间的一致性非常重要。
集成便捷 Helm 可与Kubernetes中的其他工具和流程集成,例如持续集成/持续部署(CI/CD)流水线。
可扩展性 Helm可以 创建自定义 Charts 和插件,以满足特定的部署需求。

Helm是什么

简介

Helm是k8s的包管理工具,用于配置和部署复杂的应用程序、微服务和资源。

设计目标

Helm 的设计目标是使Kubernetes应用程序的配置和部署变得更加简单、可控和可重复,同时提供了一种标准的方法来管理和共享应用程序配置。

架构

Helm 3 architecture

Image from: https://developer.ibm.com/blogs/kubernetes-helm-3/

核心概念

核心概念 描述
Chart 一个 Helm 包,包含了用于部署一个应用程序的所有文件、模板和默认配置。Chart 是 Helm 的基本构建块,它可以被分享和重用。
Release 表示一个特定 Chart 的实例,即一个正在运行的应用程序的部署。每个 Release 具有独立的配置和状态,允许同时部署多个相同的 Chart 的不同实例。
Repository 存储 Charts 的仓库,允许用户分享和获取 Charts。Helm 社区维护了官方的 Chart 仓库,同时您也可以创建和维护自己的仓库来分享自定义的 Charts。
Values 用于配置和自定义 Charts 的参数。Values 允许用户将配置值传递给模板,并可以根据不同的环境或需求进行更改,以定制化应用程序的部署。

如何使用

客户端命令使用

# 查看helm帮助命令
$ helm -h
The Kubernetes package manager

Common actions for Helm:

- helm search:    search for charts
- helm pull:      download a chart to your local directory to view
- helm install:   upload the chart to Kubernetes
- helm list:      list releases of charts

...

Usage:
  helm [command]

Available Commands:
  completion  generate autocompletion scripts for the specified shell
  create      create a new chart with the given name
  dependency  manage a chart's dependencies
  env         helm client environment information
  get         download extended information of a named release
  help        Help about any command
  history     fetch release history
  install     install a chart
  lint        examine a chart for possible issues
  list        list releases
  package     package a chart directory into a chart archive
  plugin      install, list, or uninstall Helm plugins
  pull        download a chart from a repository and (optionally) unpack it in local directory
  repo        add, list, remove, update, and index chart repositories
  rollback    roll back a release to a previous revision
  search      search for a keyword in charts
  show        show information of a chart
  status      display the status of the named release
  template    locally render templates
  test        run tests for a release
  uninstall   uninstall a release
  upgrade     upgrade a release
  verify      verify that a chart at the given path has been signed and is valid
  version     print the client version information

Flags:
      --debug                       enable verbose output
  -h, --help                        help for helm
  ...


# 添加helm仓库
helm repo add --username $HELM_REPO_USERNAME --password $HELM_REPO_PASSWORD helm_publish_test $HELM_REPO_ADDR
# 更新本地repo信息
helm repo update
# 推送chart包
curl -F "chart=nginx" -u $HELM_REPO_USERNAME:$HELM_REPO_PASSWORD $HELM_REPO_PUSH_DIR
# 安装chart包
helm install myapp helm_publish_test/<PACKAGE_NAME>
# 创建chart包
helm create mychart
# 搜索chart包
helm search repo nginx
# 列出chart包的所有版本
helm search repo bcs-webhook-server -l --devel # 包含开发包
# 查看release情况,-v 9用于打印调试日志信息(包含具体的API调用情况)
helm list -v 9
# 拉取chart包到本地
helm pull bitnami/nginx
# 查看本地或仓库中chart包的信息
helm show all bitnami/nginx | less
# 查看chart模版渲染后的内容
helm template my-release ./my-chart --values my-values.yaml
# 查看chart release
helm ls
# 获取已安装chart release的信息
helm get all my-nginx|less
# 打包chart,指定版本
helm package mychart --version 3.10.5
# 安装chart包
helm install -f nginx_values.yaml helm_publish_test/nginx

标签:nginx,实践,应用程序,chart,Helm,helm,原理,release
From: https://www.cnblogs.com/fireyun/p/18377065

相关文章

  • ArrayList动态扩容机制(长度可变原理)
    ArrayList底层是数组结构的,数组的默认长度为10。当数组添加满了后,会自动扩容为1.5倍。原理讲解:1.用空参构造函数创建ArrayList集合容器。测试代码:publicclassArrayListDemo{publicstaticvoidmain(String[]args){//创建ArrayList集合容器......
  • 【前端面试】浏览器原理解读
    前端进阶——浏览器篇-CSDN博客浏览器工作原理与Javascript高级(前后端异步)-CSDN博客DOM树的建立过程前端DOM(文档对象模型)数的建立过程,实际上是浏览器解析HTML文档并构建DOM树的过程。这一过程大致可以分为以下几个步骤:1.加载HTML文档当浏览器请求到一个HTML文档时,它首先......
  • 什么是布隆过滤器,实现原理是什么?
    背景介绍在互联网中,我们经常遇到需要在大量数据中判断目标数据是否存在的情况。例如,在网络爬虫中,我们需要判断某个网址是否已经被访问过。为了实现这一功能,通常需要使用一个容器来存储已访问过的网址。如果将这些数据直接存储在磁盘中,每次判断都要进行磁盘查询,这将导致大量的I......
  • 【网络通信系列】10张动图让你秒懂各种常用总线的通信原理
    一、SPI传输二、I²C传输三、UART传输四、红外控制五、串并转换电路六、其他波形动画原创电控知识搬运工这些显示电子系统中信号波形的动图,有助于帮助我们理解信号传输的机理。一、SPI传输▲图1SPI数据传输▲图1.2SPI数据传输(2)▲图1.3SPI时序信......
  • Kubernetes 1.28.2 负载均衡解决方案 MetalLB实践
    MetalLB是一个用于在Kubernetes集群中提供外部IP地址的负载均衡器实现。安装须知:Kubernetesv1.13.0或者更新的版本规划IPv4地址给MetalLB用于分配。当使用BGP操作模式时,你将需要一个或多个能够支持BGP协议的路由器。L2模式下需要各个节点间7946端口(TCP&......
  • 解码“智慧市政”的创新实践与战略意义
    在这个日新月异的信息时代,智慧城市建设已成为全球共识,而“智慧市政”作为其核心组成部分,正以前所未有的速度重塑城市管理和服务模式。智慧市政:定义与价值智慧市政,是指利用先进的信息技术,如地理信息系统(GIS)、物联网(IoT)、大数据分析、人工智能(AI)等,对城市基础设施、......
  • 想知道API接口的真相吗?探究免费API接口的工作原理
    API的全称是“ApplicationProgrammingInterface”,意为“应用程序编程接口”API接口是软件系统中不同组件之间进行交互的一种方式。它定义了不同软件组件之间的通信规范和数据格式,使得这些组件能够相互调用和交换数据。定义与规范:标准化:API接口通过定义一套标准化的规范,确......
  • 深度解析敏捷架构在数字时代的应用:创新理论与实践的融合
    在当今数字化转型的关键时刻,企业面对的最大挑战之一是如何在高速变化的环境中保持灵活性与竞争力。《数字化时代的敏捷架构》深入探讨了敏捷架构的理论基础、实践应用以及其在大规模企业中的成功经验。《数字化时代的敏捷架构》提出的敏捷架构框架(AgileArchitectureFramework......
  • 企业架构与敏捷实践的融合:引领数字化转型的战略指南
    权威出品:全球数字化转型领域的智库在全球数字化转型的大潮中,企业架构与敏捷实践已成为确保企业竞争力的重要手段。而《敏捷架构实践:引领企业迈向高效运营新高度》由全球两大权威机构——TheOpenGroup和AZone联合打造,汇聚了最前沿的理论与实践经验,为企业的数字化转型提供了坚......
  • 一文弄懂 LLM 结构化数据生成原理
    前言目前LLM(LargeLanguageModel)从文本补全到内容创作,都展示出了强大的生成能力。然而通过LLM生成结构化的数据如JSON格式的输出,却仍然是一个有挑战性的任务。生成结构化的数据不仅要求模型输出符合特定的语法规则,还需要确保数据的正确性和一致性。虽然通过prompt......