1. 需求

  • 很多应用在其初始化或运行期间要依赖一些配置信息
  • 大多数时候, 存在要调整配置参数所设置的数值的需求。
  • ConfigMap 是 Kubernetes 用来向应用 Pod 中注入配置数据的方法

2. ConfigMap介绍(缩写cm)

  • 是K8S的一种API对象,用来把【非加密数据】保存到键值对中,比如etcd
  • 可以用作环境变量、命令行参数等,将环境变量、配置信息和容器镜像解耦,便于应用配置的修改

3. 使用方式

  • kubectl create configmap 命令,基于目录、 文件或者键值对来创建 ConfigMap
格式如下
kubectl create configmap NAME --from-literal=key1=value1 --from-literal=key2=value2

4. 实操

a. 方式一:使用命令行创建

kubectl create configmap xdclass-config --from-literal=account=xdclass --from-literal=password=123456

#查看
[root@iZwz90pegu9budx5tk4ruzZ ~]# kubectl get cm xdclass-config -o yaml
apiVersion: v1
data:
  account: xdclass
  password: password
kind: ConfigMap
metadata:
  creationTimestamp: "2022-07-04T06:36:18Z"
  name: xdclass-config
  namespace: default
  resourceVersion: "1716676"
  selfLink: /api/v1/namespaces/default/configmaps/xdclass-config
  uid: 6ae2890e-fad3-452c-9179-78dd63ddbbba

b. 方式二:使用文件创建configmap.yaml

apiVersion: v1
 kind: ConfigMap
 metadata:
   name: xdclass-configmap
   namespace: dev
 data:
   info: 
     username:xdclass
     password:123456

c. 命令

#创建
 kubectl create -f configmap.yaml
 
 
 # 查看configmap详情
 kubectl describe cm xdclass-configmap -n dev

d. 创建pod的yaml,pod-configmap.yaml,然后将创建的configmap挂载进去

apiVersion: v1
kind: Pod
metadata:
  name: pod-configmap
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.20
    volumeMounts: # configmap挂载的目录
    - name: config
      mountPath: /config

  volumes: # 声明configmap
  - name: config
    configMap:
      name: xdclass-configmap

e. 命令

#创建pod
 kubectl create -f pod-configmap.yaml
 
 #查看
 kubectl get pod pod-configmap -n dev
 
 #进入容器
 kubectl exec -it pod-configmap -n dev -- /bin/sh
 # cd /config
 # cat info
 
 username:xdclass
 password:123456
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