首页 > 其他 > 详细

K8s configmap配置管理

时间:2021-01-02 22:54:49      阅读:32      评论:0      收藏:0      [点我收藏+]

K8S ConfigMap介绍:

一、ConfigMap的作用

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

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

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

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

二、创建ConfigMap的方式有4种:

1.通过key-value字符串创建
2.使用文件创建
3.使用目录创建
4.编写configmap的yaml文件创建

2.1、通过key-value字符串的方式创建

#创建configmap其中cm1是名字,key1是键,config1是值
[root@k8s-master ~]# kubectl create configmap cm1 --from-literal=key1=config1 --from-literal=key2=config2
configmap/cm1 created
[root@k8s-master ~]# kubectl get cm
NAME                 DATA   AGE
cm1            2      5s
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl get cm cm1
NAME        DATA   AGE
cm1   2      13s
[root@k8s-master ~]# kubectl describe cm cm1
Name:         cm1
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
key1:
----
config1
key2:
----
config2
Events:  <none>
[root@k8s-master ~]# 

#cm1配置以yaml文件方式输出
[root@k8s-master ~]# kubectl get cm cm1 -o yaml
apiVersion: v1
data:
  key1: config1
  key2: config2
kind: ConfigMap
metadata:
  creationTimestamp: "2021-01-02T09:26:34Z"
  name: cm1
  namespace: default
  resourceVersion: "160052"
  selfLink: /api/v1/namespaces/default/configmaps/cm1
  uid: 0ad32521-f0c5-4490-a0e9-34bb0ff59f9c
[root@k8s-master ~]# 

2.2、文件创建是通过--from-file参数来设定,key的名称是文件名称,value的值是文件的内容.

[root@k8s-master ~]# kubectl create configmap cm2 --from-file=/etc/resolv.conf
configmap/cm2 created
[root@k8s-master ~]# kubectl get cm cm2
NAME   DATA   AGE
cm2    1      6s
[root@k8s-master ~]# kubectl describe cm cm2
Name:         cm2
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
resolv.conf:
----
# Generated by NetworkManager
nameserver 192.168.10.2

Events:  <none>
[root@k8s-master ~]# 

其中,--from-file可以使用多次,比如:
# kubectl create configmap cm2 --from-file=file1 --from-file=file2

2.3、使用目录创建configmap,也是通过--from-file参数来设定。

# 目录中的文件名为key,文件内容是value
# kubectl create configmap cm3 --from-file=/path

2.4、通过编写configmap的yaml/json文件创建(推荐)

[root@k8s-master ~]# cat cm4.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: cm4
data:
  host_name: "k8s-master"
  host_port: "22"
  host_ip: "192.168.10.10"
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl apply -f cm4.yaml 
configmap/cm4 created
[root@k8s-master ~]# kubectl get cm cm4
NAME   DATA   AGE
cm4    3      12s
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl get cm cm4 -o yaml
apiVersion: v1
data:
  host_ip: 192.168.10.10
  host_name: k8s-master
  host_port: "22"
kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"host_ip":"192.168.10.10","host_name":"k8s-master","host_port":"22"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm4","namespace":"default"}}
  creationTimestamp: "2021-01-02T09:54:22Z"
  name: cm4
  namespace: default
  resourceVersion: "162402"
  selfLink: /api/v1/namespaces/default/configmaps/cm4
  uid: 85e48e8a-e3fb-4821-ade8-658882709277
[root@k8s-master ~]# 

 

K8s configmap配置管理

原文:https://www.cnblogs.com/saneri/p/14223474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!