kubernetes实战篇之helm示例yaml文件文件详细介绍

前面完整示例里,我们主要讲解helm打包,部署,升级,回退等功能,关于这里面的文件只是简单介绍,这一节我们详细介绍一下这里面的文件,以方便我们参照创建自己的helm chart.

Helm Chart 结构

Chart 目录结构

mychart/  Chart.yaml  LICENSE  README.md  values.yaml  requirements.yaml  charts/  templates/  templates/NOTES.txt

默认生成的chart如果没有修改是没有这么多的.

Chart.yaml 文件

name: [必须] Chart的名称version: [必须] Chart的版本号,版本号必须符合 SemVer 2:http://semver.org/description: [可选] Chart的简要描述keywords:  -  [可选] 关键字列表,便于检索home: [可选] 项目地址sources:  - [可选] 当前Chart的下载地址列表maintainers:  - name: [必须] 名字    email: [可选] 邮箱engine: gotplicon: [可选] 一个SVG或PNG格式的图片地址

requirements.yaml 和 charts目录

requirements.yaml 文件内容:

dependencies:  - name: example    version: 1.2.3    repository: http://example.com/charts  - name: Chart名称    version: Chart版本    repository: 该Chart所在的仓库地址

Chart支持两种方式表示依赖关系,可以使用requirements.yaml或者直接将依赖的Chart放置到charts目录中。

templates 目录

templates目录中存放了Kubernetes部署文件的模版。
例如:

apiVersion: v1kind: ReplicationControllermetadata:  name: deis-database  namespace: deis  labels:    heritage: deisspec:  replicas: 1  selector:    app: deis-database  template:    metadata:      labels:        app: deis-database    spec:      serviceAccount: deis-database      containers:        - name: deis-database          image: {{.Values.imageRegistry}}/postgres:{{.Values.dockerTag}}          imagePullPolicy: {{.Values.pullPolicy}}          ports:            - containerPort: 5432          env:            - name: DATABASE_STORAGE              value: {{default "minio" .Values.storage}}

模版语法扩展了 golang/text/template的语法:

# 这种方式定义的模版,会去除test模版尾部所有的空行{{- define "test"}}模版内容{{- end}} # 去除test模版头部的第一个空行{{- template "test" }}

用于yaml文件前置空格的语法:

# 这种方式定义的模版,会去除test模版头部和尾部所有的空行{{- define "test" -}}模版内容{{- end -}} # 可以在test模版每一行的头部增加4个空格,用于yaml文件的对齐{{ include "test" | indent 4}}

创建自己的chart

我们创建一个名为mongodb的chart,看一看chart的文件结构

$ helm create mongodb$ tree mongodbmongodb├── Chart.yaml├── charts├── templates│   ├── NOTES.txt│   ├── _helpers.tpl│   ├── deployment.yaml│   └── service.yaml└── values.yaml 2 directories, 6 files

模板

Templates目录下是yaml文件的模板,遵循Go template语法。使用过Hugo的静态网站生成工具的人应该对此很熟悉。

我们查看下deployment.yaml文件的内容。

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: {{ template "fullname" . }}  labels:    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"spec:  replicas: {{ .Values.replicaCount }}  template:    metadata:      labels:        app: {{ template "fullname" . }}    spec:      containers:      - name: {{ .Chart.Name }}        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"        imagePullPolicy: {{ .Values.image.pullPolicy }}        ports:        - containerPort: {{ .Values.service.internalPort }}        livenessProbe:          httpGet:            path: /            port: {{ .Values.service.internalPort }}        readinessProbe:          httpGet:            path: /            port: {{ .Values.service.internalPort }}        resources:{{ toyaml .Values.resources | indent 12 }}

这是该应用的Deployment的yaml配置文件,其中的双大括号包扩起来的部分是Go template,其中的Values是在values.yaml文件中定义的:

replicaCount: 1image:  repository: nginx  tag: stable  pullPolicy: IfNotPresentservice:  name: nginx  type: ClusterIP  externalPort: 80  internalPort: 80resources:  limits:    cpu: 100m    memory: 128Mi  requests:    cpu: 100m    memory: 128Mi

比如在Deployment.yaml中定义的容器镜像image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"其中的:

  • .Values.image.repository就是nginx

  • .Values.image.tag就是stable

以上两个变量值是在create chart的时候自动生成的默认值

原文地址:https://www.cnblogs.com/tylerzhou/p/11141538.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

640?wx_fmt=jpeg

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

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

相关文章

P4309 [TJOI2013]最长上升子序列 平衡树 + dp

传送门 文章目录题意:思路:题意: 思路: 注意到一个很关键的条件,每次插入iii,而iii是递增的,也就是说插入iii之后只会从前面的最大值转移过来,所以我们现在只需要维护插入操作即可&…

【AGC035C】Skolem XOR Tree【异或】【构造】

传送门 题意:给定nnn,构造或判断无法构造一个2n2n2n个结点的树,其中结点iii和ininin的权值为iii,且所有iii和ininin路径权值异或和等于iii。 注意到 2i⊕2i112i\oplus2i112i⊕2i11,然后可以脑补出 然而111没处理 发现1⊕2⊕301\…

ASP.NET Core 管道再探

几乎任何服务器端处理环境都有自己的直通组件管道,用于检查、重路由或修改传入请求和传出响应。经典 ASP.NET 围绕 HTTP 模块理念进行排列,而 ASP.NET Core 采用基于中间件组件的更现代的体系结构。最终目的是相同的 - 允许可配置的外部模块以请求&#…

GRPC与.net core

