yml檔案tab 空格 YAML檔案格式語法

2021-10-16 14:19:02 字數 2418 閱讀 6801

yaml基礎

學習k8s就不得不學習下yaml語法了

yaml是一種簡潔的非標記語言,yaml以資料為中心,使用空白,縮排,分行組織資料,從而使得表示更加簡潔易讀。

yaml語法規則:

大小寫敏感

使用縮排表示層級關係

縮排時不允許使用tab鍵,只允許使用空格

縮排的空格數目不重要,只要相同層級的元素左側對齊即可

」#」 表示注釋,從這個字元一直到行尾,都會被解析器忽略

字串可以不用引號標註

列表項,通過減號「-」加乙個空格,多個項使用同樣縮排級別做為同一列表部分

map結構裡面的鍵值對(key/value)用冒號「:」來分割

陣列用「」包括起來,hash用「{}」來包括

以上就是yaml的語法

在kubernetes中,只需要知道兩種結構型別即可:

lists

maps

scalar 在k8s中不使用此型別

使用yaml用於k8s的定義帶來的好處包括:

便捷性:不必新增大量的引數到命令列中執行命令

可維護性:yaml檔案可以通過源頭控制,跟蹤每次操作

靈活性:yaml可以建立比命令列更加複雜的結構

yaml maps

yaml maps

map,雜湊表 ,使用冒號(:)表示鍵值對,同一縮排的所有鍵值對屬於乙個map,例如:

apiversion: v1

kind: serviceaccount

metadata:

labels:

addonmanager.kubernetes.io/mode: reconcile

name: kubernetes-dashboard

namespace: kube-system

如果要把多個kind寫於乙個檔案需要用到

--- 為可選的分隔符 ,當在乙個檔案中定義多個結構時需要

apiversion: v1

kind: serviceaccount

metadata:

labels:

addonmanager.kubernetes.io/mode: reconcile

name: kubernetes-dashboard

namespace: kube-system

#以上labels,name,namespace為同一級,因為都縮排了相同的空格

--- #分隔符,因為此yaml檔案定義了二個不同的kind型別

kind: deployment

metadata:

name: kubernetes-dashboard

namespace: kube-system

labels:

kubernetes.io/cluster-service: "true"

addonmanager.kubernetes.io/mode: reconcile

yaml lists

list 陣列,使用連字元(-)表示,例如:

volumemounts:

- name: kubernetes-dashboard-certs

mountpath: /certs

- name: tmp-volume

mountpath: /tmp

資料結構巢狀

map巢狀map

apiversion: v1

kind: configmap

metadata: #map巢狀map

labels: #map巢狀map

# allows editing resource and makes sure it is created first.

addonmanager.kubernetes.io/mode: ensureexists

name: kubernetes-dashboard-settings

namespace: kube-system

map巢狀list

volumes: #map

- name: kubernetes-dashboard-certs #list map

secret:

secretname: kubernetes-dashboard-certs

- name: tmp-volume

emptydir: {}

list巢狀list

在k8s的yaml中比較少見

list巢狀map

volumes: #map

- name: kubernetes-dashboard-certs #list map巢狀list

secret: #map list巢狀map

secretname: kubernetes-dashboard-certs

- name: tmp-volume

emptydir: {}

yml檔案tab 空格 c語言makefile檔案

toc 在軟體的工程中的原始檔是很多的,其按照型別 功能 模組分別放在若干個目錄和檔案中,哪些檔案需要編譯,那些檔案需要後編譯,那些檔案需要重新編譯,甚至進行更複雜的功能操作,這就有了我們的系統編譯的工具。在linux和unix中,有乙個強大的實用程式,叫make,可以用它來管理多模組程式的編譯和鏈...

yaml檔案 yml 寫法簡介

yaml yet another markup language 發音 j m l 一種基於unicode容易閱讀,容易和指令碼語言互動的,用來表達資料序列的程式語言。指令碼語言 由於實現簡單,解析成本很低,yaml 特別適合在指令碼語言中使用 序列化 yaml是由宿主語言資料型別直轉,的比較適合做...

properties檔案快速轉為yml檔案

只是做了簡單的測試,沒有考慮過檔案裡有注釋的情況 思想就是先把資料讀到map中,然後再儲存到新的檔案中 public class test private static void copyto file oldfile,file newfile throws exception 把map中資料輸出到...