溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

K8S中yaml文件的作用是什么

發(fā)布時(shí)間:2021-08-05 16:11:57 來源:億速云 閱讀:549 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)K8S中yaml文件的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、介紹

先提供個(gè)完整的定義案例

apiVersion: v1                    #必選,版本號(hào),例如v1,版本號(hào)必須可以用 kubectl api-versions 查詢到 .
kind: Pod                      #必選,Pod
metadata:                      #必選,元數(shù)據(jù)
  name: string                    #必選,Pod名稱
  namespace: string               #必選,Pod所屬的命名空間,默認(rèn)為"default"
  labels:                       #自定義標(biāo)簽
    - name: string                 #自定義標(biāo)簽名字
  annotations:                           #自定義注釋列表
    - name: string
spec:                            #必選,Pod中容器的詳細(xì)定義
  containers:                       #必選,Pod中容器列表
  - name: string                        #必選,容器名稱,需符合RFC 1035規(guī)范
    image: string                       #必選,容器的鏡像名稱
    imagePullPolicy: [ Always|Never|IfNotPresent ]  #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像
    command: [string]               #容器的啟動(dòng)命令列表,如不指定,使用打包時(shí)使用的啟動(dòng)命令
    args: [string]                     #容器的啟動(dòng)命令參數(shù)列表
    workingDir: string                     #容器的工作目錄
    volumeMounts:                 #掛載到容器內(nèi)部的存儲(chǔ)卷配置
    - name: string                 #引用pod定義的共享存儲(chǔ)卷的名稱,需用volumes[]部分定義的的卷名
      mountPath: string                 #存儲(chǔ)卷在容器內(nèi)mount的絕對(duì)路徑,應(yīng)少于512字符
      readOnly: boolean                 #是否為只讀模式
    ports:                      #需要暴露的端口庫號(hào)列表
    - name: string                 #端口的名稱
      containerPort: int                #容器需要監(jiān)聽的端口號(hào)
      hostPort: int                    #容器所在主機(jī)需要監(jiān)聽的端口號(hào),默認(rèn)與Container相同
      protocol: string                  #端口協(xié)議,支持TCP和UDP,默認(rèn)TCP
    env:                          #容器運(yùn)行前需設(shè)置的環(huán)境變量列表
    - name: string                    #環(huán)境變量名稱
      value: string                   #環(huán)境變量的值
    resources:                          #資源限制和請(qǐng)求的設(shè)置
      limits:                       #資源限制的設(shè)置
        cpu: string                   #Cpu的限制,單位為core數(shù),將用于docker run --cpu-shares參數(shù)
        memory: string                  #內(nèi)存限制,單位可以為Mib/Gib,將用于docker run --memory參數(shù)
      requests:                         #資源請(qǐng)求的設(shè)置
        cpu: string                   #Cpu請(qǐng)求,容器啟動(dòng)的初始可用數(shù)量
        memory: string                    #內(nèi)存請(qǐng)求,容器啟動(dòng)的初始可用數(shù)量
    livenessProbe:                    #對(duì)Pod內(nèi)各容器健康檢查的設(shè)置,當(dāng)探測(cè)無響應(yīng)幾次后將自動(dòng)重啟該容器,檢查方法有exec、httpGet和tcpSocket,對(duì)一個(gè)容器只需設(shè)置其中一種方法即可
      exec:                     #對(duì)Pod容器內(nèi)檢查方式設(shè)置為exec方式
        command: [string]               #exec方式需要制定的命令或腳本
      httpGet:                    #對(duì)Pod內(nèi)個(gè)容器健康檢查方法設(shè)置為HttpGet,需要制定Path、port
        path: string
        port: number
        host: string
        scheme: string
        HttpHeaders:
        - name: string
          value: string
      tcpSocket:            #對(duì)Pod內(nèi)個(gè)容器健康檢查方式設(shè)置為tcpSocket方式
         port: number
       initialDelaySeconds: 0       #容器啟動(dòng)完成后首次探測(cè)的時(shí)間,單位為秒
       timeoutSeconds: 0          #對(duì)容器健康檢查探測(cè)等待響應(yīng)的超時(shí)時(shí)間,單位秒,默認(rèn)1秒
       periodSeconds: 0           #對(duì)容器監(jiān)控檢查的定期探測(cè)時(shí)間設(shè)置,單位秒,默認(rèn)10秒一次
       successThreshold: 0
       failureThreshold: 0
       securityContext:
         privileged: false
    restartPolicy: [Always | Never | OnFailure] #Pod的重啟策略,Always表示一旦不管以何種方式終止運(yùn)行,kubelet都將重啟,OnFailure表示只有Pod以非0退出碼退出才重啟,Nerver表示不再重啟該P(yáng)od
    nodeSelector: obeject         #設(shè)置NodeSelector表示將該P(yáng)od調(diào)度到包含這個(gè)label的node上,以key:value的格式指定
    imagePullSecrets:         #Pull鏡像時(shí)使用的secret名稱,以key:secretkey格式指定
    - name: string
    hostNetwork: false            #是否使用主機(jī)網(wǎng)絡(luò)模式,默認(rèn)為false,如果設(shè)置為true,表示使用宿主機(jī)網(wǎng)絡(luò)
    volumes:                  #在該pod上定義共享存儲(chǔ)卷列表
    - name: string              #共享存儲(chǔ)卷名稱 (volumes類型有很多種)
      emptyDir: {}              #類型為emtyDir的存儲(chǔ)卷,與Pod同生命周期的一個(gè)臨時(shí)目錄。為空值
      hostPath: string            #類型為hostPath的存儲(chǔ)卷,表示掛載Pod所在宿主機(jī)的目錄
        path: string                #Pod所在宿主機(jī)的目錄,將被用于同期中mount的目錄
      secret:                 #類型為secret的存儲(chǔ)卷,掛載集群與定義的secre對(duì)象到容器內(nèi)部
        scretname: string  
        items:     
        - key: string
          path: string
      configMap:                      #類型為configMap的存儲(chǔ)卷,掛載預(yù)定義的configMap對(duì)象到容器內(nèi)部
        name: string
        items:
        - key: string
          path: string

二、apiVersion

Deployment API 版本對(duì)照表

Kubernetes 版本Deployment 版本
v1.5-v1.15extensions/v1beta1
v1.7-v1.15apps/v1beta1
v1.8-v1.15apps/v1beta2
v1.9+apps/v1

看完上述內(nèi)容,你們對(duì)K8S中yaml文件的作用是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI