helm入门

helm入门

简介

Helm是一个由CNCF孵化和管理的项目,用于对需要在Kubernetes 上部署的复杂应用进行定义、安装和更新。Helm以Chart的方式对应用软件进行描述,可以方便地创建、版本化、共享和发布复杂的应用软件。

helm3架构

在这里插入图片描述

helm3安装

#github地址
#https://github.com/helm/helm
#本文示例使用的是v3.7.0版本
wget https://get.helm.sh/helm-v3.7.0-linux-amd64.tar.gz
#解压->helm放入PATH一个路径下

helm中三大概念

  • Chart:一个Helm包,其中包含运行一个应用所需要的工具和资源定义,还可能包含Kubernetes集群中的服务定义,类似于Homebrew 中的formula、APT中的dpkg或者Yum中的RPM文件。
  • Release:在Kubernetes集群上运行的一个Chart实例。在同一个 集群上,一个Chart可以被安装多次。例如有一个MySQL Chart,如果想在服务器上运行两个MySQL数据库,就可以基于这个Chart安装两次。 每次安装都会生成新的Release,会有独立的Release名称。
  • Repository:用于存放和共享Chart仓库。 简单来说,Helm整个系统的主要任务就是,在仓库中查找需要的 Chart,然后将Chart以Release的形式安装到Kubernetes集群中。

Helm Chart的使用

下面将使用一个例子展示helm chart的使用。

创建

$ helm create nginx

该命令会创建一个nginx文件目录,tree查看目录结构

$ tree
.
├── charts  #包含chart依赖的其他chart
├── Chart.yaml #包含了chart信息的YAML文件
├── templates #模板目录, 当和values 结合时,可生成有效的Kubernetes manifest文件
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests #测试
│       └── test-connection.yaml
└── values.yaml #chart 默认的配置值

Chart.yaml

$ cat Chart.yaml 
apiVersion: v2 #在heml3中apiVersion必须是v2
name: nginx #chart名字
description: A Helm chart for Kubernetes #chart描述
type: application #chart类型 application(默认)、library
version: 0.1.0 #chart的版本
appVersion: "1.16.0" #应用的版本

values.yaml

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

replicaCount: 1

image:
  repository: nginx
  pullPolicy: IfNotPresent
  # Overrides the image tag whose default is the chart appVersion.
  tag: ""

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

serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {
   }
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

podAnnotations: {
   }

podSecurityContext: {
   }
  # fsGroup: 2000

securityContext: {
   }
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: false
  className: ""
  annotations: {
   }
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

resources: {
   }
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi

autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80
  # targetMemoryUtilizationPercentage: 80

nodeSelector: {
   }

tolerations: []

affinity: {
   }

