佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > kubernetes YAML文件的使用

kubernetes YAML文件的使用

熱門標(biāo)簽:阿里云 美圖手機(jī) 智能手機(jī) 網(wǎng)站建設(shè) 檢查注冊(cè)表項(xiàng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 硅谷的囚徒呼叫中心 使用U盤裝系統(tǒng)

01 YAML文件介紹

      K8S在啟動(dòng)Pod的時(shí)候,會(huì)使用yaml文件的方式來啟動(dòng),今天我們來看看YAML文件最常用的格式。

      YAML的語法和JSON語法很像,都是通過key-value形式來組織的,它可以表示list、dict等常用數(shù)據(jù)類型,它的后綴一般使用".yml",它有如下幾個(gè)特點(diǎn):

1、大小寫敏感

2、使用縮進(jìn)表示遞進(jìn)關(guān)系

3、縮進(jìn)不允許使用tab,只允許使用空格

4、縮進(jìn)的空格數(shù)不重要,只要相同層級(jí)的元素左側(cè)對(duì)齊即可,這一點(diǎn)類似Python語法

5、使用"#"來表示注釋

6、key-value結(jié)構(gòu)用{}包圍,list結(jié)構(gòu)用[]包圍

YAML---key-value類型

a、使用key:value的方式來表示,key和value中間需要一個(gè)空格,否則會(huì)報(bào)錯(cuò);

b、如果有層級(jí)關(guān)系,可以通過下面兩種方法來表示:

key:{key1: value1,key2: value1}

或者

key:
    key1:value1
    key2:value2

c、表示一個(gè)key-value格式,其中value是一個(gè)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' 
  } 

YAML---list類型

以-開頭表示一個(gè)數(shù)組,如下:

- A
- B
- C

表示成數(shù)組是:[A,B,C]

下面是一個(gè)稍微復(fù)雜點(diǎn)兒的例子

students:
    -
        id: 1
        name: zhangsan
        age: 12
    -
        id: 2
        name: lisi
        age: 15

表示成數(shù)組是:
students:[{id: 1,name: zhangsan,age: 12},{id: 2,name: lisi,age: 15}]

數(shù)組中的元素又是一個(gè)key-value結(jié)構(gòu)的dict

一段Json和一段Yaml的對(duì)比:

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"
            ]
        }
    ]
}

02 K8S中Master、Node和Pod的關(guān)系

     Master的架構(gòu)圖:

其中:

API Server提供了HTTP Rest接口,它是k8s中的所有資源增刪改查的唯一入口,也是集群控制的入口;

Scheduler是負(fù)責(zé)資源調(diào)度的進(jìn)程;

Controller Manager是所有資源對(duì)象的自動(dòng)化控制中心;

Etcd提供資源對(duì)象的數(shù)據(jù)保存服務(wù)

    K8S使用Master節(jié)點(diǎn)和Node節(jié)點(diǎn)部署的方式來管理整個(gè)集群,Master節(jié)點(diǎn)、Node節(jié)點(diǎn)和Pod的關(guān)系使用官方的結(jié)構(gòu)圖來說明比較貼切:

可以看到,Master和Node之間有直接的通信交互過程,而Pod是部署在Node上的,簡(jiǎn)單理解,就是:

Master是一臺(tái)服務(wù)器,有固定的IP地址

Node是一臺(tái)服務(wù)器,有固定的IP地址

Pod是Node上的一個(gè)進(jìn)程,有一個(gè)虛擬的IP地址,有可能和Node IP地址相同,也有可能不同。

而我們知道,一個(gè)Pod中可以有多個(gè)容器,如果再加上容器,就會(huì)變成下面的樣子:

他們之間的調(diào)用關(guān)系簡(jiǎn)單來說就是:

當(dāng)Pod被創(chuàng)建的時(shí)候,它的信息就會(huì)被放入Master的Etcd存儲(chǔ),隨后這些創(chuàng)建Pod的信息會(huì)被K8S調(diào)度到某個(gè)Node上,并進(jìn)行綁定,然后該P(yáng)od它所在的Node上的kubelet進(jìn)程實(shí)例化成一組相關(guān)的Docker容器并啟動(dòng)起來。

以上就是kubernetes YAML文件的使用的詳細(xì)內(nèi)容,更多關(guān)于kubernetes YAML文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

標(biāo)簽:懷化 山南 賀州 通遼 湘潭 煙臺(tái) 湖北 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《kubernetes YAML文件的使用》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    简阳市| 江西省| 革吉县| 和田市| 岑巩县| 翁源县| 江永县| 云南省| 民县| 康平县| 岳池县| 永清县| 封丘县| 黄平县| 东城区| 康平县| 平江县| 台南县| 铁岭县| 万州区| 喀喇沁旗| 尉氏县| 宣城市| 长乐市| 阳泉市| 琼中| 周宁县| 武清区| 平山县| 苗栗市| 宜君县| 中宁县| 电白县| 南投县| 汕尾市| 新源县| 马尔康县| 昌邑市| 洱源县| 黄大仙区| 承德县|