日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

K8S 之yaml文件参数介绍1

發布時間:2023/12/13 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 K8S 之yaml文件参数介绍1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. YAML語法規則:

大小寫敏感
使用縮進表示層級關系
縮進時不允許使用Tal鍵,只允許使用空格
縮進的空格數目不重要,只要相同層級的元素左側對齊即可
”#” 表示注釋,從這個字符一直到行尾,都會被解析器忽略

2. yaml文件參數介紹

apiVersion: apps/v1         '//api版本標簽'
kind: Deployment            '//定義資源類型、角色,deployment是控制器'
metadata:                   '//定義資源的元數據'
  name: nginx-deployment    '//定義資源的名稱,在同一個namesapce中必須唯一'
  labels:                   '//定義資源的標簽'
    app: nginx
spec:                       '定義容器模板'
  replicas: 3               '//定義副本數量'
  selector:                 '//選擇器'
    matchLabels:            '//匹配的標簽'
      app: nginx            '//匹配模板名稱'
  template:                 '//模板'
    metadata:
      labels:
        app: nginx
    spec:
      containers:           '//定義容器信息'
      - name: nginx         '//-:表示參數,容器名,與標簽名要相同'
        image: nginx:1.15.4 '//容器使用的鏡像以及版本'
        ports:
        - containerPort: 80  '//定義容器的對外端口'

  apiVersion:此處值是v1,這個版本號需要根據安裝的Kubernetes版本和資源類型進行變化,記住不是寫死的。

  kind:此處創建的是Pod,根據實際情況,此處資源類型可以是Deployment、Job、Ingress、Service等。

  metadata:包含Pod的一些meta信息,比如名稱、namespace、標簽等信息。

  spec:包括一些container,storage,volume以及其他Kubernetes需要的參數,以及諸如是否在容器失敗時重新啟動容器的屬性。可在特定Kubernetes API找到完整的Kubernetes Pod的屬性。

apiVersion: v1             #指定api版本,此值必須在kubectl apiversion中  
  kind: Pod                  #指定創建資源的角色/類型  
  metadata:                  #資源的元數據/屬性  
    name: django-pod         #資源的名字,在同一個namespace中必須唯一  
    labels:                  #設定資源的標簽,使這個標簽在service網絡中備案,以便被獲知
      k8s-app: django
      version: v1  
      kubernetes.io/cluster-service: "true"  
    annotations:             #設置自定義注解列表  
       - name: String         #設置自定義注解名字  
  spec:                      #設置該資源的內容  
    restartPolicy: Always    #表示自動重啟,一直都會有這個容器運行
    nodeSelector:            #選擇node節點14     zone: node1  
    containers:  
    - name: django-pod        #容器的名字  
      image: django:v1.1      #容器使用的鏡像地址  
      imagePullPolicy: Never #三個選擇Always、Never、IfNotPresent,每次啟動時檢查和更新(從registery)images的策略,
                             # Always,每次都檢查
                             # Never,每次都不檢查(不管本地是否有)
                             # IfNotPresent,如果本地有就不檢查,如果沒有就拉取
      command: ['sh']        #啟動容器的運行命令,將覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT  
      args: ["$(str)"]       #啟動容器的命令參數,對應Dockerfile中CMD參數  
      env:                   #指定容器中的環境變量  
      - name: str            #變量的名字  
        value: "/etc/run.sh" #變量的值  
      resources:             #資源管理
        requests:            #容器運行時,最低資源需求,也就是說最少需要多少資源容器才能正常運行  
        cpu: 0.1           #CPU資源(核數),兩種方式,浮點數或者是整數+m,0.1=100m,最少值為0.001核(1m)
          memory: 32Mi       #內存使用量  
        limits:              #資源限制  
          cpu: 0.5  
          memory: 32Mi  
      ports:  
      - containerPort: 8080    #容器開發對外的端口
        name: uwsgi          #名稱
        protocol: TCP  
      livenessProbe:         #pod內容器健康檢查的設置
        httpGet:             #通過httpget檢查健康,返回200-399之間,則認為容器正常  
          path: /            #URI地址  
          port: 8080  
          #host: 127.0.0.1   #主機地址  
          scheme: HTTP  
        initialDelaySeconds: 180 #表明第一次檢測在容器啟動后多長時間后開始  
        timeoutSeconds: 5    #檢測的超時時間  
        periodSeconds: 15    #檢查間隔時間  
        #也可以用這種方法  
        #exec: 執行命令的方法進行監測,如果其退出碼不為0,則認為容器正常  
        #  command:  
        #    - cat  
        #    - /tmp/health  
        #也可以用這種方法  
        #tcpSocket: //通過tcpSocket檢查健康   
        #  port: number   
      lifecycle:             #生命周期管理(鉤子)  
        postStart:           #容器運行之前運行的任務  
          exec:  
            command:  
              - 'sh'  
              - 'yum upgrade -y'  
        preStop:             #容器關閉之前運行的任務  
          exec:  
            command: ['service httpd stop']  
      volumeMounts:          #掛載設置
      - name: volume         #掛載設備的名字,與volumes[*].name 需要對應    
        mountPath: /data     #掛載到容器的某個路徑下  
        readOnly: True  
    volumes:                 #定義一組掛載設備  
    - name: volume           #定義一個掛載設備的名字  
      #meptyDir: {}  
      hostPath:  
        path: /opt           #掛載設備類型為hostPath,路徑為宿主機下的/opt

  

3. 解析k8s中的pod

  【Port】: port是k8s集群內部訪問service的端口,即通過clusterIP: port可以訪問到某個service

  【nodePort】:nodePort是外部訪問k8s集群中service的端口,通過nodeIP: nodePort可以從外部訪問到某個service。

  【targetPort】:targetPort是pod的端口,從port和nodePort來的流量經過kube-proxy流入到后端pod的targetPort上,最后進入容器。

  【containerPort】:containerPort是pod內部容器的端口,targetPort映射到containerPort。

4. 生成YMAL或者JSON文件

## (1)直接生成yaml文件內容展示命令行界面,并不會保存
# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml

## (2)直接生成yaml文件內容展示命令行界面,文件另存為
# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml > my-deployment.yaml

## (3)直接生成json文件內容展示命令行界面,并不會保存
# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json

## (4)將現有的資源生成模板并命令行界面
#  kubectl get deploy/nginx-deployment --export -o yaml
## (5)將現有的資源生成模板保存到文件中
# kubectl get deploy/nginx-deployment --export -o yaml > shuai.yaml

  

  

總結

以上是生活随笔為你收集整理的K8S 之yaml文件参数介绍1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。