当前位置: 首页 > news >正文

Helm 动态参数配置模版

1.我们重新创建一个新的模板 helm create <应用名称>

[root@master01 hpro]# helm create mychart
Creating mychart

2.我们接着看文件

# 查看文件
[root@master01 mychart]# ls
charts  Chart.yaml  templates  values.yaml# 我们进入 templates
[root@master01 templates]# ls
deployment.yaml  _helpers.tpl  hpa.yaml  ingress.yaml  NOTES.txt  serviceaccount.yaml  service.yaml  tests# 我们随便查看一个yaml
[root@master01 templates]# vim service.yaml
# 这个是一个 helm创建的模板
apiVersion: v1
kind: Service
metadata:name: {{ include "mychart.fullname" . }}labels:{{- include "mychart.labels" . | nindent 4 }}
spec:type: {{ .Values.service.type }}ports:- port: {{ .Values.service.port }}targetPort: httpprotocol: TCPname: httpselector:{{- include "mychart.selectorLabels" . | nindent 4 }}

3.模板取值格式

# 取参数的格式
# {{ .Values.变量名称 }}
# {{ .Release.Name }}

4.修改 values.yaml

[root@master01 mychart]# ls
charts  Chart.yaml  templates  values.yaml# 把里面所有清空
[root@master01 mychart]# vim values.yaml# 写入以下内容# 定义副本数
replicas: 1
# 镜像
image: nginx
# 版本
tag: 1.16
# 标签
label: nginx
# 端口
port: 80

5. 修改 templates 文件夹中的deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: {{.Values.label }}name: {{ .Release.Name}}-deploy
spec:replicas: 1selector:matchLabels:app: {{.Values.label }}strategy: {}template:metadata:creationTimestamp: nulllabels:app: {{.Values.label }}spec:containers:- image: {{.Values.image }}name: {{.Values.image }}resources: {}
status: {}

6. 修改 templates 文件夹中的 service.yaml

apiVersion: v1
kind: Service
metadata:labels:app: web-testname: {{ .Release.Name}}-svc
spec:ports:- port: {{ .Values.port}}protocol: TCPtargetPort: 80selector:app: {{ .Values.label}}type: NodePort

7.这是创建的模板文件

[root@master01 templates]# ls
deploy.yaml  service.yaml

8.测试模板文件  helm install --dry-run <应用名称> <模板文件夹>

命令的解释如下:

  • helm install: 这是 Helm 的安装命令,用于安装一个 chart。
  • --dry-run: 这个选项表示在执行安装命令时只进行模拟操作,不实际安装 chart。
  • web2: 这是要安装的 release 的名称。
  • mychart/: 这是要安装的 chart 的路径。

helm install --dry-run web2 mychart/ 这个命令将模拟安装位于 mychart/ 的 chart,不会实际执行任何操作。可以通过这个命令来检查安装过程中可能出现的问题或验证 chart 的配置是否正确。

 

# 正常打印表示文件没有问题
[root@master01 hpro]# helm install --dry-run web2 mychart/
NAME: web2
LAST DEPLOYED: Sun Jan 14 02:49:27 2024
NAMESPACE: default
STATUS: pending-install
REVISION: 1
TEST SUITE: None
HOOKS:
MANIFEST:
---
.
.
.

9.我们看一下打印的内容,填充的内容都已经填充上了

# 取参数的格式
# {{ .Values.变量名称 }}
# {{ .Release.Name }}# 这下明白怎么取值了吧.Values 取得是 values.yaml 文件中的属性.Release 取得是 install 中定义的名字
[root@master01 hpro]# helm install --dry-run web2 mychart/
NAME: web2
LAST DEPLOYED: Sun Jan 14 02:49:27 2024
NAMESPACE: default
STATUS: pending-install
REVISION: 1
TEST SUITE: None
HOOKS:
MANIFEST:
---
# Source: mychart/templates/service.yaml
apiVersion: v1
kind: Service
metadata:labels:app: web-testname: web2-svc
spec:ports:- port: 80protocol: TCPtargetPort: 80selector:app: nginxtype: NodePort
---
# Source: mychart/templates/deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: nginxname: web2-deploy
spec:replicas: 1selector:matchLabels:app: nginxstrategy: {}template:metadata:creationTimestamp: nulllabels:app: nginxspec:containers:- image: nginxname: nginxresources: {}
status: {}

10.安装自定义应用

[root@master01 hpro]# helm install web2 mychart/
NAME: web2
LAST DEPLOYED: Sun Jan 14 02:58:44 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
[root@master01 hpro]# helm list
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
web2    default         1               2024-01-14 02:58:44.222147967 -0800 PST deployed        mychart-0.1.0   1.16.0
[root@master01 hpro]# kubectl get pod
NAME                          READY   STATUS    RESTARTS   AGE
web2-deploy-f89759699-rqc6m   1/1     Running   0          21s
[root@master01 hpro]# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        28d
web2-svc     NodePort    10.108.230.159   <none>        80:31223/TCP   25s
http://www.sczhlp.com/news/7365/

相关文章:

  • 8.7 闲话
  • 自定义Chart并部署一个应用
  • P12213 [蓝桥杯 2023 国 Python B] 最长回文前后缀(Manacher)
  • 二分图最大匹配
  • SGX Externals sgx外部组件
  • 全志T527/A527 AIOT LinuxSDK的安装与简介-盈鹏飞嵌入式
  • 智能制造网络质量保障:德承 DX-1200多网口工控机在windows系统下的网络性能测试指南 - Johnny
  • 目录导航
  • 初三文化课生涯回忆
  • 标准/实际扣料分析系统使用帮助
  • Krisp 推出对话轮次转换模型,基于纯音频信号;DeepMind 发布世界模型 Genie 3 ,可保持数分钟一致性丨日报
  • Windows XP/Server 2003帮助中心漏洞全披露与技术防护方案
  • Python - ipaddress模块
  • 金融级 ZooKeeper 来袭:性能提升100%,SLA 99.99%,数据防护升级
  • 13kB JavaScript实现的MOBA游戏网络同步技术
  • 飞书应用平台-Tita 新CRM销售一体化:重塑企业销售与交付全链路管理
  • SM30 维护视图增强 (添加自定义按钮,隐藏按钮)(转)
  • Java变量与常量全解析(包含常量类、interface 与 final 的比较)
  • 【PostgreSQL17】4 复杂查询
  • 机房散记
  • 《深入理解计算机系统》学习笔记
  • 读开源项目成功之道06让项目受欢迎
  • P5244 [USACO19FEB] Mowing Mischief P
  • Solidity学习之代理合约
  • 微积分笔记
  • 求数组中未出现的最小正整数(408-18/力扣41)
  • xxx
  • 一步到位配置你本地PHP开发环境
  • SQLite分享学习
  • 【Terminal】清空PowerShell历史命令