【Helm 及 Chart 快速入门】03、Chart 基本介绍

目录

一、Chart 基本介绍

1.1 什么是 Chart 

1.2 Chart ⽬录结构 

1.3 Chart.yaml ⽂件 

二、创建不可配置 Chart 

2.1 创建 Chart 

2.2 安装 Chart 

三、创建可配置的 Chart 

3.1 修改 chart 

3.2 安装 Chart 


 

一、Chart 基本介绍

1.1 什么是 Chart 

        Helm 部署的应⽤都是以 "chart" 包的形式存在的。每个 "chart" 包含了应⽤所有所需要的清单⽂件(诸如 Deployment、Service、Ingress、ConfigMap 等)。这些清单⽂件被保存为模板⽂件。当我们部署应⽤时,这些模板⽂件会被转化为 Kubernetes 资源清单⽂件。 

1.2 Chart ⽬录结构 

        Helm Chart 的⽬录结构是预先定义好的。⽽每个 Chart 都应该⾄少包含 Chart.yaml ⽂件和 templates ⽬录。 

[root@k8s-master1 ~]# helm create app[root@k8s-master1 ~]# tree app
app
├── charts                            # 其他 Chart 的依赖,存储于此⽬录下。
├── Chart.yaml                        # 包含了关于这个 Chart 的基本信息,⽐如chart名称、chart版本、描述等。
├── templates                         # 这个⽬录包含了⼀系列的模板⽂件,当与 values ⽂件结合时,将⽣成有效的 Kubernetes 清单⽂件
│   ├── deployment.yaml
│   ├── _helpers.tpl                  # 公共模板⽂件,⽤于定义 chart 中重复使⽤的模板函数和变量,以便 charts 在其他模板⽂件中使⽤,减少重复的代码并提⾼代码的可维护性。
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt                     # 安装 chart 应⽤后⾃动返回对应的 chart 使⽤信息(需要⾃⾏定制)
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml                       # 为模板提供对应的配置信息

1.3 Chart.yaml ⽂件 

对于 chart 包来说 Chart.yaml 这个⽂件是必须的,它包含下⾯的这些字段: 

apiVersion: v2                      # chart API 版本 (必须)
name: app                           # chart 包名称
version: 0.1.1                      # chart 包的版本,最终 chart 的包名称为 app-0.1.1.tgz
appVersion: 5.7.30                  # 应⽤的版本,例如:该 chart 中使⽤的 nginx,那么 nginx 是 1.18镜像,那么这⾥就可以写 1.18,便于区分应⽤的版本
description: Web Server             # chart的描述信息
home:                               # 当前项⽬的 URL (可选) 例如:https://www.mysql.com/
icon:                               # 当前 chart 的图标 URL (可选) 例如:https://www.mysql.com/common/logos/logo-mysql-170x115.png
keywords:                           # 当前 chart 的关键字集合 (可选) 例如:mysql、database、sql
sources:                            # 当前项⽬源码 URL (可选) 例如:https://github.com/docker-library/mysql
deprecated: true                    # chart 是否已被弃⽤ (可选)
dependencies:                       # 该 chart 依赖的其他 chart 列表(可选),如果定义了 chart 的依赖,可以执⾏ helm dependency update 更新并获取对应的 chart包- name:                           # 依赖的 chart 的名称,例如:nginxversion:                        # 依赖的 chart 的版本,例如:15.1.2repository:                     # 依赖的 chart 所在的仓库地址:例如:https://charts.bitnami.com/bitnamimaintainers:                        # 维护者信息(可选)- name: skywechat: sk6email:

二、创建不可配置 Chart 

2.1 创建 Chart 

1、创建 chart ⽬录结构 

[root@k8s-master1 ~]# mkdir -p /helm/nginx/templates

2、编写 Chart.yaml ⽂件 

[root@k8s-master1 ~]# cd /helm/nginx/
[root@k8s-master1 /helm/nginx]# vim Chart.yaml
apiVersion: v2
name: nginx-app
version: 1.0.0
appVersion: "1.20"
description: A Helm Chart Nginx

