helm的介绍和安装

news2024/12/24 7:49:31

1 helm概述

1.1 资源对象难以管理的问题

helm是k8s资源清单的管理工具,它就像Linux下的包管理器,比如centos的yum,ubuntu的apt

helm:命令行工具,主要用于k8s的chart的创建,打包,发布和管理。

chart:应用描述,一系列用于描述k8s资源相关文件的集合。

release:基于chart的部署实体,一个chart被helm运行后会生成一个release实体。这个release实体会在k8s集群中创建对应的资源对象。

(1)资源清单过多,不容易管理,如何将这些资源清单当成一个整体的服务进行管理?

  • deploy、ds、rs、cm、secret、pv、Pvc、sc

(2)如何实现应用的版本管理,比如发布,回滚到指定版本?

(3)如何实现资源清单文件到高效复用?

github地址: https://github.com/helm/helm/releases

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

2 安装helm

1.2 helm版本区别

在这里插入图片描述

建议选择v3版本。v2需要部署一个名为 Tiller 的服务在集群中,它负责接收用户的指令,管理 Chart 的安装和升级。

Tiller 需要集群级别的权限,因此增加了潜在的安全风险

Helm v3移除了 Tiller,Helm 的客户端直接与 Kubernetes API 交互。

1.3 helm的安装

官方下载地址: https://helm.sh/docs/intro/install/

	4.1 下载helm软件包
wget https://get.helm.sh/helm-v3.15.3-linux-amd64.tar.gz

2 解压软件包,直接把二进制命令放到 /usr/bin 即可
[root@master231 ~]# tar xf helm-v3.15.3-linux-amd64.tar.gz -C /usr/local/bin/  linux-amd64/helm --strip-components=1
[root@master231 ~]# 
[root@master231 ~]# ll /usr/local/bin/helm 
-rwxr-xr-x 1 1001 127 52445336 Jul 11 03:29 /usr/local/bin/helm*
[root@master231 ~]# 

.3 查看帮助信息
[root@master231 ~]# helm help
...
	completion:
        生成命令补全的功能。使用"source <(helm completion bash)"

    create:
        创建一个chart并指定名称。

    dependency:
        管理chart依赖关系。

    env:
        查看当前客户端的helm环境变量信息。

    get:
        下载指定版本的扩展信息。

    help:
        查看帮助信息。

    history:
        获取发布历史记录。

    install:
        安装chart。

    lint:
        检查chart中可能出现的问题。

    list:
        列出releases信息。

    package:
        将chart目录打包到chart存档文件中。

    plugin:
        安装、列出或卸载Helm插件。

    pull:
        从存储库下载chart并将其解包到本地目录。

    repo:
        添加、列出、删除、更新和索引chart存储库。

    rollback:
        将版本回滚到以前的版本。

    search:
        在chart中搜索关键字。

    show:
        显示chart详细信息。

    status:
        显示已有的"RELEASE_NAME"状态。

    template:
        本地渲染模板。

    test:
        运行版本测试。

    uninstall:
        卸载版本。

    upgrade:
        升级版本。

    verify:
        验证给定路径上的chart是否已签名且有效
  
    version:
        查看客户端版本。

4.添加自动补全功能-新手必备

# 仅对当前会话有效,开启自动补全功能 
source <(helm completion bash)
  
# 对新打开的会话生效,开启自动补全功能
helm completion bash > /etc/bash_completion.d/helm

1.4.1 创建一个Chart

[root@master23105-helm]# pwd
/k8s/05-helm
[root@master23105-helm]# helm create zhiyong18-web

[root@master23105-helm]# ll zhiyong18-web/
charts/ 
Chart.yaml
.helmignore  # 包含打包Helm charts时要忽略的模式。说白了,就是用于忽略的文件。
templates/ 
values.yaml 

