Loading
0

kubernetes/k8s创建ConfigMap创建及挂载使用方法

前言:今天刚好学习到了kubernetes/k8s创建ConfigMap配置文件方法以及挂载ConfigMap方法,以变量挂在和数据卷 Volume 挂载。做个记录,方便自己后面查看。
作用:与secret类似,但用于存储不加密的数据到etcd中,让pod以变量或者Volume挂载到容器使用。
使用场景:配置文件
完整k8s教程可参考:https://blog.tag.gg/showinfo-3-36255-0.html
演示:
创建一个redis配置文件,文件名为:redis.properties 写入如下配置规则。

redis.host=127.0.0.1
redis.port=6379
redis.password=123456absaa

执行如下命令创建configmap:

kubectl create configmap redis-config --from-file=redis.properties

执行后结果:

[root@master ~]# kubectl create configmap redis-config --from-file=redis.properties
configmap/redis-config created

查看创建的configmap

[root@master ~]# kubectl get cm
NAME               DATA   AGE
kube-root-ca.crt   1      31d
redis-config       1      35s

查看redis-config里面的内容:
命令:

kubectl describe cm redis-config

执行结果:

[root@master ~]# kubectl describe cm redis-config
Name:         redis-config
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
redis.properties:
----
redis.host=127.0.0.1
redis.port=6379
redis.password=123456absaa



BinaryData
====

Events:  <none>

1、以Volume形式挂载Pod容器中
创建 cm.yaml 文件并写入如下规则:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: ["/bin/sh","-c","cat /etc/config/redis.properties"]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        name: redis-config
  restartPolicy: Never

执行如下命令生成pod

kubectl apply -f cm.yaml

执行结果:

[root@master ~]# kubectl apply -f cm.yaml
pod/mypod created

执行如下命令查看pod文件内容。

kubectl logs mypod

执行结果:

[root@master ~]# kubectl logs mypod
redis.host=127.0.0.1
redis.port=6379
redis.password=123456absaa

2、以变量形式挂载到Pod容器中
创建  myconfig.yaml 文件并写入如下规则:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfig
  namespace: default
data:
  special.level: info
  special.type: hello

执行如下命令生成configmap

kubectl apply -f myconfig.yaml

查看configmap

kubectl get cm

创建 config-var.yaml 文件,写入如下规则:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: ["/bin/sh","-c","echo $(LEVEL) $(TYPE)"]
      env:
        - name: LEVEL
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: special.level
        - name: TYPE
          valueFrom:
            configMapKeyRef:
              name: myconfig
              key: special.type
  restartPolicy: Never

执行如下命令创建pod

kubectl apply -f config-var.yaml

查看生成的pod

kubectl get pods

查看pod里面的变量内容

kubectl logs mypod

执行结果:

[root@master ~]# kubectl logs mypod
info hello

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-36278-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:kubernetes/k8s创建Secret加密数据并挂载方法
下一篇:解决:openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No