3、在 templates ⽬标中新建⼀个 deployment.yaml 清单⽂件 

[root@k8s-master1 /helm/nginx]# vim templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploy-helm
spec:replicas: 1selector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: nginximage: nginx:1.20imagePullPolicy: IfNotPresentports:- containerPort: 80

4、在 templates ⽬标中新建⼀个 service.yaml 清单⽂件 

[root@k8s-master1 /helm/nginx]# vim templates/service.yaml
apiVersion: v1
kind: Service
metadata:name: nginx-svc-helm
spec:selector:app: webports:- port: 80targetPort: 80

2.2 安装 Chart 

1、部署编写的 chart 应⽤ 

指定 nginx 目录

[root@k8s-master1 /helm]# pwd
/helm
[root@k8s-master1 /helm]# helm install nginx-01 ./nginx/

2、检查 chart 应⽤是否部署成功

[root@k8s-master1 /helm]# helm ls
NAME            	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART          	APP VERSION
mysql-02        	default  	3       	2024-01-09 15:39:00.15500261 +0800 CST 	deployed	mysql-1.6.9    	5.7.30     
mysql-1704769258	default  	2       	2024-01-09 11:10:02.471047838 +0800 CST	deployed	mysql-1.6.9    	5.7.30     
nginx-01        	default  	1       	2024-01-10 14:47:35.85594287 +0800 CST 	deployed	nginx-app-1.0.0	1.20[root@k8s-master1 /helm]# kubectl get pods -o wide 
NAME                                 READY   STATUS    RESTARTS       AGE    IP               NODE        NOMINATED NODE   READINESS GATES
busybox                              1/1     Running   52 (41m ago)   2d4h   10.244.169.130   k8s-node2   <none>           <none>
mysql-02-7d858fbb95-pfkv9            1/1     Running   0              23h    10.244.36.68     k8s-node1   <none>           <none>
mysql-1704769258-b9db9dcd9-wl8c5     1/1     Running   0              27h    10.244.169.132   k8s-node2   <none>           <none>
nfs-provisioner-564c9cfbf6-j8dwn     1/1     Running   0              28h    10.244.36.65     k8s-node1   <none>           <none>
nginx-deploy-helm-7576995bbf-rzhk8   1/1     Running   0              87s    10.244.169.133   k8s-node2   <none>           <none>

3、测试是否能正常访问到对应的应⽤ 

[root@k8s-master1 /helm]# curl 10.244.169.133 

三、创建可配置的 Chart 

3.1 修改 chart 

1、为之前的 chart 添加 values.yaml ⽂件,然后定义对应的属性。 

[root@k8s-master1 /helm]# vim nginx/values.yaml
replicas: 2
labels: web
image:name: nginxtags: "1.20"pullpolicy: {}
container_port: 80

2、修改 deployment.yaml 清单⽂件,然后引⽤ values 的配置 

[root@k8s-master1 /helm]# vim nginx/templates/deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploy-helm
spec:replicas: {{ .Values.replicas }}selector:matchLabels:app: {{ .Values.labels }}template:metadata:labels:app: {{ .Values.labels }}spec:containers:- name: nginximage: {{ .Values.image.name }}:{{ .Values.image.tags }}imagePullPolicy: {{ .Values.image.pullpolicy | default "IfNotPresent" }}    # 如果value 文件中 image.pullpolicy 为空或者没有设置,则默认给定⼀个 IfNotPresentports:- containerPort: {{ .Values.container_port }}

3、通过 helm template 命令,将模板和配置⽂件结合起来渲染成真正的部署清单 

此命令主要用于测试你写的文件是否错误,并不是真正的部署应用。

[root@k8s-master1 /helm]# helm template ./nginx

3.2 安装 Chart 

[root@k8s-master1 /helm]# helm install nginx-02 ./nginx/

上一篇文章:【Helm 及 Chart 快速入门】02、Helm 基本使用-CSDN博客 

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

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

相关文章

LORA的基本原理

