作用:存储不加密数据到 etcd,让 Pod 以变量或者 Volume 挂载到容器中
场景:配置文件
创建配置文件
redis.properties- redis.host=127.0.0.1
- redis.port=6379
- redis.password=123456
复制代码 创建 ConfigMap
- # 根据 redis.properties 创建 redis-config
- [root@k8smaster ~]# kubectl create configmap redis-config --from-file=redis.properties
- # 查看 configmap
- [root@k8smaster ~]# kubectl get cm
- # 查看 redis-config 的详情
- [root@k8smaster ~]# kubectl describe cm redis-config
复制代码 以 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
复制代码- # 创建 yaml文件
- [root@k8smaster ~]# vi cm.yaml
- # 创建pod
- [root@k8smaster ~]# kubectl apply -f cm.yaml
- # 启动后可以查看日志
- [root@k8smaster ~]# kubectl logs mypod
复制代码 以变量的形式进行挂载
创建 yaml,声明变量信息 configmap 创建
myconfig.yaml- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: myconfig
- namespace: default
- data:
- special.level: info
- special.type: hello
复制代码 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
复制代码- [root@k8smaster ~]# vi myconfig.yaml
- [root@k8smaster ~]# kubectl apply -f myconfig.yaml
- # 以变量形式进行挂载
- [root@k8smaster ~]# vi config-var.yaml
- [root@k8smaster ~]# kubectl apply -f config-var.yaml
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |