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: v1kind: Podmetadata:  name: pod-test-mycm1spec:  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对象中的数据

图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值