Kubernetes之yaml文件詳解(匯總-詳細)


一、YAML基礎

YAML是專門用來寫配置文件的語言,非常簡潔和強大,使用比json更方便。它實質上是一種通用的數據串行化格式。

YAML語法規則:

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

Lists
Maps
 

1.1 YAML Maps

 Map顧名思義指的是字典,即一個Key:Value 的鍵值對信息。例如:

apiVersion: v1
kind: Pod
  注:---為可選的分隔符 ,當需要在一個文件中定義多個結構的時候需要使用。上述內容表示有兩個鍵apiVersion和kind,分別對應的值為v1和Pod。

Maps的value既能夠對應字符串也能夠對應一個Maps。例如:

apiVersion: v1
kind: Pod
metadata:
  name: kube100-site
  labels:
    app: web

注:上述的YAML文件中,metadata這個KEY對應的值為一個Maps,而嵌套的labels這個KEY的值又是一個Map。實際使用中可視情況進行多層嵌套。

YAML處理器根據行縮進來知道內容之間的關聯。上述例子中,使用兩個空格作為縮進,但空格的數據量並不重要,只是至少要求一個空格並且所有縮進保持一致的空格數 。例如,name和labels是相同縮進級別,因此YAML處理器知道他們屬於同一map;它知道app是lables的值因為app的縮進更大。

注意:在YAML文件中絕對不要使用tab鍵

1.2 YAML Lists

List即列表,說白了就是數組,例如:

args:
 -beijing
 -shanghai
 -shenzhen
 -guangzhou

可以指定任何數量的項在列表中,每個項的定義以破折號(-)開頭,並且與父元素之間存在縮進。在JSON格式中,表示如下:

 

{
  "args": ["beijing", "shanghai", "shenzhen", "guangzhou"]
}

 

當然Lists的子項也可以是Maps,Maps的子項也可以是List,例如:

 
apiVersion: v1
kind: Pod
metadata:
  name: kube100-site
  labels:
    app: web
spec:
  containers:
    - name: front-end
      image: nginx
      ports:
        - containerPort: 80
    - name: flaskapp-demo
      image: jcdemo/flaskapp
      ports: 8080
 

 

 

 如上述文件所示,定義一個containers的List對象,每個子項都由name、image、ports組成,每個ports都有一個KEY為containerPort的Map組成,轉成JSON格式文件:

 
{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
        "name": "kube100-site",
        "labels": {
            "app": "web"
        },
 
  },
  "spec": {
        "containers": [{
            "name": "front-end",
            "image": "nginx",
            "ports": [{
                "containerPort": "80"
            }]
        }, {
            "name": "flaskapp-demo",
            "image": "jcdemo/flaskapp",
            "ports": [{
                "containerPort": "5000"
            }]
        }]
  }
}
 

 

二、說明

定義配置時,指定最新穩定版API
配置文件應該存儲在集群之外的版本控制倉庫中。如果需要,可以快速回滾配置、重新創建和恢復
應該使用YAML格式編寫配置文件,而不是json。YAML對用戶更加友好
可以將相關對象組合成單個文件,通常會更容易管理
不要沒必要指定默認值,簡單和最小配置減小錯誤
在注釋中說明一個對象描述更好維護

三、使用YAML創建Pod

 
apiVersion: v1
kind: Pod
metadata:
  name: kube100-site
  labels:
    app: web
spec:
  containers:
    - name: front-end
      image: nginx
      ports:
        - containerPort: 80
    - name: flaskapp-demo
      image: jcdemo/flaskapp
      ports:
        - containerPort: 5000 
 

apiVersion:此處值是v1,這個版本號需要根據安裝的Kubernetes版本和資源類型進行變化,記住不是寫死的。
kind:此處創建的是Pod,根據實際情況,此處資源類型可以是Deployment、Job、Ingress、Service等。
metadata:包含Pod的一些meta信息,比如名稱、namespace、標簽等信息。
spec:包括一些container,storage,volume以及其他Kubernetes需要的參數,以及諸如是否在容器失敗時重新啟動容器的屬性。可在特定Kubernetes API找到完整的Kubernetes Pod的屬性。
  (1)查看apiVersion

# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

(2)下面是一個典型的容器定義:

spec:
  containers:
    - name: front-end
      image: nginx
      ports:
        - containerPort: 80
 

 

 

上述例子只是一個簡單的最小定義:一個名字(front-end)、基於nginx的鏡像,以及容器將會監聽的指定端口號(80)。

除了上述的基本屬性外,還能夠指定復雜的屬性,包括容器啟動運行的命令、使用的參數、工作目錄以及每次實例化是否拉取新的副本。 還可以指定更深入的信息,例如容器的退出日志的位置。容器可選的設置屬性包括:

name、image、command、args、workingDir、ports、env、resource、volumeMounts、livenessProbe、readinessProbe、livecycle、terminationMessagePath、imagePullPolicy、securityContext、stdin、stdinOnce、tty

(3)kubectl創建Pod

# kubectl create -f test_pod.yaml
pod "kube100-site" created

 

四、創建Deployment

名詞解釋

#test-pod 
apiVersion: v1 #指定api版本,此值必須在kubectl apiversion中   
kind: Pod #指定創建資源的角色/類型   
metadata: #資源的元數據/屬性   
  name: test-pod #資源的名字,在同一個namespace中必須唯一   
  labels: #設定資源的標簽 
    k8s-app: apache   
    version: v1   
    kubernetes.io/cluster-service: "true"   
  annotations:            #自定義注解列表   
    - name: String        #自定義注解名字   
spec: #specification of the resource content 指定該資源的內容   
  restartPolicy: Always #表明該容器一直運行,默認k8s的策略,在此容器退出后,會立即創建一個相同的容器   
  nodeSelector:     #節點選擇,先給主機打標簽kubectl label nodes kube-node1 zone=node1   
    zone: node1   
  containers:   
  - name: test-pod #容器的名字   
    image: 10.192.21.18:5000/test/chat:latest #容器使用的鏡像地址   
    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: 1000Mi   
    ports:   
    - containerPort: 80 #容器開發對外的端口 
      name: httpd  #名稱 
      protocol: TCP   
    livenessProbe: #pod內容器健康檢查的設置 
      httpGet: #通過httpget檢查健康,返回200-399之間,則認為容器正常   
        path: / #URI地址   
        port: 80   
        #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,這里設備類型支持很多種 
    #nfs
 

(1)創建一個yaml文件

 
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.10
        ports:
        - containerPort: 80
 

(2)創建deployment

 
[root@master-01 YAML_k8s]# kubectl create -f nginx-deployment.yaml
deployment.apps "nginx-deployment" created
[root@master-01 YAML_k8s]# kubectl get pod -o  wide
NAME                                READY     STATUS    RESTARTS   AGE       IP              NODE
nginx-deployment-6b7b4d57b4-26wzj   1/1       Running   0          2m        10.20.184.83    master-01
nginx-deployment-6b7b4d57b4-9w7tm   1/1       Running   0          2m        10.20.190.60    node-01
nginx-deployment-6b7b4d57b4-mhh8t   1/1       Running   0          2m        10.20.254.108   node-03
[root@master-01 YAML_k8s]# kubectl get deployment
NAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3         3         3            3           2m
 

(3)查看標簽

[root@master-01 YAML_k8s]# kubectl get pod --show-labels
NAME                                READY     STATUS    RESTARTS   AGE       LABELS
nginx-deployment-6b7b4d57b4-26wzj   1/1       Running   0          3m        app=nginx,pod-template-hash=2636081360
nginx-deployment-6b7b4d57b4-9w7tm   1/1       Running   0          3m        app=nginx,pod-template-hash=2636081360
nginx-deployment-6b7b4d57b4-mhh8t   1/1       Running   0          3m        app=nginx,pod-template-hash=2636081360

(4)通過標簽查找Pod

