中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes實踐之三十五:Pod配置管理ConfigMap

發布時間:2020-08-11 13:19:51 來源:ITPUB博客 閱讀:185 作者:百聯達 欄目:云計算
一:簡介
很多生產環境中的應用程序配置較為復雜,可能需要多個config文件、命令行參數和環境變量的組合。使用容器部署時,把配置應該從應用程序鏡像中解耦出來,以保證鏡像的可移植性。

ConfigMap是用來存儲配置文件的kubernetes資源對象,所有的配置內容都存儲在etcd中。ConfigMap讓我們能夠從容器鏡像中把配置的詳細信息給解耦出來。通過ConfigMap我們能夠把配置以key-value對的形式傳遞到container或者別的系統組件(比如Controller)里面。
二:ConfigMap的創建方式
1.From Literal Values   可以用kubectl create來創建一個ConfigMap,然后通過kubectl get來獲取

點擊(此處)折疊或打開

  1. # Create the ConfigMap
  2. $ kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2
  3. configmap "my-config" created

  4. # Get the ConfigMap Details for my-config
  5. $ kubectl get configmaps my-config -o yaml
  6. apiVersion: v1
  7. data:
  8.   key1: value1
  9.   key2: value2
  10. kind: ConfigMap
  11. metadata:
  12.   creationTimestamp: 2017-05-31T07:21:55Z
  13.   name: my-config
  14.   namespace: default
  15.   resourceVersion: "241345"
  16.   selfLink: /api/v1/namespaces/default/configmaps/my-config
  17.   uid: d35f0a3d-45d1-11e7-9e62-080027a46057
2.From Configuration File 直接通過配置文件來創建

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4.   name: special-config
  5.   namespace: default
  6. data:
  7.   special.how: very

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4.   name: env-config
  5.   namespace: default
  6. data:
  7.   log_level: INFO
3. 當前目錄下包含如果有配置文件donkey.properties   可以通過kubectl命令創建一個包含該文件內容的ConfigMap

kubectl  create configmap donkey.properties --from-file=donkey.properties

三:ConfigMap的使用方式

1.Pod 通過env使用ConfigMap定義環境變量

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: dapi-test-pod
  5. spec:
  6.   containers:
  7.     - name: test-container
  8.       image: gcr.io/google_containers/busybox
  9.       command: [ "/bin/sh", "-c", "env" ]
  10.       env:
  11.         - name: SPECIAL_LEVEL_KEY
  12.           valueFrom:
  13.             configMapKeyRef:
  14.               name: special-config
  15.               key: special.how
  16.         - name: LOG_LEVEL
  17.           valueFrom:
  18.             configMapKeyRef:
  19.               name: env-config
  20.               key: log_level
  21.   restartPolicy: Never
從Kubernetes V1.6 開始,引入一個新的字段envFrom,實現在Pod環境內將ConfigMap中所以定義的key=value自動生成環境變量:

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: dapi-test-pod
  5. spec:
  6.   containers:
  7.     - name: test-container
  8.       image: gcr.io/google_containers/busybox
  9.       command: [ "/bin/sh", "-c", "env" ]
  10.       envFrom:
  11.       - configMapRef:
  12.          namespecial-config
  13.   restartPolicy: Never


2.使用
ConfigMap設置容器啟動命令的啟動參數

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: dapi-test-pod
  5. spec:
  6.   containers:
  7.     - name: test-container
  8.       image: k8s.gcr.io/busybox
  9.       command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]
  10.       env:
  11.         - name: SPECIAL_LEVEL_KEY
  12.           valueFrom:
  13.             configMapKeyRef:
  14.               name: special-config
  15.               key: SPECIAL_LEVEL
  16.         - name: SPECIAL_TYPE_KEY
  17.           valueFrom:
  18.             configMapKeyRef:
  19.               name: special-config
  20.               key: SPECIAL_TYPE
  21.   restartPolicy: Never
3.在存儲卷中使用ConfigMap

點擊(此處)折疊或打開

  1. apiVersion: v1
    kind: Pod
    metadata:
      name: busybox
      namespace: default
    spec:
      containers:
      - image: 120.79.156.135/desktop/busybox:latest
        command:
          - sleep
          - "3600"
        imagePullPolicy: IfNotPresent
        name: busybox
        volumeMounts:
        -  name: donkeyconfig
           mountPath: /configfiles
      volumes: 
      -  name: donkeyconfig
         configMap:
            name: donkey.properties
            items: 
            -  key: donkey.properties
               path: donkey.properties
      restartPolicy: Always
      imagePullSecrets:
      - name: registry-secret
四:使用ConfigMap的限制條件
1.ConfigMap必須在Pod之前創建
2.ConfigMap受Namespace限制,只有處于相同Namespaces中的Pod可以引用它
3.ConfigMap 中的配額管理還未能實現
4.kubelet只支持可以被API Server管理的Pod使用ConfigMap
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜宁县| 金昌市| 黄冈市| 丰宁| 乐安县| 钟祥市| 三门县| 樟树市| 东乌珠穆沁旗| 东乡县| 廊坊市| 秦安县| 泸定县| 汾西县| 枣阳市| 榆中县| 济源市| 历史| 连江县| 盐边县| 上饶县| 隆回县| 夹江县| 叶城县| 青铜峡市| 无极县| 盐城市| 黑山县| 会同县| 广东省| 凌云县| 通山县| 镶黄旗| 大石桥市| 依兰县| 潞西市| 岑溪市| 金溪县| 博乐市| 平阳县| 呼图壁县|