第24章:Kubernetes Helm Introduction

目录

    • 1. Helm简介
    • 2. Helm Charts文件(.tgz)组成
    • 3. Helm核心术语:
    • 4. Helm常用命令:
    • 5. DIY简单Helm Charts
    • 参考链接

1. Helm简介

Helm用于管理Kubernetes应用程序,Helm Charts可以用于定义、安装和升级最复杂的Kubernetes应用程序。
具体来说,Helm是一个命令行工具Tiller的客户端,为应用程序部署时所依赖的所有配置清单文件chart(注意并不包含镜像文件),包含模板templates(一般包含config、deployment、networkpolicy、rbac、service-account、secret和svc等,类似ansible的playbook)和values文件等提供仓库服务,在命令操作方面跟kubectl类似(但Helm需要先经过Tiller之后才是api server),在仓库服务方面跟原Linux系统中的yum类似,在实际使用中,需要现将charts下载到服务器本地,在Kubernetes集群中实例化部署(赋值)之后,就变为Release。

2. Helm Charts文件(.tgz)组成

如WordPress:

wordpress/Chart.yaml          # A YAML file containing information about the chartLICENSE             # OPTIONAL: A plain text file containing the license for the chartREADME.md           # OPTIONAL: A human-readable README filevalues.yaml         # The default configuration values for this chartvalues.schema.json  # OPTIONAL: A JSON Schema for imposing a structure on the values.yaml filecharts/             # A directory containing any charts upon which this chart depends.crds/               # Custom Resource Definitionstemplates/          # A directory of templates that, when combined with values,# will generate valid Kubernetes manifest files.templates/NOTES.txt # OPTIONAL: A plain text file containing short usage notes

如Redis:
在这里插入图片描述

如Jenkins:
在这里插入图片描述

Helm v2由Go语言开发,Helm本地客户端和Tiller服务端(建议部署在Kubernetes集群内)组成,两者通过gRPC协议通信;

  • Client——Helm本地客户端,管理本地的chart仓库,并于Tiller服务端交互,主要执行发送chart、实例安装、查询和卸载等操作;
  • Server——Tiller服务端,接收Helm发送的charts,与config(value值文件)合并生成Release文件;(此组件需要Kubernetes的管理权限,一般需要Cluster admin和Clusterrolebing的RBAC。)

补充说明:Helm 2 使用 Tiller 作为集群内的服务端组件,用于管理 Helm 发布和发布历史。然而,Tiller的存在引入了一些安全和权限管理方面的挑战,因此 Helm 社区在 Helm 3 中放弃了对 Tiller 的依赖。Helm 3 的客户端可以直接与 Kubernetes API 通信,而不再需要通过 Tiller 中转,进而简化了 Helm 的架构并提高了安全性和可靠性。

3. Helm核心术语:

  • Chart,一个Helm程序包,包含了在Kubernetes中运行应用创新所需的部署清单,包含依赖关系、资源、定义等,但是不包含镜像;
  • Repository,charts仓库,其实就是一个HTTP/Https服务器;
  • Release,在属性赋值后,某特定chart部署在目标集群上的实例;
Values
Chart
Release

4. Helm常用命令:

  • Release相关:install、uninstall、upgrade/rollback、list、status等;
  • Charts相关:create、fetch/get、inspect、package等;
    如安装Redis:helm install -f myvalues.yaml myredis ./redis
    如查找NGINX:helm search repo nginx
    如卸载mysql:helm uninstall my-release-mysql

注意:早期版本是用delete,最新版本是用uninstall。

参考链接:Helm-Commands

5. DIY简单Helm Charts

第一步:使用命令 helm create RELEASE_NAME,可以创建Charts框架;
如下图所示:
在这里插入图片描述

第二步:使用命令vim values.yaml编辑values中的相关信息,使其满足需求;
第三步:使用命令helm lint PATH [flags]进行语法检查;
第四步:使用命令helm package [CHART_PATH] [...] [flags]进行打包;
第五步:使用命令helm serve打开127.0.0.1:8879端口,用于提供本地仓库服务;
第六步:使用命令helm install --name=RELEASE_NAME ./[CHART_PATH]按照部署制作的服务;
第七步:使用命令helm uninstall RELEASE_NAME [...] [flags]删除之前部署的服务;

参考链接

(1)Helm官网
(2)Helm-Github
(3)Helm-Package-ArtifactHub

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【android开发-14】android中fragment用法详细介绍

1,fragment是什么? Fragment是Android中的一种组件,它在Android 3.0(API级别11)及以后的版本中引入。Fragment可以用来在Activity中添加一个或多个具有自己的用户界面的片段。它们可以与Activity进行交互,并…

Batch Normalization

1.是什么? 批量归一化(Batch Normalization),由Google于2015年提出,是近年来深度学习(DL)领域最重要的进步之一。该方法依靠两次连续的线性变换,希望转化后的数值满足一定的特性&am…

STM32串口通信初探:使用HAL库实现基本功能

在本文中,我们将探索如何使用STM32的HAL库来实现串口通信的基本功能。串口通信是一种常见的外设通信方式,用于在微控制器和其他外部设备之间进行数据传输。在STM32系列微控制器中,HAL库提供了简单且灵活的方法来实现串口通信。我们将重点讨论…

python读取所有sheet内容到另一个文件中

实现效果: 将原excel中的步骤、预期效果列按回车拆成多行数据,其余字段值填充其他数据 实现结果: # This is a sample Python script.# Press ShiftF10 to execute it or replace it with your code. # Press Double Shift to search everyw…

【鸿蒙应用开发】开发环境搭建及IDE安装使用

1.下载安装包 安装包下载地址: 点击跳转下载页面 可以根据自己的操作系统选择对应版本下载。 本文以Windows安装为例,Mac安装方式相同 2. 安装 下载好后,打开安装包,进入安装界面: 点击Next,进入安…

LInux组管理及拓展

目录 一、Linux组管理 (一)、组的概述 1.概述 2.作用 (二)、组操作 1.创建 2.修改 3.删除 4.添加用户 二、用户信息查看 (一)、id (二)、finger (三&#x…

【专题】【中值定理-还原大法】

1)构造辅助函数 2)罗尔定理: 闭区间连续,开区间可导 F(a)F(b) 3)F‘(ξ)0,原命题得证 极限保号性:

ISIS配置以及详解

作者简介:大家好,我是Asshebaby,热爱网工,有网络方面不懂的可以加我一起探讨 :1125069544 个人主页:Asshebaby博客 当前专栏: 网络HCIP内容 特色专栏: 常见的项目配置 本文内容&am…

【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)

前言: 由于c语言的程序编译链接的这块知识点不清楚,回来复习一遍,以便于好理解c知识,我会尽快更新下一篇文章。 目录 1.程序的翻译环境和执行环境 2.翻译环境(编译链接) 编译(编译器&#xf…

C语言分支结构程序之if语句(1)

目录 if语句其一 奇数的判定 if语句其二 对奇数偶数的判断 if语句的结构图 专题 语法结构 结构图的阅读方法 结构图示例 相等运算符 关系运算符 嵌套的if语句 if语句其一 大家的一天都会怎么度过呢?我想应该不会是被设计好的程序那样循规蹈矩,我们…

webpack学习-1.起步

webpack学习-1.起步 1.基础设置2.配置文件的引入3.总结 1.基础设置 首先 webpack是干嘛的呢,用官网的一张图 Webpack 是一个现代的静态模块打包工具。它主要用于将前端应用程序中的各种资源(例如 JavaScript、CSS、图片等)打包成一个或多个…

【杂】解决关于mean(0)理解错误引发的程序bug

一、环境和解释器要一起配置好 invalid syntax 发生你在终端激活了一个环境,但 VSCode 依然使用之前的解释器的情况。 解释器设置影响了 VSCode 中运行 Python 脚本、调试、代码补全等功能的行为。VSCode 会根据你选择的解释器来执行这些操作。 二、关于mean&#x…