kubernetes(k8s):configmap配置管理

1. configmap的作用

configmapsecret两种特殊的存储卷,它们不是给pod提供存储空间用的,而是给管理员或者用户提供了从外部向pod内部注入信息的方式.

configmap:配置文件放在配置中心上,然后多个pod读取配置中心的配置文件,不过,configmap中的配置信息都是明文的,所以不安全;

secret:功能和configmap一样,只不过配置中心存储的配置文件不是明文的.configmap和secret也是专属于某个名称空间的.

  1. Configmap用于保存配置数据,以键值对形式存储。
  2. configMap 资源提供了向 Pod 注入配置数据的方法。
  3. 旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。

典型的使用场景

  1. 填充环境变量的值
  2. 设置容器内的命令行参数
  3. 填充卷的配置文件

2.创建configmap的四种方式:

创建ConfigMap的方式有4种:

  1. 使用字面值创建
  2. 使用文件创建
  3. 使用目录创建
  4. 编写configmap的yaml文件创建

2.1 使用字面值创建

[kubeadm@server2 ~]$ kubectl create configmap cm1 --from-literal=key1=vules1 #cm1是名字,key1是键,vules1是值
configmap/cm1 created
[kubeadm@server2 ~]$ kubectl get cm
NAME   DATA   AGE
cm1    1      4s

[kubeadm@server2 ~]$ kubectl describe cm cm1 
Name:         cm1
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
key1:
----
vules1
Events:  <none>
[kubeadm@server2 ~]$ kubectl get cm -o yaml
apiVersion: v1
items:
- apiVersion: v1
  data:
    key1: vules1
  kind: ConfigMap
  metadata:
    creationTimestamp: "2020-04-25T03:39:08Z"
    managedFields:
    - apiVersion: v1
      fieldsType: FieldsV1
      fieldsV1:
        f:data:
          .: {
   }
          f:key1: {
   }
      manager: kubectl
      operation: Update
      time: "2020-04-25T03:39:08Z"
    name: cm1
    namespace: default
    resourceVersion: "652706"
    selfLink: /api/v1/namespaces/default/configmaps/cm1
    uid: dc90d656-0d27-4e94-ab7e-3b3ef9096c68
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""
[kubeadm@server1 configmap]$ kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
configmap/my-config created
[kubeadm@server1 configmap]$ kubectl get cm
NAME        DATA   AGE
my-config   2      10s
[kubeadm@server1 configmap]$

在这里插入图片描述

2.2 使用文件创建

key的名称文件名称value的值文件的内容

[kubeadm@server2 ~]$ kubectl create configmap cm2 --from-file=/etc/resolv.conf  # key的名称是文件名称,value的值是这个文件的内容
configmap/cm2 created
[kubeadm@server2 ~]$ kubectl get cm
NAME   DATA   AGE
cm1    1      5m2s
cm2    1      7s

[kubeadm@server2 ~]$ kubectl describe cm cm2
Name:         cm2
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
resolv.conf:
----
nameserver 114.114.114.114

Events:  <none>

在这里插入图片描述

2.3 使用目录创建

目录中的文件名为key,文件内容是value

[kubeadm@server2 manifest]$ mkdir cm
[kubeadm@server2 manifest]$ cd cm
[kubeadm@server2 cm]$ cp /etc/resolv.conf .
[kubeadm@server2 cm]$ cp /etc/hosts .
[kubeadm@server2 cm]$ ls
hosts  resolv.conf
[kubeadm@server2 cm]$ cd ..

[kubeadm@server2 manifest]$ kubectl create configmap cm3 --from-file=cm
# 目录中的文件名为key,文件内容是value
configmap/cm3 created
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值