可以暂时理解为ansible的playbook

  • **charts目录:**用于存放当前 Chart 的依赖,如果当前 Chart 依赖于其他 Chart(例如数据库或共享服务),依赖 Chart 会被放在这个目录中;使用 helm dependency update 下载依赖后,会自动存储在此目录中。目录为空,表明该 Chart 没有定义任何依赖关系

  • **Chart.yaml 文件:**用于定义 Chart 的元数据,包含 Chart 的基本信息,如名称、版本、描述、API 版本等。用于标识 Chart 和管理版本

  • **templates/ 目录:**用于存放 Kubernetes 资源模板,如Kubernetes 资源(如 Deployment、Service、ConfigMap 等)的模板文件

    • 默认情况下,Helm 创建的 Chart 包含一些基本模板:
    • deployment.yaml:用于生成 Deployment 资源
    • service.yaml:用于生成 Service 资源
    • _helpers.tpl:包含模板片段,用于复用逻辑或变量
  • **values.yaml 文件:**用于定义模板中用到的默认变量值,模板文件会通过 .Values 引用 values.yaml 中的值

    • 举例:
    • replicaCount:用于定义 Deployment 的副本数
    • image字段:repository: 容器镜像地址,tag: 镜像版本,pullPolicy: 镜像拉取策略
    • service字段:type:Service 类型,如 ClusterIP、NodePort 等。port:服务暴露的端口

这个语法是不是非常眼熟,没错就是ansible的 .j2语法

[root@master23105-helm]# cat zhiyong18-web/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: {{ include "zhiyong18-web.fullname" . }}
  labels:
    {{- include "zhiyong18-web.labels" . | nindent 4 }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: http
      protocol: TCP
      name: http
  selector:
    {{- include "zhiyong18-web.selectorLabels" . | nindent 4 }}

service的type类型就这几种 clusterIP、NodePort、loadblance、headless…。type: {{ .Values.service.type }}会去如下找对应的值。这样一来修改配置是不是就非常方便了。

[root@master23105-helm]# yy zhiyong18-web/values.yaml |grep -A 3 '^service:'
service:
  type: ClusterIP
  port: 80
ingress:
.。`type: {{ .Values.service.type }}`会去如下找对应的值。这样一来修改配置是不是就非常方便了。

```yaml
[root@master23105-helm]# yy zhiyong18-web/values.yaml |grep -A 3 '^service:'
service:
  type: ClusterIP
  port: 80
ingress:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2264609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI,cursor快速上手思维导图

https://cursor101.com/zh/tutorial/learn-cursor-tab

ESP32S3 使用LVGL驱动LCD屏(ST7789主控)

ESP32S3 使用LVGL驱动LCD屏&#xff08;ST7789主控&#xff09; 目录 1 分析原理图 2 驱动、点亮LCD(ST7789) 2.1 在工程中添加目录、文件 2.2 添加esp_lvgl_port组件 2.3 对工程进行必要的配置 2.4 编写必要代码 3 烧录、验证 1 分析原理图 要使用SOC驱动LCD屏&#…

【hackmyvm】Zday靶机wp

HMVrbash绕过no_root_squash静态编译fogproject 1. 基本信息^toc 这里写目录标题 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描 3. fog project Rce3.1. ssh绕过限制 4. NFS no_root_squash5. bash运行不了怎么办 靶机链接 https://hackmyvm.eu/machines/machine.ph…

neo4j console 报错

项目场景&#xff1a; neo4j 开启失败 问题描述 在终端打开 neo4j 失败打开cmd, 输入: neo4j console 报错 原因分析&#xff1a; 1 可能是没有配置环境变量2 当前脚本的执行策略有问题 解决方案&#xff1a; 解决没有配置环境变量 添加环境变量 在path路径中将变量添加进去…

范德蒙矩阵(Vandermonde 矩阵)简介:意义、用途及编程应用

参考&#xff1a; Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares Stephen Boyd and Lieven Vandenberghe 书的网站: https://web.stanford.edu/~boyd/vmls/ Vandermonde 矩阵简介&#xff1a;意义、用途及编程应用 在数学和计算科学中&a…

编译原理复习---正则表达式+有穷自动机

适用于电子科技大学编译原理期末考试复习。 1. 正则表达式 正则表达式&#xff08;Regular Expression&#xff0c;简称regex或regexp&#xff09;是一种用于描述、匹配和操作文本模式的强大工具。它由一系列字符和特殊符号组成&#xff0c;这些字符和符号定义了一种搜索模式…

CAD跨图纸复制与粘贴怎么操作?教程来了

在过去&#xff0c;图纸的复制粘贴工作大多依赖于电脑完成&#xff0c;手机则因运行内存等硬件限制&#xff0c;难以像电脑那样轻松实现多图同开&#xff0c;以及图纸内容的跨图复制粘贴。为解决这一痛点&#xff0c;CAD看图王手机端推出了跨图复制与粘贴功能&#xff0c;为用户…

算法训练第二十三天|93. 复原 IP 地址 78. 子集 90. 子集 II

93. 复原 IP 地址--分割 题目 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&…

Go怎么做性能优化工具篇之基准测试

一、什么是基准测试&#xff08;Benchmark&#xff09; 在 Go 中&#xff0c;基准测试是通过创建以 Benchmark 开头的函数&#xff0c;并接收一个 *testing.B 类型的参数来实现的。testing.B 提供了控制基准测试执行的接口&#xff0c;比如设置测试执行的次数、记录每次执行的…

【贪吃蛇小游戏 - JavaIDEA】基于Java实现的贪吃蛇小游戏导入IDEA教程

有问题请留言或私信 步骤 下载项目源码&#xff1a;项目源码 解压项目源码到本地 打开IDEA 左上角&#xff1a;文件 → 新建 → 来自现有源代码的项目 找到解压在本地的项目源代码文件&#xff0c;点击确定 选择“从现有项目创建项目”。点击“下一步” 点击下一步&a…

LabVIEW手机屏幕耐冲击测试

开发了一个基于LabVIEW的智能手机屏幕耐冲击测试系统。系统利用LabVIEW软件与高精度传感器&#xff0c;对手机屏幕进行落球冲击试验&#xff0c;以测定其耐冲击性能。这项技术不仅提高了测试的精度和效率&#xff0c;而且对智能手机屏幕的质量控制和改进提供了科学依据。 项目背…

Python + 深度学习从 0 到 1(01 / 99)

希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持&#xff01; ⭐ 深度学习之前&#xff1a;机器学习简史 什么要了解…

FPGA学习(基于小梅哥Xilinx FPGA)学习笔记

相关资源网站&#xff08;小梅哥FPGA&#xff09; https://www.corecourse.cn/forum.php?modviewthread&tid27978 https://www.corecourse.cn/forum.php?modviewthread&tid28730 本篇文章使用的开发板为&#xff1a; 小梅哥 Xilinx FPGA 型号&#xff1a;XC7A35T 芯…

网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析

国内外要闻 Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析 在网络安全的复杂战场中&#xff0c;近期出现了一个值得关注的动态&#xff1a;名为 Rockstar 2FA 的钓鱼即服务&#xff08;PhaaS&#xff09;工具包遭遇变故&#xff0c;意外推动了另一个新生服务 Flo…

aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发

aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发 学习内容&#xff1a; 使用本地EC2中部署docker应用使用ECS的EC2模式进行容器开发使用ECS的Fargate模式进行容器开发 1. 使用本地EC2中部署docker应用 docker整体 这里展示了docker的整体流程。 开发阶段 编写dockerfile…

【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换

文章日期&#xff1a;2024.12.23 使用工具&#xff1a;Python 本章知识&#xff1a;制作一款图片下载器_DOS窗口&#xff08;爬虫专用&#xff09; 文章难度&#xff1a;低等&#xff08;没难度&#xff09; 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要…

关于博客系统的自动化功能测试报告

1.项目背景 基于 SSM 的个人博客系统测试 博客系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;前端主要有四个页面构成:登录页、列表页、详情页以及编辑页&#xff0c;模拟实现了个人博客列表页面&#xff0c;其结合后端实现了以下的…

计算机的错误计算(一百八十九)

摘要 用大模型计算 tan(12.345) . 自变量取弧度。结果保留10位有效数字。不同于前面两节的大模型&#xff0c;本节调用了新的两个大模型。然而&#xff0c;很遗憾&#xff0c;它们给出的答案似乎仍然是“匹配”出来的&#xff0c;不是计算出来的。当然&#xff0c;均是错误的。…

IP地址数据信息和爬虫拦截的关联

IP地址数据信息和爬虫拦截的关联主要涉及到两方面的内容&#xff0c;也就是数据信息和爬虫。IP 地址数据信息的内容丰富&#xff0c;包括所属地域、所属网络运营商、访问时间序列、访问频率等。 从IP地址信息中可以窥见多样的数据&#xff0c;那么我们应该怎么利用IP地址信息来…

springboot+logback学习文档

目录 1、前提说明2、引入依赖、将logback配置文件打到classes下2.1、引入依赖2.2、将logback配置文件打到classes下 3、使用说明3.1、配置文件名称和位置3.2、常规用法3.2.1、property标签&#xff08;普通变量&#xff09;3.2.2、springProperty标签&#xff08;spring变量&am…