本文将介绍如下内容&#xff1a; 什么是Lora高效微调的基本原理LORA的实现方式LORA为何有效&#xff1f; 一、什么是LoRA LoRA 通常是指低秩分解&#xff08;Low-Rank Decomposition&#xff09;算法&#xff0c;是一种低资源微调大模型方法&#xff0c;论文如下: LoRA: Low…

大厂都在用的监控高可用方案,小公司还不赶紧学起来?

有一次在一家国企时&#xff0c;他们是使用的dockernginx做为自己的“云”。同时&#xff0c;监控告警平台也不完善&#xff0c;虽然使用的是PrometheusGrafana&#xff0c;但仅仅是用来“看大屏”。 同时所有的报警都是一个一个的脚本去写的&#xff0c;例如写一个python脚本…

卢森堡市场开发攻略,带你走进全球最富有的国家

卢森堡位于西欧&#xff0c;位于欧洲的十字路口&#xff0c;地理位置非常重要。卢森堡是高度发达的资本主义国家&#xff0c;人均gdp全球最高&#xff0c;是当之无愧的全球最富国家。卢森堡对外开放度高&#xff0c;很多产品依赖进口&#xff0c;也是一个非常不错的市场&#x…

医疗门诊诊所预约挂号视频问诊小程序开发

医疗门诊诊所预约挂号视频问诊小程序开发 医疗门诊诊所预约挂号视频问诊小程序开发 用户注册、登录&#xff1a;用户通过手机号注册、登录小程序账号&#xff0c;校验用户身份信息。预约挂号&#xff1a;用户选择就诊科室、日期和时间&#xff0c;预约医生门诊&#xff0c;并…

【OpenCV学习笔记06】- 制作使用轨迹条控制的调色板

这是对于 OpenCV 官方文档的 GUI 功能的学习笔记。学习笔记中会记录官方给出的例子&#xff0c;也会给出自己根据官方的例子完成的更改代码&#xff0c;同样彩蛋的实现也会结合多个知识点一起实现一些小功能&#xff0c;来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔…

简单易懂的PyTorch线性层解析:神经网络的构建基石

目录 torch.nn子模块Linear Layers详解 nn.Identity Identity 类描述 Identity 类的功能和作用 Identity 类的参数 形状 示例代码 nn.Linear Linear 类描述 Linear 类的功能和作用 Linear 类的参数 形状 变量 示例代码 nn.Bilinear Bilinear 类的功能和作用 B…

申请Certum IP证书的方法

Certum是波兰的一家数字证书颁发机构&#xff0c;可以为只有公网IP地址的网站提供IP证书的申请服务&#xff0c;为网站传输信息进行加密&#xff0c;提高网站SEO排名。Certum旗下的IP证书产品不多&#xff0c;其中比较受欢迎的就是DV基础型IP证书。今天就随SSL盾小编了解Certum…

社交通证经济学:Web3时代的社交奖励系统

Web3时代的到来带来了区块链技术和去中心化的新范式&#xff0c;社交媒体也在这场变革中经历着深刻的改变。 社交通证经济学作为Web3时代社交媒体的创新实践&#xff0c;重新定义了用户在平台上的价值和奖励体系。本文将深入探讨Web3时代社交通证经济学的背景、工作原理以及对…

最新版docker-compose安装

Ubuntu/Kali 下载安装最新版 docker-compose # FastGit加速 sudo curl -L "https://hub.fgit.cf/docker/compose/releases/download$(curl -L -i -s -o /dev/null -w "%{url_effective}\n" https://hub.fgit.cf/docker/compose/releases/latest | awk -F tag …

2024新年烟花代码完整版

文章目录 前言烟花效果展示使用教程查看源码HTML代码CSS代码JavaScript 新年祝福 前言 在这个充满希望和激动的2024年&#xff0c;新的一年即将拉开帷幕&#xff0c;而数字科技的创新与发展也如火如荼。烟花绚丽多彩的绽放&#xff0c;一直以来都是新年庆典中不可或缺的元素。…

学会这13个 Git 命令就够了!

