十二、kubernetes 核心技术configMap

网友投稿 262 2022-10-21

十二、kubernetes 核心技术configMap

1. ConfigMap 介绍

在Kubernetes 1.2中新添加了功能​​ConfigMap​​,主要功能是为了解决应用程序会从配置文件、环境变量中获取配置信息。

​注意:​ ConfigMap不是属性配置文件的代替品,ConfigMap只是作为多个properties文件的引用。

场景: 配置文件

2. ConfigMap 项目演示(配置文件)

configmap主要还是方便处理非敏感的数据,比如注册中心地址、数据库地址、nginx地址等。像密码之类需要加密的还是需要使用secrets来进行管理

下方yaml文件中​​data​​一栏包括了配置数据,ConfigMap可以保存单个属性,也可以用来保存一个配置文件。配置数据可以通过很多种方式在Pods里被引用,ConfigMap可以用来:

设置环境变量的值在容器里设置命令行参数在数据卷里面创建config文件

用户和系统两者都可以在ConfigMap里存储

2.1 创建配置文件

cat > redis.properties <<-EOFredis.host=127.0.0.1redis.port=6379redis.password=123456EOF

2.2 创建configmap

$ kubectl create configmap redis-config --from-file=redis.properties #查看[root@k8s-master01 k8s]# kubectl get cmNAME DATA AGEredis-config 1 30s[root@k8s-master01 k8s]# kubectl describe cm redis-config Name: redis-configNamespace: defaultLabels: Annotations: Data====redis.properties:----redis.host=127.0.0.1redis.port=6379redis.password=123456Events:

2.3 以Volume挂载到Pod容器中

apiVersoin: v1kind: Podmetadata: name: configmap-testspec: containers: - name: busybox image: busbox 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

​创建并验证​

[root@k8s-master01 k8s]# kubectl get all NAME READY STATUS RESTARTS AGEpod/configmap-test 0/1 Completed 0 4m36s[root@k8s-master01 k8s]# kubectl logs configmap-test redis.host=127.0.0.1redis.port=6379redis.password=123456

3. ConfigMap 项目演示(变量)

3.1 创建configmap

apiVersion: v1kind: ConfigMapmetadata: name: myconfigdata: db.host: localhost db.port: "3306"

创建并查看

kubectl apply -f **.yaml[root@k8s-master01 k8s]# kubectl get configmaps NAME DATA AGEmyconfig 2 39s

3.2 创建Pod进行引用

apiVersion: v1kind: Podmetadata: name: configmap-envspec: containers: - name: busybox-configmap-env image: busybox command: [ "/bin/sh","-c","echo $(db.host) $(db.port)" ] env: - name: db.host valueFrom: configMapKeyRef: name: myconfig key: db.host - name: db.port valueFrom: configMapKeyRef: name: myconfig key: db.port restartPolicy: Never

创建并验证

$ kubectl apply -f **.yaml[root@k8s-master01 k8s]# kubectl logs configmap-env localhost 3306

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:三、kubernetes 集群 YAML 文件详解
下一篇:浅谈String类型如何转换为time类型存进数据库
相关文章

 发表评论

暂时没有评论,来抢沙发吧~