k8s学习--chart包开发(创建chart包)

文章目录

  • chart包
  • 应用
    • 环境
      • 一、安装helm客户端工具
      • 二、chart包目录结构
      • 三、创建不可配置的chart
        • 1.创建目录和chart.yaml
        • 2.创建deployment.yaml
        • 3.创建service.yaml
        • 4.使用chart安装应用
        • 5.查看和验证
      • 四、创建可配置的Chart
        • 1.官方的预定义变量
        • 2.新增values.yaml文件
        • 3.配置deploy引用values的值
        • 4.测试
        • 5.将Chart包进行打包
        • 6.使用Chart安装
  • 总结


chart包

本次将创建两种chart包分别是可配置和不可配置chart包

可配置chart包和不可配置chart包在特性和使用场景上有显著区别。以下是两者的特点:
可配置chart包

特点
高度灵活: 用户可以通过各种参数和选项来自定义图表的外观和行为,包括颜色、样式、标注、轴标签等。
丰富的功能: 通常提供广泛的图表类型和高级特性,如交互式图表、动态数据更新、多维数据展示等。
复杂的API: 由于功能丰富,这类包的API可能较为复杂,需要用户花时间学习和理解。
适应性强: 适用于需要精细控制和自定义的场景,特别是需要符合品牌或设计标准的项目。

示例
Matplotlib (Python): 提供极高的自定义能力,可以控制几乎所有图表元素。
D3.js (JavaScript): 非常灵活和强大,适用于创建复杂的交互式数据可视化。
Plotly (Python, JavaScript): 支持交互式图表,并提供丰富的配置选项。

不可配置chart包

特点
易于使用: API简单,通常提供默认的图表样式和设置,用户可以快速生成图表。
快速实现: 由于无需过多配置,生成图表的过程更快,适合快速展示数据。
有限的自定义: 提供的自定义选项较少,图表外观和行为更多依赖于包的默认设置。
适用性较窄: 适用于需要快速生成基本图表的场景,特别是无需复杂自定义的项目。

示例
Seaborn (Python): 在Matplotlib基础上封装了默认的样式和主题,适合快速生成统计图表。
Google Charts (JavaScript): 提供一系列易于使用的图表,适合简单的可视化需求。
Chart.js (JavaScript): 虽然提供了一些自定义选项,但相较于D3.js等,更注重易用性和快速实现。

选择指南
如果项目需要高水平的定制和控制,应选择可配置chart包。
如果项目时间紧张或需求较为简单,应选择不可配置chart包,以便快速实现。

应用

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G

版本 centos7.9
已部署k8s-1.27

一、安装helm客户端工具

具体命令解释请看,这里不再过多描述
链接: k8s学习–helm的详细解释及安装和常用命令

wget https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz
tar xf helm-v3.13.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/
helm version
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm repo list

二、chart包目录结构

首先了解一下包的目录结构

创建一个新的chart并查看目录结构

helm create test
tree test

在这里插入图片描述
下载一个chart,并查看目录

helm pull stable/mysql
tar xf mysql-1.6.9.tgz
ls mysql

在这里插入图片描述

ls -l mysql/templates/

在这里插入图片描述
文件说明

文件说明
Chart.yaml用于描述Chart的基本信息;helm show chart stable/mysql命令查看的内容就是此文件内容
values.yamlChart的默认配置文件;helm show values stable/mysql命令查看的内容就是此文件内容
README.md[可选]当前Chart的介绍
LICENS[可选] 协议
requirements.yaml[可选] 用于存放当前Chart依赖的其它Chart的说明文件
charts/[可选]: 该目录中放置当前Chart依赖的其它Chart
templates/[可选]:部署文件模版目录

三、创建不可配置的chart

1.创建目录和chart.yaml

chart.yaml用于描述基本信息

mkdir -p /helm/nginx/templates
cd /helm/nginx/
vim Chart.yaml
name: helm-nginx
version; 1.0.0
apiVersion: v1
appVersion: "1.0"
description: A helm chart for kubernetes
2.创建deployment.yaml
vim templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: helm-nginx
spec:replicas: 1                               selector:matchLabels:app: helm-nginxtemplate:metadata:labels:app: helm-nginxspec:containers:- name: helm-nginximage: nginx:1.20imagePullPolicy: IfNotPresent
3.创建service.yaml
apiVersion: v1
kind: Service
metadata:name: helm-nginx
spec:selector:app: helm-nginxports:- port: 80targetPort: 80protocol: TCP
4.使用chart安装应用
helm install /helm/nginx --generate-name

在这里插入图片描述

5.查看和验证
helm ls

在这里插入图片描述

kubectl get pods,service

在这里插入图片描述

curl 10.106.176.236

可以看到网页内容
在这里插入图片描述

四、创建可配置的Chart

1.官方的预定义变量

Release 相关变量
Release.Name:Release 的名称。
Release.Time:Release 创建的时间。
Release.Namespace:Release 安装的命名空间。
Release.Service:Release 所使用的 Helm 服务(一般是 Helm)。
Release.IsUpgrade:布尔值,表示是否是一次升级操作。
Release.IsInstall:布尔值,表示是否是一次安装操作。

Chart 相关变量
Chart.Name:Chart 的名称。
Chart.Version:Chart 的版本。
Chart.AppVersion:Chart 应用程序的版本。
Chart.Description:Chart 的描述信息。

Values 相关变量
Values:包含用户提供的所有值的对象,可以通过 Values. 访问特定的值。

Files 相关变量
Files:访问 Chart 文件的方法,支持如下操作:
Files.Get:获取特定文件的内容。
Files.GetBytes:以字节数组形式获取文件内容。

Capabilities 相关变量
Capabilities.KubeVersion:Kubernetes 集群的版本信息。
Capabilities.HelmVersion:Helm 的版本信息。
Capabilities.APIVersions:支持的 API 版本集合。

Template 相关变量
Template.Name:当前模板的名称。

2.新增values.yaml文件

为了避免影响,先删除上个chart
注:不要删除文件

helm ls
helm uninstall nginx-1718691772

然后确定位置

pwd

在这里插入图片描述

vim values.yaml
image:repository: nginxtag: '1.20'
replicas: 2
3.配置deploy引用values的值
vim templates/deployment.yaml

更改为

apiVersion: apps/v1
kind: Deployment
metadata:name: helm-nginx
spec:replicas: {{ .Values.replicas }}selector:matchLabels:app: helm-nginxtemplate:metadata:labels:app: helm-nginxspec:containers:- name: helm-nginximage: {{ .Values.image.repository }}:{{ .Values.image.tag }}imagePullPolicy: IfNotPresent
4.测试

(1)直接应用测试
deployment.yaml将直接使用values.yaml中的配置

helm install helm-nginx-new /helm/nginx

在这里插入图片描述

kubectl get pods

在这里插入图片描述

(2)通过命令行设置变量后干运行测试
通过在命令行设置变量为deployment.yaml赋值,使用–set选项,使用–dry-run选项来打印出生成的清单文件内容,而不执行部署

helm uninstall helm-nginx-new
helm install helm-nginx --set replicas=3 /helm/nginx/ --dry-run

可以看到传参成功了
replicas
image 处
在这里插入图片描述
在这里插入图片描述

helm install helm-nginx --set replicas=3 /helm/nginx

在这里插入图片描述

helm ls

在这里插入图片描述

kubectl get all

在这里插入图片描述

5.将Chart包进行打包

将chart打包成一个压缩文件,便于存储与分享。

helm package .
ls

在这里插入图片描述
打包出mychart-0.1.0.tgz文件

6.使用Chart安装

删除之前的helm-nginx实例

helm ls
helm uninstall helm-nginx

安装

helm install helm-nginx2 helm-nginx-1.0.0.tgz 

在这里插入图片描述

kubectl get all

在这里插入图片描述

总结

创建 Helm Chart 包的过程涉及到理解 Helm 的基本概念、目录结构、模板语法和一些常见的 Helm 操作命令。通过以上步骤和示例,你应该能够创建和管理自己的 Helm Chart,以便在 Kubernetes 中管理应用程序。

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

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

相关文章

网络安全协议

1. 概述 1.1 网络安全需求 五种需求: 机密性:防止数据未授权公开,让消息对无关听众保密 完整性:防止数据被篡改 可控性:限制对网络资源(硬件和软件)和数据(存储和通信&#xff0…

【C++:哈希】

目录 哈希概念 哈希冲突 如何解决哈希冲突? 闭散列 开散列/哈希桶(链地址法) 负载因子 哈希概念 哈希: 一种高效用来搜索的数据结构。哈希利用某一种函数使元素的存储位置与它的关键码之间建立一个映射关系,方便…

SpringBoot+Vue 数据的批量导入和导出

导出 总结了三种导出数据为表格的情况,直接上代码!! 整体导出 后端接口: // 批量导出数据GetMapping("/export")public void exportDate(HttpServletResponse response) throws IOException {ExcelWriter writer…

前端axios发送请求如何导出excel文件?

// 导出方法 function down(){let reqUrl import.meta.env.BASE_URL /api/AboutView/downLoad?aboutTypeadmin_temp;let _token sessionStorage.get(token).replace(/\"/g, "");let xhr new XMLHttpRequest();xhr.open("get", reqUrl, true);xhr…

计算机网络 交换机的安全配置

一、理论知识 1.交换机端口安全功能介绍 交换机端口安全功能是针对交换机端口进行安全属性的配置,以控制用户的安全接入。主要包括以下两种配置项: ①限制交换机端口的最大连接数:控制交换机端口连接的主机数量;防止用户进行恶…

Java常用类--String类--上

String类 String类介绍 (1)创建的每个字符串实际上都是String类的对象。即使是字符串字面值实际上也是String对象。 (2)String类型的对象是不可变的;一旦创建了一个String对象,其内容就不能再改变。即&a…

【华为OD机试】Linux发行版的数量(C++ Java JavaScript Python )

题目 题目描述 Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。 发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有…

kafka基础概念

目录 1、kafka简介 2、kafka使用场景 3、kafka基础概念 3.1、消息 3.1.1、消息构成详解 3.1.2、消息存储设计 3.2、topic 3.3、partition 3.4、offset 3.5、replication 3.5.1、replication简介 3.5.2、副本角色 3.5.3、副本类型 3.5.3.1、副本类型简介 3.5.3.2、…

30分钟学习如何搭建扩散模型的运行环境【pytorch版】【B站免费视频教程!】【解决环境搭建问题】

30分钟学习如何搭建扩散模型的运行环境【B站免费视频教程!】【解决环境搭建问题】 动手学习扩散模型 点击以下链接即可进入学习: B站免费视频教程环境配置安装(配套讲解文档) 视频 讲解主要内容 一、环境设置 1.本地安装&…

用Python设置Excel工作表网格线的隐藏与显示

Excel表格界面的直观性很大程度上得益于表格中的网格线设计,这些线条帮助用户精确对齐数据,清晰划分单元格。网格线是Excel界面中默认显示的辅助线,用于辅助定位,与单元格边框不痛,不影响打印输出。然而,在…

fyne的对话框

对话框 import "fyne.io/fyne/v2/dialog"dialog包 定义了应用程序GUI的标准对话框窗口。 NewError NewError()为应用程序错误在指定的窗口上创建一个对话框。该消息是从提供的错误中提取的(不应为nil)。创建后,您应该调用Show()…

gpu测试渲染网站有哪些?免费GPU渲染平台介绍

GPU作为渲染领域的核心硬件,对于提高渲染速度和质量起着决定性作用。尽管购买高性能GPU的成本相对较高,但是通过GPU云渲染平台,用户可以以较低的成本享受到高效渲染服务的便利。现在,探索一些提供免费试用的GPU云渲染服务网站&…

深入理解DB2中的日志管理与监控:SYSIBMADM.LOG_UTILIZATION和SYSIBMADM.SNAPDB视图

深入理解DB2中的日志管理与监控:SYSIBMADM.LOG_UTILIZATION和SYSIBMADM.SNAPDB视图 DB2是一个强大的关系数据库管理系统,日志管理和监控是其运维管理的重要组成部分。本文将深入探讨两个关键的系统管理视图:SYSIBMADM.LOG_UTILIZATION 和 SY…

怎么查找企业的经营动态信息?

很多人都会查询企业的经营动态,比如很多投资者会关注企业的财务状况,市场战略,经营决策等信息;职场上也需要了解竞争对手和合作伙伴的相关经营动态,新品发布,技术专利申请等等。还有一些行业研究人员需要了…

Qt源码阅读笔记:初步了解QtCore模块目录结构

Qt框架是一个跨平台的C应用程序框架,广泛用于开发图形用户界面程序以及用于无界面后台操作的工具和服务器。它由多个模块组成,其中QtCore模块提供了核心的非GUI功能。 QtCore 提供了元对象系统,扩展了c 在元对象系统的基础上,qt又…

14、电科院FTU检测标准学习笔记-录波功能2

作者简介: 本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验 在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验 ———————————————————…

光猫BOB 功率调测误差分析与校验指南

DDM(Digital Diagnostic Monitoring)数字诊断监控技术,是光模块中使用的技术,以便用户能够监控光模块的实时参数。这些参数包括工作温度、工作电压、工作电流、发射和接收光功率等,还可以显示模块的常规波长、速率、传…

工控机和电脑一直ping不通

问题 工控机和电脑通过网线直连,电脑端是USB-网口转换器,一直互相ping不通,反复确认两端的IP地址、子网掩码及路由配置是对的。 原因 具体原因不明。 解决办法 但是通过将电脑端网卡的速度和模式属性由原来的“自动检测”修改为“100 Mb…

KaTeX数学公式语法手册

文章目录 基础数学符号根号与对数求和与积分矩阵与行列式特殊符号与希腊字母基本算术运算与分数上标与下标求和与积矩阵与向量括号与大括号微积分符号希腊字母特殊函数括号与大括号分段函数、案例与对齐层叠与叠加更多高级用法 借鉴的文档: KaTeX 支持大部分 LaTeX 数学模式中的…

iptables规则生成脚本

清除防火墙规则,以实际情况为准 iptables -F && iptables -X && iptables -Z 自动生成iptables规则脚本,针对于k8s的nodeport端口需要同时drop容器内端口和映射端口,同时如果k8s master集群是高可用需要3个节点都设置防火墙…