QQ讨论群:953553560正文系列章节GRPC与.net coreGRPC截止时间与元数据GRPC与netcore IdentityGRPC与netcore IdentityServer4概述GRPC的数据交互模式有:1.单项RPC,最简单的数据交换方式,客户端发出单个请求,收到单个响…

程序员修神之路--做好分库分表其实很难之一

点击上方“蓝字”带你去看小星星菜哥,领导让我开发新系统了这么说领导对你还是挺信任的呀~必须的,为了设计好这个新系统,数据库设计我花了好多心思呢做一个系统我觉得不应该从数据库入手,应该从设计业务模型开始,先不说…

Office 365开发者的前端必备课程

这篇文章其实不仅仅是写给Office 365开发者的,但对于广大的Office 365开发者来说确实相当重要的。这里提到的Office 365开发者,包括了Office Add-ins,SharePoint Add-ins,Microsoft Graph,Microsoft Teams的开发者。我…

【CF1338C】Perfect Triples【位运算】【构造】

传送门 题意:有一序列SSS由下列方式生成: 找到字典序最小的正整数(a,b,c)(a,b,c)(a,b,c),满足a,b,ca,b,ca,b,c不在SSS中且a⊕b⊕c0a\oplus b\oplus c0a⊕b⊕c0,其中⊕\oplus⊕为异或将a,b,ca,b,ca,b,c加入SSS重复第一步 TTT组数据&#xff…

.NET开发框架(五)-IIS上部署ASP.NET Core项目教程

在之前教程中,我们分享了框架的功能与视频演示介绍(文尾底部提供往期教程快捷链接)系列教程:从初学者到架构师的一步步蜕变本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助!1、打开V…

P4146 序列终结者 平衡树 + lazy维护

传送门 文章目录题意:思路:题意: 思路: 平衡树裸题,直接维护俩lazylazylazy就行了。 需要注意的是,只有儿子节点存在的时候才能更新,不然更新到000号节点之后,给000号点加上了奇怪的…

.NET开发框架(四)-服务器IIS实践教程

前三篇教程中,我们分享了框架的功能与视频演示介绍(文尾底部提供往期教程快捷链接),今天开始我们进入实践教程,从0开始教学,让你从新手到架构师之兑变,目前已经重置了一台服务器,从安装与配置各组件开始学习…

.NET Core IdentityServer4实战 第六章-Consent授权页

在identityServer4中登陆页面只要是成功了,就会注册一个Cookie在服务器资源上,像现在大部分的网站第三方授权,都是经过一个页面,然后选需要的功能,IdentityServer4也给我们提供了,只要你登陆成功,就会跳转到…

GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)

最近利用业余时间实现.ner core 版本的 casbin ,即 Casbin.NET。之前的CI都使用的是公司搭建的jenkins和gitlab-runner,对开源社区的工具链并不是很熟悉,在casbin的原作者(hsluoyz )的“要求”下,只能被迫在项目的README.md加入下…

P4847 银河英雄传说V2 非旋treap

传送门 文章目录题意:思路:题意: 思路: 让我们分析一下题目需要实现什么操作: (1)(1)(1)将某个序列放到某个的后面,也就是合并两个序列。 (2)(2)(2)将一个序列从某处断开。 (3)(3)(3)查询某个序列的一段和…

小白开学Asp.Net Core 《五》

小白开学Asp.Net Core《五》—— 使用.Net Core MVC Filter一、简介今天在项目(https://github.com/AjuPrince/Aju.Carefree)做登陆权限时,用到了Filter,现将Filer的使用做以下记录。二、Filter 简介Filter俗称过滤器,…

P5217 贫穷 平衡树

传送门 文章目录题意:思路:题意: 思路: 本来是不想写数据结构了,因为明天打蓝桥了,想放松一下,但是看到这个题感觉写起来挺简单的,就试了试,结果… 首先看一下他的操作…

高性能微服务网关.NETCore客户端Kong.Net开源发布

前言项目地址:https://github.com/lianggx/Kong.Net你的支持使我们更加强大,请单击 star 让更多的 .NETCore 认识它。拥抱开源的脚步,我们从来都是一直在路上;.NETCore作为后起之秀,带给我们太多的惊喜和感动&#xff…

使用Jenkins部署.Net Core遇到的几个坑

一、相关环境和版本搞过CI/CD的同学一定吃过不少苦头,或者说遇到不少坑,但是对自动化的执着住挡不了前进的步伐,如果你缺少了运维这一块知识,那么你的流水线总是不那么完美,本文记录的是自己躺过的坑,希望对…

Deltix Round, Spring 2021 E. Crypto Lights 组合数学 + 推公式

传送门 文章目录题意:思路:题意: 给你nnn个灯,每次可以打开一个灯,当连续的kkk个灯有至少两个灯开着的时候停止,问最终期望能打开多少灯。 思路: 由于不想打latexlatexlatex,所以…

.NET Core 仿魔兽世界密保卡实现

《魔兽世界》的老玩家都知道,密保卡曾经被用于登录验证,以保证账号安全。今天我用.NET Core模拟了一把密保卡(也叫矩阵卡)的实现,分享给大家。密保卡的原理这是一张典型的魔兽世界密保卡。序列号用于绑定游戏账号&…

浅谈C#泛型

一.为什么要提出泛型的概念我们在声明对象或者方法中,对象中成员变量的定义或者函数参数都传递都要指定具体的对象类型,但是有的时候参数的类型是变化的,但是实现的功能却又差不多,这个时候我们就想,是否存在一种东西可…