您好,登錄后才能下訂單哦!
YAML文件如何在kubernetes中使用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
K8S在啟動Pod的時候,會使用yaml文件的方式來啟動,今天我們來看看YAML文件最常用的格式。
YAML的語法和JSON語法很像,都是通過key-value形式來組織的,它可以表示list、dict等常用數據類型,它的后綴一般使用".yml",它有如下幾個特點:
1、大小寫敏感
2、使用縮進表示遞進關系
3、縮進不允許使用tab,只允許使用空格
4、縮進的空格數不重要,只要相同層級的元素左側對齊即可,這一點類似Python語法
5、使用"#"來表示注釋
6、key-value結構用{}包圍,list結構用[]包圍
a、使用key:value的方式來表示,key和value中間需要一個空格,否則會報錯;
b、如果有層級關系,可以通過下面兩種方法來表示:
key:{key1: value1,key2: value1} 或者 key: key1:value1 key2:value2
c、表示一個key-value格式,其中value是一個dict
websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org 表示成json格式就是: websites: { YAML: 'yaml.org', Ruby: 'ruby-lang.org', Python: 'python.org', Perl: 'use.perl.org' }
以-開頭表示一個數組,如下:
- A - B - C 表示成數組是:[A,B,C]
下面是一個稍微復雜點兒的例子
students: - id: 1 name: zhangsan age: 12 - id: 2 name: lisi age: 15 表示成數組是: students:[{id: 1,name: zhangsan,age: 12},{id: 2,name: lisi,age: 15}] 數組中的元素又是一個key-value結構的dict
一段Json和一段Yaml的對比:
yaml格式的文件 nodes: - name: jobE type: command config: command: echo "This is job E" dependsOn: - jobD - name: jobD type: command config: command: echo "This is job D" dependsOn: - jobA - jobB - jobC 表示成json格式就是: { "nodes":[ { "name":"jobE", "type":"command", "config":{ "command":"echo \"This is job E\"" }, "dependsOn":[ "jobD" ] }, { "name":"jobD", "type":"command", "config":{ "command":"echo \"This is job D\"" }, "dependsOn":[ "jobA", "jobB", "jobC" ] } ] }
Master的架構圖:
其中:
API Server提供了HTTP Rest接口,它是k8s中的所有資源增刪改查的唯一入口,也是集群控制的入口;
Scheduler是負責資源調度的進程;
Controller Manager是所有資源對象的自動化控制中心;
Etcd提供資源對象的數據保存服務
K8S使用Master節點和Node節點部署的方式來管理整個集群,Master節點、Node節點和Pod的關系使用官方的結構圖來說明比較貼切:
可以看到,Master和Node之間有直接的通信交互過程,而Pod是部署在Node上的,簡單理解,就是:
Master是一臺服務器,有固定的IP地址
Node是一臺服務器,有固定的IP地址
Pod是Node上的一個進程,有一個虛擬的IP地址,有可能和Node IP地址相同,也有可能不同。
而我們知道,一個Pod中可以有多個容器,如果再加上容器,就會變成下面的樣子:
關于YAML文件如何在kubernetes中使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。