美文网首页
configMap的使用

configMap的使用

作者: 理想枫林晚 | 来源:发表于2019-12-10 10:19 被阅读0次

    1、创建配置源文件

    vi my.cnf
    
    [mysqld]
    user=mysql
    port=3307
    

    2、创建Pod容器文件

    vi  test-mysql-config.yaml
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: test-configmap
    spec:
      containers:
      - name: test-configmap-volume
        image: busybox
        args:
        - sleep
        - "86400"
        volumeMounts:
        - name: mysqlcfmap
          mountPath: "/mysqlcfmap"
          readOnly: true
      volumes:
      - name: mysqlcfmap
        configMap:
           name: mysqlcfmap
    

    3、创建configMap

    kubectl  create configmap mysqlcfmap --from-file=./my.cnf
    

    4、查看configMap信息

    kubectl get configmaps mysqlcfmap -o yaml
    

    5、创建Pod

    kubectl create -f test-mysql-config.yaml
    

    6、进入Pod查看

    kubectl exec -it test-configmap sh
    
    cat mysqlcfmap/my.cnf
    

    成功!!

    configMap案例

    1 从普通文件创建

      kubectl  create  configmap mysql-cnf  --from-file=my-cnf=./my.cnf
    

    2 从 yaml 文件创建

    # ./kustomization.yaml
    configMapGenerator:
    - name:  mysql-cnf
      files:
      - my-cnf=./my.cnf
    
    
    kubectl apply -f ./kustomization.yaml
    

    Pod使用

    1、更新
    更新 Etcd 中配置数据

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-configmap
    spec:
      containers:
      - name: test-configmap-volume
        image: busybox
        args:
        - sleep
        - "86400"
        volumeMounts:
        - name: mysqlcfmap
          mountPath: "/etc/config" # 挂载到容器中目录,这个目录会自动创建
      volumes:
      - name: mysqlcfmap
        configMap:
           name: mycnf  # 创建 configmap 对象的名称
           items:
           - key: my-cnf   # 创建  configmap 对象时指定的 key
             path: my.cnf  # 容器 a 目录中的文件名
    
        # /etc/config/my.cnf  # 软链接
    

    2、不更新

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-configmap
    spec:
      containers:
      - name: test-configmap-volume
        image: busybox
        args:
        - sleep
        - "86400"
        volumeMounts:
        - name: mysqlcfmap
          mountPath: "/etc/my.cnf" # 挂载到容器中目录,这个目录会自动创建
          subPath: my.cnf
      volumes:
      - name: mysqlcfmap
        configMap:
           name: mycnf  # 创建 configmap 对象的名称
           items:
           - key: my-cnf   # 创建  configmap 对象时指定的 key
             path: my.cnf  # 容器 a 目录中的文件名
    

    使用key,path的方式可以动态更新数据
    注意: 使用subPath的方式,无法实现动态更新
    根据场景合理使用

    相关文章

      网友评论

          本文标题:configMap的使用

          本文链接:https://www.haomeiwen.com/subject/gmvwgctx.html