k 8 s-configmapはpodで使用します.

6592 ワード

含まれる環境変数、ファイル、ディレクトリを使用します.
  • コマンドラインの字面量作成
    kubectl create configmap test-conf003 --from-literal=aa=1 --from-literal=bb=2
  • 作成されたconfigmapを見て、yamlファイルの展示
    [root@controller01 confmap]# kubectl get configmap test-conf003 -o yaml
    apiVersion: v1
    data:
    aa: "1"
    bb: "2"
    kind: ConfigMap
    metadata:
    creationTimestamp: 2017-06-21T09:36:26Z
    name: test-conf003
    namespace: default
    resourceVersion: "2465633"
    selfLink: /api/v1/namespaces/default/configmaps/test-conf003
    uid: 1900baf0-5665-11e7-901f-6c92bf2e6e88
  • .yamlファイルからpodを作成します.yamlファイル
    apiVersion: v1
    kind: Pod
    metadata:
    name: testpod001
    spec:
    containers:
       - name: testcontainer
         image: 10.21.1.151/quicksilver/deploy_openresty:1.2
         volumeMounts:
           - name: testvolume
             mountPath: /tmp/config
           - name: nginx-config-volume
             mountPath: /tmp/
         command: ["/bin/sh", "-c", "/usr/local/openresty/nginx/sbin/nginx -c /tmp/nginx.conf"]
         env:
            - name: SPECIAL_KEY1
              valueFrom:
                  configMapKeyRef:
                      name: test-conf003 
                      key:  aa
            - name: SPECIAL_KEY2
              valueFrom:
                  configMapKeyRef:
                      name: test-conf003 
                      key:  bb
    volumes:
       - name: testvolume
         configMap:
            name: testconf004
       - name: nginx-config-volume
         configMap:
            name: nginx-conf
            items:
                - key: nginx.conf
                  path: nginx.conf
  • execはpod
    [root@controller01 confmap]# kubectl exec -it testpod001  /bin/bash
  • に入ります.
  • .configmapからpodが導入した環境変数
    [root@testpod001 /]# env | grep SPEC*
    SPECIAL_KEY2=2
    SPECIAL_KEY1=1
    を確認すると、configmapのdataデータがすでにpodに導入されていることが分かります.
  • ファイルのマウント
    [root@testpod001 /]# ll /tmp/
    total 0
    drwxrwxrwx 3 root root 143 Jun 22 02:14 config
    lrwxrwxrwx 1 root root  17 Jun 22 02:14 nginx.conf -> ..data/nginx.conf
    を確認します.このフォルダの下にある全体のファイル数は0で、configとnginx.co nfはすべてマウントされています.ファイルはすべてソフト接続
  • です.
  • .マウントディレクトリのファイル
    [root@testpod001 config]# ll
    total 0
    lrwxrwxrwx 1 root root 14 Jun 22 02:14 test.sh -> ..data/test.sh
    lrwxrwxrwx 1 root root 12 Jun 22 02:14 test1 -> ..data/test1
    lrwxrwxrwx 1 root root 12 Jun 22 02:14 test2 -> ..data/test2
    lrwxrwxrwx 1 root root 15 Jun 22 02:14 test2.sh -> ..data/test2.sh
    lrwxrwxrwx 1 root root 26 Jun 22 02:14 test_configmap.yaml -> ..data/test_configmap.yaml
  • を確認する.
  • は、アップロードディレクトリ内のファイルとの相互呼び出し関係が正しい
    [root@testpod001 config]# cat test.sh
    #!/bin/bash
    cat ./test1
    [root@testpod001 config]# cat test1
    key=123
    [root@testpod001 config]# /bin/bash test.sh
    key=123
    の例の使用がnginxであることを検証し、nginx.com nfでは、現在のディレクトリのmine.typeファイルを呼び出す必要がある.