templates目录下存放了应用编排文件。

  • (_)开头的文件用来存储局部和辅助对象,供其他chart模板使用。模板命令都是嵌入在{ { }}之间的。

    cat _helpers.tpl 
    {
         {
         /*
    Expand the name of the chart.
    */}}
    {
         {
         - define "nginx.name" -}}
    {
         {
         - default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
    {
         {
         - end }}
    
    {
         {
         /*
    Create a default fully qualified app name.
    We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
    If release name contains chart name it will be used as a full name.
    */}}
    {
         {
         - define "nginx.fullname" -}}
    {
         {
         - if .Values.fullnameOverride }}
    {
         {
         - .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
    {
         {
         - else }}
    {
         {
         - $name := default .Chart.Name .Values.nameOverride }}
    {
         {
         - if contains $name .Release.Name }}
    {
         {
         - .Release.Name | trunc 63 
最低0.47元/天 解锁文章
kubernetes-helm详细介绍及使用
qq_27234433的博客
03-03 2164
致读者 完整入门示例请参考:Helm完整入门实战 Helm 本指南介绍了使用 Helm 来管理 Kubernetes 集群上的软件包的基础知识。在这之前,假定您已经 安装了 Helm 客户端。 如果您仅对运行一些快速命令感兴趣,则不妨从 快速入门指南开始。本章包含了 Helm 命令的详细说明,并解释如何使用 Helm。 三大概念 Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebre
Helm入门
weixin_30604651的博客
06-11 196
前言:Helm是GO语言编写的,是管理kubernetes集群中应用程序包的客户端工具。Helm是类似于centos上的yum工具或Ubuntu上的apt-get工具。对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。对于使用者而言,使用Helm后不用需要了解Kubernetes的Yaml语法并编写应用部署文件,可以通过Helm下载并在kuberne...
学习 Helm ,一文弄懂
最新发布
Richardlygo的博客
08-02 939
可以在/templates/*.yaml 文件中定义命名模板也可以在/templates/_helpers.tpl 定义目录说明charts可选目录,可能包含子chartChart.yaml包含chart描述的主文件templatesKubernetes 资源定义为模板的目录定义 chart 模板中的自定义配置的默认值,可以在执行 helm install 或 helm update 的时候覆盖定义打包时要忽略的模式的地方(概念上与 .gitignore 类似)helm lint。
helm 入门
weixin_43423965的博客
07-19 931
helm 入门 一、helm 是什么 软件的安装,应用部署一直是比较具有挑战性的工作。在计算机发展过程中为了简化应用的部署,先后出现了软件包管理系统(yum/apt-get),一键安装脚本,批量执行工具ansible/salt,二进制应用包等。那么在k8s之上部署应用我们需要哪些步骤,使用哪些命令呢? A、kubectl create --name test01 --image centos 使...
034 helm入门.mp4
05-07
034 helm入门.mp4
Helm入门+部署mysql
hjyhjy0的博客
11-14 1915
什么是 Helm Helm 为团队提供了在 Kubernetes 内部创建、安装和管理应用程序时需要协作的工具。 有了 Helm,开发者可以: 1.查找要安装和使用的预打包软件(Chart); 2.轻松创建和托管自己的软件包; 3.将软件包安装到任何 K8s 集群中; 4.查询集群以查看已安装和正在运行的程序包; 5.更新、删除、回滚或查看已安装软件包的历史记录; 一言以蔽之,通过 Helm,你可以轻松在 Kubernetes 中运行应用程序。 Helm 3 以 Helm 2 的核心功能为基础,对 Char
k8s中级篇-Helm安装与入门
mldong的博客
05-12 615
前言 相信对于包管理工具,大家肯定是不陌生的,如:java有maven/gradle、python有pip、nodejs有npm/yarn等,而k8s也有其包管理工具-helm。使用helm我们可以更为方便地将应用发布到k8s集群。 环境 主机名 ip 角色 mldong01 192.168.0.245 master mldong02 192.168.0.54 node01 mldong03 192.168.0.22 node02 三台主机为华为软开云的ECS,CentOS Li
helm-starter-istio:Helm的Istio入门模板
02-16
用于Helm的Istio入门模板。 停止摆弄Istio和Kubernetes YAML并开始构建。 该启动程序设置了使容器第一次在Istio中正确运行所需的一切。 特征 将新服务加入Istio网格的最快方法 简化的Istio入口配置 简化的Istio端口...
helm入门教程
热门推荐
weixin_44121790的博客
08-23 1万+
helm入门教程 1.概述 Helm是k8s的包管理工具,类似Linux系统常用的 apt、yum等包管理工具。 使用helm可以简化k8s应用部署 2.基本概念 Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula、APT 的 dpkg 或者 Yum 的 rpm 文件。 Release:在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Ch
Helm入门操作
jason chen的博客
12-14 5736
目录 1.helm介绍 1.1 helm 组件 1.2 helm 安装 2. kubernetes 资源对象 2.1 Pod 2.2Replication Controller 2.3Deployment 2.4 Service 3 helm 常用指令 3.1 添加仓库 3.2 查看所有仓库 3.3 更新仓库,如果向仓库中添加了c...
Helm入门(一篇就够了)
阿甘兄
05-08 2187
Helm快速入门教程
Helm基本介绍及快速入门
拒绝熬夜啊的博客
02-24 4732
Helm基本介绍及快速入门
【Helm 及 Chart 快速入门】01、Helm 基本概念及仓库管理
Stars.Sky 的博客
01-08 1413
Helm 基本概念及仓库管理
helm学习
dingyahui的博客
04-12 1189
Helm 入门学习 概念:helm是什么?Helm 是Kubernetes的包管理器。包管理器类似于在Ubuntu中使用的apt,能快速查找、下载和安装软件包。Helm由客户端组件helm和服务端组件Tiller组成, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的...
3、helm的Chart模板
机器重启员的博客
02-18 2184
Helm最核心的就是模板,即模板化的K8S manifests文件。 它本质上就是一个Go的template模板。Helm在Go template模板的基础上,还会增加很多东西。如一些自定义的元数据信息、扩展的库以及一些类似于编程形式的工作流,例如条件语句、管道等等。这些东西都会使得我们的模板变得更加丰富。 创建chart中的自定义文件 我们自定义yaml文件 cd templates/ rm -...
Helm入门指南:Kubernetes部署利器
快速入门部分通常会介绍如何安装 Helm,包括对不同 Kubernetes 发行版的支持和安装 FAQ,帮助用户解决常见的安装问题。Helm 的安装步骤通常包括设置 Tiller(Helm 的服务器端组件)和 Helm 客户端,并进行基本配置。...
写文章

热门文章

  • Tekton入门 9128
  • helm入门 2145
  • VXLAN原理详解 882
  • flannel-VXLAN模式 782
  • flannel入门实践 103

分类专栏

  • flannel 3篇
  • tekton 1篇
  • helm 1篇

最新评论

  • flannel-VXLAN模式

    CSDN-Ada助手: 恭喜您在博客中分享了有关flannel-VXLAN模式的内容!持续创作非常了不起!我建议您在接下来的博客中,可以深入探讨一些实际应用场景下该模式的优缺点,或者分享一些使用该模式遇到的问题及解决方法,这样能够让读者更加全面地了解和应用这一技术。希望能够看到更多精彩的分享,加油!

  • flannel入门实践

    CSDN-Ada助手: 恭喜您写下了第三篇博客,标题为“flannel入门实践”!看到您不断分享您的经验和知识,我感到非常高兴。您的博客内容一直都很有深度和实用性,对于想要了解flannel的人来说肯定非常有帮助。我希望您能继续保持这种创作的热情和努力,让更多人受益。 在下一篇博客中,或许您可以考虑分享一些flannel的高级用法或者更深入的实践案例,这样可以帮助读者更好地掌握这个主题,并且提供更多的参考和解决方案。不过我也知道,这需要更多的研究和实践,希望这个建议能够为您的创作提供一些启发。再次感谢您的分享,期待您的下一篇博客! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3

  • VXLAN原理详解

    CSDN-Ada助手: 非常感谢您对VXLAN原理的详细解析!作为读者,我真的从您的博客中学到了很多知识。您对VXLAN的深入剖析让我对这个主题有了更清晰的理解。我真的很期待您持续创作下去,分享更多的技术知识和见解。如果可能的话,我希望您能够考虑探讨一下VXLAN在实际网络部署中的应用案例,以便我们更好地将理论知识应用到实践中。再次感谢您的付出,期待您未来的精彩文章! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5

  • helm入门

    阿飞的: 6666

最新文章

  • flannel-VXLAN模式
  • VXLAN原理详解
  • flannel入门实践
2023年3篇
2021年2篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

天下网标王梁山网站优化黑河网站优化推广个人站长优化网站越秀公司网站优化推广福田产品网站优化软件优化网站被惩罚网站关键词优化办法网站优化技巧与网站评估实验报告网站快速排名优化优质网站微商平台微信优化山东网站seo优化代理网站关键词排名优化哪个品牌好株洲行者网站优化怎么收费网站优化是什么职业西安网站建设优化公司哪家好网站建设与优化up氵云速捷崇安区网站推广优化网站优化需要同步吗济南家装行业网站优化推广可靠吗不同时期的网站优化丹灶网站优化行业乌兰察布网站优化公司仙桃低成本网站优化公司郑州网站整站优化哪家强榕江县网站优化营销黄山网站优化排名多少钱手机网站优化哪家好厦门市网站优化在线咨询沙田服装网站优化哪些好怎样做一个好看的网站优化月报香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化