[root@master-01 YAML_k8s]# kubectl get pod -l app=nginx
NAME                                READY     STATUS    RESTARTS   AGE
nginx-deployment-6b7b4d57b4-26wzj   1/1       Running   0          6m
nginx-deployment-6b7b4d57b4-9w7tm   1/1       Running   0          6m
nginx-deployment-6b7b4d57b4-mhh8t   1/1       Running   0          6m

(5)deployment創建過程

Deployment 管理的是replicaset-controller,RC會創建Pod。Pod自身會下載鏡像並啟動鏡像

 
[root@master-01 YAML_k8s]# kubectl describe rs nginx-deployment
...
...
...
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  33m   replicaset-controller  Created pod: nginx-deployment-6b7b4d57b4-9w7tm
  Normal  SuccessfulCreate  33m   replicaset-controller  Created pod: nginx-deployment-6b7b4d57b4-26wzj
  Normal  SuccessfulCreate  33m   replicaset-controller  Created pod: nginx-deployment-6b7b4d57b4-mhh8t
 
 
[root@master-01 YAML_k8s]# kubectl describe pod nginx-deployment-6b7b4d57b4-26wzj

...
...
...
Events:
 Type    Reason                 Age   From                Message
 ----    ------                 ----  ----                -------
 Normal  Scheduled              36m   default-scheduler   Successfully assigned nginx-deployment-6b7b4d57b4-26wzj to master-01
 Normal  SuccessfulMountVolume  36m   kubelet, master-01  MountVolume.SetUp succeeded for volume "default-token-v5vw9"
 Normal  Pulled                 36m   kubelet, master-01  Container image "nginx:1.10" already present on machine
 Normal  Created                36m   kubelet, master-01  Created container
 Normal  Started                36m   kubelet, master-01  Started container
 

(6)升級鏡像(nginx1.10–>nginx1.11)

 
[root@master-01 YAML_k8s]# kubectl set image deploy/nginx-deployment nginx=nginx:1.11
deployment.apps "nginx-deployment" image updated
 
[root@master-01 YAML_k8s]# kubectl exec -it nginx-deployment-b96c97dc-2pxjf bash
root@nginx-deployment-b96c97dc-2pxjf:/# nginx -V
nginx version: nginx/1.11.13
 

升級鏡像的過程是逐步進行的,pod不會一下子全部關閉,而是一個一個升級

(7)查看發布狀態

[root@master-01 ~]# kubectl rollout status deploy/nginx-deployment
deployment "nginx-deployment" successfully rolled out

(8)查看deployment歷史修訂版本

 
[root@master-01 ~]# kubectl rollout history deploy/nginx-deployment
deployments "nginx-deployment"
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
 
# 顯示歷史有兩個版本
 
[root@master-01 ~]# kubectl rollout history deploy/nginx-deployment --revision=1
deployments "nginx-deployment" with revision #1
Pod Template:
  Labels:   app=nginx
    pod-template-hash=2636081360
  Containers:
   nginx:
    Image:  nginx:1.10
    Port:   80/TCP
    Host Port:  0/TCP
    Environment:    <none>
    Mounts: <none>
  Volumes:  <none>
 
[root@master-01 ~]# kubectl rollout history deploy/nginx-deployment --revision=2
deployments "nginx-deployment" with revision #2
Pod Template:
  Labels:   app=nginx
    pod-template-hash=65275387
  Containers:
   nginx:
    Image:  nginx:1.11
    Port:   80/TCP
    Host Port:  0/TCP
    Environment:    <none>
    Mounts: <none>
  Volumes:  <none>
 

(8)編輯deployment

 
[root@master-01 ~]# kubectl edit deploy/nginx-deployment
 
 
# 將nginx版本改為1.12
...
...
...
   spec:
      containers:
      - image: nginx:1.12
        imagePullPolicy: IfNotPresent
        name: nginx
        ports:
        - containerPort: 80
 

 升級過程:

 
