• k8s入门之ConfigMap(九)


    ConfigMap是k8s的配置管理工具,通常用来保存明文的配置信息,以key-value形式传递配置。

    一、使用命令创建ConfigMap对象

    1.通过--from-literal参数创建

    kubectl create configmap mycm1 --from-literal=appid=order-app --from-literal=appsecret=dfdg12342
    

    (1)查看创建结果

    kubectl get secret
    

    (2)使用describe命令查看详情

    kubectl describe secret mysecret1
    

    (3)输出yaml文件格式查看详情

    kubectl get secret mysecret1 -o yaml
    

    2.通过已有的应用配置文件创建

    (1)创建一个应用的配置文件

    vi appsettings.json
    

    (2)写入以下测试内容

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*"
    }
    

    (3)使用--from-file参数指定该文件

    kubectl create cm mycm2 --from-file=appsettings.json
    

    --from-file可以使用多次;也可以使用目录,表示该目录下所有的配置文件都会创建成cm对象,默认key为文件名。

    (4)查看创建结果

    二、使用yaml文件创建ConfigMap

    1.创建yaml文件

    vi cm-my3.yaml
    

    2.编写yaml文件内容

    apiVersion: v1
    kind: ConfigMap
    metadata: 
      name: mycm3
    data:
      ordersvc-conf: |+
        IP: "192.168.59.110"
        Port: 10000
    

    3.执行创建命令

    kubectl apply -f cm-my3.yaml
    

    4.查看创建结果

    三、使用ConfigMap对象

    1.通过环境变量的形式

    liunx自带的命令env,用来查看当前系统的环境变量,我们可以把cm对象设置到环境变量上来查看。

    (1)新建pod对象的yaml文件

    vi mycm1-env.yaml
    

    (2)编写yaml文件内容

    
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-test-mycm1
    spec:
      containers:
      - name: pod-test-mycm1-bb
        image: busybox
        command: ["/bin/sh", "-c", "env"]
        # 从cm对象中获取对应key的值赋值给环境变量
        env:
        - name: APPID
          valueFrom:
            configMapKeyRef:
              name: mycm1
              key: appid
        - name: APPSECRET
          valueFrom:
            configMapKeyRef:
              name: mycm1
              key: appsecret
    

    (3)创建pod

    kubectl create -f mycm1-env.yaml
    

    (4)查看pod,在默认名称空间下

    通过查看此pod的日志,可以看到输出的环境变量信息是mycm1对象的信息

    2.通过vloume挂载方式

    (1)新建pod对象的yaml文件

    vi mycm2-volume.yaml
    

    (2)编写yaml文件内容

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-test-mycm2
    spec:
      containers:
      - name: pod-test-mycm2-bb
        image: busybox
        command: ["/bin/sh", "-c", "cat /etc/cms/my-appsettings.json"]
        volumeMounts:
        - name: cms
          mountPath: /etc/cms
      volumes:
      - name: cms
        configMap:
         name: mycm2
         items:
         # 把cm对象挂载到文件名
         - key: appsettings.json
           path: my-appsettings.json
    

    (3)创建pod

    kubectl create -f mycm2-volume.yaml
    

    (4)查看pod,在默认名称空间下

    通过查看此pod的日志,可以看到输出的信息是mycm2对象中的数据

  • 相关阅读:
    再来谈谈如何从binlog文件恢复误update的数据,模拟Oracle的闪回功能
    2022年数据泄露平均成本高达435万美元,创历史新高!
    npm install webpack 下载失败
    vscode结合GitHub Copilot编码
    [PAT-Advanced] A1015 Reversible Primes (20)
    使用R语言计算并绘制流体力学中的二维泊肃叶流
    利用人工智能提升企业培训的个性化体验
    聊聊KafkaListener的实现机制
    【Java】IO流体常用类FileReader和FileWriter
    python各种编辑器、APP、软件下载
  • 原文地址:https://www.cnblogs.com/chuandao/p/16204798.html