提到版本控制工具Git&#xff0c;相信很多开发者都知道&#xff0c;其实我们在99%的日常时间里&#xff0c;只需要学会以下13个git命令就行了&#xff0c;让我们来一起看看吧&#xff01; 1、git init 这个命令是初始化一个新的Git仓库&#xff0c;即在当前目录中创建一个名为…

为什么伦敦金交易应该使用4小时以上的周期?

做伦敦金前&#xff0c;要先对市场走势进行分析。而分析市场总是涉及时间周期等问题&#xff0c;这也是投资者们存在疑惑的地方。到底我们需要选择什么时间周期呢&#xff1f;各人有个人的看法&#xff0c;而其中一种意见是&#xff0c;我们不应该使用低于4小时的周期&#xff…

【方差分析原理简介】

文章目录 方差分析&#xff08;Analysis of Variance&#xff0c;简称ANOVA&#xff09;1 方差分析流程2 借助sklean进行基于方差分析的特征筛选3 总结 方差分析&#xff08;Analysis of Variance&#xff0c;简称ANOVA&#xff09; 卡方检验更多的会考虑在衡量两个离散变量是…

【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)

Java后门机制 — sun.misc.unsafe 打破Java的安全管控关于Unsafe的编程建议实例化Unsafe后门对象使用sun.misc.Unsafe创建实例单例模式处理实现浅克隆&#xff08;直接获取内存的方式&#xff09;直接使用copyMemory原理分析 密码安全使用Unsafe类—示例代码 运行时动态创建类超…

敦煌网、国际站自养号测评:店铺销售怎么提高?

随着互联网的快速发展&#xff0c;电子商务成为了现代商业的重要组成部分。在众多电商平台中&#xff0c;敦煌网作为中国文化艺术产品的专业电商平台&#xff0c;吸引了大量消费者的关注。然而&#xff0c;如何提高敦煌网的销售业绩&#xff0c;成为了商家们共同面临的挑战。 …

diffusers加速文生图速度;stable-diffusion、PixArt-α

参考: https://pytorch.org/blog/accelerating-generative-ai-3/ https://colab.research.google.com/drive/1jZ5UZXk7tcpTfVwnX33dDuefNMcnW9ME?usp=sharing#scrollTo=jueYhY5YMe22 大概GPU资源8G-16G;另外模型资源下载慢可以在国内镜像:https://aifasthub.com/ 1、加速…

查看Linux磁盘空间

(1)、该命令会列出当前系统所有挂载的文件系统以及它们的使用情况&#xff0c;包括总容量、已用空间、可用空间、使用百分比等信息 df -h如果查看某一个文件夹的,可以 df -h folderName (2)、计算指定目录下所有文件和子目录所占用的磁盘空间大小&#xff0c;并以人类可读的格…

机器学习周刊 第4期:动手实战人工智能、计算机科学热门论文、免费的基于ChatGPT API的安卓端语音助手、每日数学、检索增强 (RAG) 生成技术综述

LLM开发者必读论文&#xff1a;检索增强&#xff08;RAG&#xff09;生成技术综述&#xff01; 目录&#xff1a; 1、动手实战人工智能 Hands-on Al2、huggingface的NLP、深度强化学习、语音课3、Awesome Jupyter4、计算机科学热门论文5、LLM开发者必读论文:检索增强 (RAG) 生…

Python基础(二十四、JSON和pyecharts)

文章目录 一、JSON1.JSON介绍2.JSON格式数据转化3.示例 二、pyecharts1.安装pyecharts包2.查看官方示例 三、开发示例 一、JSON 1.JSON介绍 JSON是一种轻量级的数据交互格式&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据&#xff08;就是字符串&#xff09;…

探索未来餐饮:构建创新连锁餐饮系统的技术之旅

随着数字化时代的发展&#xff0c;连锁餐饮系统的设计和开发不再仅仅关乎订单处理&#xff0c;更是一场充满技术创新的冒险。在本文中&#xff0c;我们将深入研究连锁餐饮系统的技术实现&#xff0c;带你探索未来餐饮业的数字化美食之旅。 1. 构建强大的后端服务 在设计连锁…