[root@master-01 ~]# kubectl rollout status deploy/nginx-deployment
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for rollout to finish: 1 old replicas are pending termination...
Waiting for rollout to finish: 1 old replicas are pending termination...
deployment "nginx-deployment" successfully rolled out
 

(10)擴容/縮容(指定–replicas的數量)

 
[root@master-01 ~]# kubectl get pod
NAME                                READY     STATUS    RESTARTS   AGE
nginx-deployment-6b47cf4878-8mjkr   1/1       Running   0          1m
nginx-deployment-6b47cf4878-kr978   1/1       Running   0          1m
nginx-deployment-6b47cf4878-tvhvl   1/1       Running   0          1m

[root@master-01 ~]# kubectl scale deploy/nginx-deployment --replicas=5
deployment.extensions "nginx-deployment" scaled

[root@master-01 ~]# kubectl get pod
NAME                                READY     STATUS              RESTARTS   AGE
nginx-deployment-6b47cf4878-6r5dz   0/1       ContainerCreating   0          4s
nginx-deployment-6b47cf4878-7sjtt   0/1       ContainerCreating   0          4s
nginx-deployment-6b47cf4878-8mjkr   1/1       Running             0          2m
nginx-deployment-6b47cf4878-kr978   1/1       Running             0          2m
nginx-deployment-6b47cf4878-tvhvl   1/1       Running             0          2m
 

(11)創建Service提供對外訪問的接口

 
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
spec:
  ports:
  - port: 88
    targetPort: 80
  selector:
    app: nginx
 
####
apiVersion: 指定版本
 
kind: 類型
 
name: 指定服務名稱
 
labels: 標簽
 
port: Service 服務暴露的端口
 
targetPort: 容器暴露的端口
 
seletor: 關聯的Pod的標簽
 

創建service

# kubectl create -f nginx-service.yaml

查看service(訪問Pod是有負載均衡的)

[root@master-01 YAML_k8s]# kubectl get svc/nginx-service
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
nginx-service   ClusterIP   10.254.131.176   <none>        88/TCP    1m
 
# curl 10.254.131.176:88

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
   body {
       width: 35em;
       margin: 0 auto;
       font-family: Tahoma, Verdana, Arial, sans-serif;
   }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
 

對service的描述

 
# kubectl describe svc/nginx-service
Name:              nginx-service
Namespace:         default
Labels:            app=nginx
Annotations:       <none>
Selector:          app=nginx
Type:              ClusterIP
IP:                10.254.131.176
Port:              <unset>  88/TCP
TargetPort:        80/TCP
Endpoints:         10.20.184.19:80,10.20.184.84:80,10.20.190.62:80 + 2 more...
Session Affinity:  None
Events:            <none>
 

(12)回滾到以前的版本

# kubectl rollout history deploy/nginx-deployment
deployments "nginx-deployment"
REVISION  CHANGE-CAUSE
1         <none>
2         <none>
3         <none>
 
# kubectl rollout history deploy/nginx-deployment --revision=3
deployments "nginx-deployment" with revision #3
Pod Template:
 Labels:   app=nginx
   pod-template-hash=2603790434
 Containers:
  nginx:
   Image:  nginx:1.12
   Port:   80/TCP
   Host Port:  0/TCP
   Environment:    <none>
   Mounts: <none>
 Volumes:  <none>
 
# 回滾到上一個版本
# kubectl rollout undo deploy/nginx-deployment
deployment.apps "nginx-deployment"


# 查看版本
# kubectl describe deploy/nginx-deployment
...
...
Labels:  app=nginx
 Containers:
  nginx:
   Image:        nginx:1.11

(13)回滾到指定版本

# kubectl rollout history deploy/nginx-deployment
deployments "nginx-deployment"
REVISION  CHANGE-CAUSE
1         <none>
3         <none>
4         <none>
 
# 指定版本
# kubectl rollout undo deploy/nginx-deployment --to-revision=1
deployment.apps "nginx-deployment"

附上一個具體的yaml解釋文件:

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

 

 

 

 

本文轉自:  https://blog.csdn.net/BigData_Mining/article/details/88535356


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM