日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?

總結

以上是生活随笔為你收集整理的kubernetes实战篇之helm示例yaml文件文件详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。