您好,登錄后才能下訂單哦!
Kubernetes中如何使用YAML 語法,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
學過編程的人理解起來應該非常容易
語法特點
大小寫敏感
通過縮進表示層級關系
禁止使用tab縮進,只能使用空格鍵
縮進的空格數目不重要,只要相同層級左對齊
使用#表示注釋
# yamllanguages:- Ruby - Perl - Python websites:YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org # Json {languages: ['Ruby','Perl','Python'], websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org'} }
數據結構
-對象: 鍵值對的字典 -數組: 一組按次序排列的列表 -純量: 單個的且不可再分的值
# 純量hello# 數組- Cat- Dog- Goldfish# 對象animal: pets
引號區別
單引號(''): 特殊字符作為普通字符串處理
雙引號(""): 特殊字符作為本身想表示的意思
# 單引號name: 'Hi,\nTom'# 雙引號name: "Hi,\nTom"
內置類型列表
# YAML允許使用個感嘆號(!)強制轉換數據類型# 單嘆號通常是自定義類型,雙嘆號是內置類型money: !!str123date: !Booleantrue
純量是最基本的且不可再分的值
字符串
# 不適用引號name: Tom# 使用單引號name: 'Tom'# 使用雙引號name: "Tom"
布爾值
debug: truedebug: false
數字
12 # 十進制整數014 # 八進制整數0xC #十六進制整數 13.4 #浮點數 1.2e+34 #指數.inf #無窮大
Null
date: ~date: null
時間
# 使用iso-8601標準表示日期date: 2018-01-01t16:59:43.10-05:00
日常使用中基本不會用到的類型
文本塊
# 注意“|”與文本之間須另起一行# 使用|標注的文本內容縮進表示的塊,可以保留塊中已有的回車換行value: | hello world!# 輸出結果# hello 換行 world!
# +表示保留文字塊末尾的換行# -表示刪除字符串末尾的換行value: | hello value: |- hello value: |+ hello# 輸出結果# hello\n hello hello\n\n
# 注意“>”與文本之間的空格# 使用>標注的文本內容縮進表示的塊,將塊中回車替換為空格最終連接成一行value: > hello world!# 輸出結果# hello 空格 world!
錨點與引用
# 復制代碼注意*引用部分不能追加內容# 使用&定義數據錨點,即要復制的數據# 使用*引用錨點數據,即數據的復制目的地name: &a yamlbook: *abooks: - java - *a - python# 輸出結果book: yamlbooks:[java, yaml, python]
光說不練假把式 => JS-Yaml 官網實例地址 https://nodeca.github.io/js-yaml
--- # Collection Types ############################################################# ################################################################################ # http://yaml.org/type/map.html -----------------------------------------------#map: # Unordered set of key: value pairs. Block style: !!map Clark: Evans Ingy: d?t Net Oren: Ben-Kiki Flow style: !!map { Clark: Evans, Ingy: d?t Net, Oren: Ben-Kiki } # http://yaml.org/type/omap.html ----------------------------------------------#omap: # Explicitly typed ordered map (dictionary). Bestiary: !!omap - aardvark: African pig-like ant eater. Ugly. - anteater: South-American ant eater. Two species. - anaconda: South-American constrictor snake. Scaly. # Etc. # Flow style Numbers: !!omap [one: 1, two: 2, three: 3] # http://yaml.org/type/pairs.html ---------------------------------------------#pairs: # Explicitly typed pairs. Block tasks: !!pairs - meeting: with team. - meeting: with boss. - break: lunch. - meeting: with client. Flow tasks: !!pairs [meeting: with team, meeting: with boss] # http://yaml.org/type/set.html -----------------------------------------------#set: # Explicitly typed set. baseball players: !!set ? Mark McGwire ? Sammy Sosa ? Ken Griffey # Flow style baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees } # http://yaml.org/type/seq.html -----------------------------------------------#seq: # Ordered sequence of nodes Block style: !!seq - Mercury # Rotates - no light/dark sides. - Venus # Deadliest. Aptly named. - Earth # Mostly dirt. - Mars # Seems empty. - Jupiter # The king. - Saturn # Pretty. - Uranus # Where the sun hardly shines. - Neptune # Boring. No rings. - Pluto # You call this a planet? Flow style: !!seq [ Mercury, Venus, Earth, Mars, # Rocks Jupiter, Saturn, Uranus, Neptune, # Gas Pluto, ] # Overrated # Scalar Types ################################################################# ################################################################################ # http://yaml.org/type/bool.html ----------------------------------------------#bool: - true - True - TRUE - false - False - FALSE # http://yaml.org/type/float.html ---------------------------------------------#float: canonical: 6.8523015e+5 exponentioal: 685.230_15e+03 fixed: 685_230.15 sexagesimal: 190:20:30.15 negative infinity: -.inf not a number: .NaN # http://yaml.org/type/int.html -----------------------------------------------#int: canonical: 685230 decimal: +685_230 octal: 02472256 hexadecimal: 0x_0A_74_AE binary: 0b1010_0111_0100_1010_1110 sexagesimal: 190:20:30# http://yaml.org/type/merge.html ---------------------------------------------#merge: - &CENTER { x: 1, y: 2 } - &LEFT { x: 0, y: 2 } - &BIG { r: 10 } - &SMALL { r: 1 } # All the following maps are equal: - # Explicit keys x: 1y: 2r: 10label: nothing - # Merge one map <<: *CENTER r: 10label: center - # Merge multiple maps <<: [*CENTER, *BIG] label: center/big - # Override <<: [*BIG, *LEFT, *SMALL] x: 1label: big/left/small # http://yaml.org/type/null.html ----------------------------------------------#null: # This mapping has four keys, # one has a value. empty: canonical: ~ english: null ~: null key # This sequence has five # entries, two have values. sparse: - ~ - 2nd entry - - 4th entry - Null # http://yaml.org/type/str.html -----------------------------------------------#string: abcd # http://yaml.org/type/timestamp.html -----------------------------------------#timestamp: canonical: 2001-12-15T02:59:43.1Z valid iso8601: 2001-12-14t21:59:43.10-05:00 space separated: 2001-12-14 21:59:43.10 -5 no time zone (Z): 2001-12-15 2:59:43.10 date (00:00:00Z): 2002-12-14# JavaScript Specific Types #################################################### ################################################################################ # https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExpregexp: simple: !!js/regexp foobar modifiers: !!js/regexp /foobar/mi # https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefinedundefined: !!js/undefined ~ # https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Functionfunction: !!js/function > function foobar() { return 'Wow! JS-YAML Rocks!'; } # Custom types ################################################################# ################################################################################ # JS-YAML allows you to specify a custom YAML types for your structures. # This is a simple example of custom constructor defined in `js/demo.js` for # custom `!sexy` type: # # var SexyYamlType = new jsyaml.Type('!sexy', { # kind: 'sequence', # construct: function (data) { # return data.map(function (string) { return 'sexy ' + string; }); # } # }); # # var SEXY_SCHEMA = jsyaml.Schema.create([ SexyYamlType ]); # # result = jsyaml.load(yourData, { schema: SEXY_SCHEMA }); foobar: !sexy - bunny - chocolate
看完上述內容,你們掌握Kubernetes中如何使用YAML 語法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。