51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 997|回复: 0
打印 上一主题 下一主题

[转贴] ConfigMap用管理对象的方式管理配置(1)

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:06
  • 签到天数: 1051 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-3-21 09:31:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    什么是ConfigMap
      能够灵活管理应用的配置是一个系统能否长期成功运转的一个关键因素,尤其是在应用分布式微服务时更是如此。
      再将应用部署到测试,开发和生产等多个环境时,由于环境不同,将配置放到应用程序的镜像里不是一个好的做法。理想情况下,你会希望将配置与应用程序镜像分开管理好匹配不同的部署环境。在Kubernetes项目里这就是ConfigMap 发挥作用的地方。
      ConfigMap使您可以将应用配置从应用程序的镜像内容中分离出来。这使得你的容器化应用程序在Kubernetes里更具可移植性,而无需担心配置。用户和系统组件都可以在ConfigMap中存储配置数据。
      ConfigMap与另外一种API对象Secret有点类似 (后面会写文章单独介绍),但是它提供了一种管理非敏感信息的配置的方式。
      怎么创建ConfigMap
      ConfigMap的创建方式非常简单,你可以使用 kubectl create configmap 命令基于 目录、文件 或者字符串字面值来创建 ConfigMap:
    1. kubectl create configmap <map-name> <data-source>
    复制代码
     其中,<map-name> 是要设置的ConfigMap 名称,<data-source> 是要从中提取数据的目录、 文件或者字面值。
      你可以使用kubectl describe 或者 kubectl get获取已创建的ConfigMap的信息。
      下面我们来演示一下这三种创建ConfigMap的方式。
      通过文件目录创建ConfigMap
      要从目录创建ConfigMap,必须首先创建一个目存放配置文件的目录:
    1.  $ mkdir configmap-demo
    复制代码
    然后将示例配置文件下载到目录中:
    1. wget https://kubernetes.io/examples/configmap/game.properties -O configure-pod-container/configmap/game.properties -O configmap-demo-game
    2.   wget https://kubernetes.io/examples/configmap/ui.properties -O configure-pod-container/configmap/ui.properties  -O configmap-demo-ui
    复制代码
    下面是这l两个配置文件的内容,如果因为网络问题下载不到这个文件的话可以自己创建一个config-demo文件把内容粘贴进去。
    1. enemies=aliens
    2.   lives=3
    3.   enemies.cheat=true
    4.   enemies.cheat.level=noGoodRotten
    5.   secret.code.passphrase=UUDDLRLRBABAS
    6.   secret.code.allowed=true
    7.   secret.code.lives=30
    8.   -----文件分割-----
    9.   color.good=purple
    10.   color.bad=yellow
    11.   allow.textmode=true
    12.   how.nice.to.look=fairlyNice
    复制代码
    接下来使用kubectl create configmap命令执行创建:
    1.  $ kubectl create configmap demo-configmap --from-file=configmap-demo
    2.   configmap "demo-configmap" created
    复制代码
    使用kubectl describe可以查看demo-configmap这个ConfigMap的描述:
    1. $ kubectl describe configmap demo-configmap
    2.   Name:         demo-configmap
    3.   Namespace:    default
    4.   Labels:       <none>
    5.   Annotations:  <none>
    6.   Data
    7.   ====
    8.   game.properties:
    9.   ----
    10.   enemies=aliens
    11.   lives=3
    12.   enemies.cheat=true
    13.   enemies.cheat.level=noGoodRotten
    14.   secret.code.passphrase=UUDDLRLRBABAS
    15.   secret.code.allowed=true
    16.   secret.code.lives=30
    17.   ui.properties:
    18.   ----
    19.   color.good=purple
    20.   color.bad=yellow
    21.   allow.textmode=true
    22.   how.nice.to.look=fairlyNice
    23.   Events:  <none>
    复制代码
    可以看到ConfigMap会把两个文件的内容作为其数据条目。
      通过文件创建ConfigMap
      从文件创建ConfigMap与从目录创建非常相似。需要做的就是将文件名传递给–-from-file参数。通过这种方式创建ConfigMap时,你可以根据需要多次使用--from-file参数,将多个文件数据源添加到ConfigMap中。
    1. kubectl create configmap configmap-demo-2 \
    2.   --from-file=configmap-demo-game \
    3.   --from-file=configmap-demo-ui
    复制代码
    直接用字符串创建ConfigMap
      通过这种方式创建ConfigMap意味着您可以直接从命令行指定配置,而无需创建任何文件或目录。比如使用命令** kubectl create ConfigMap special-config –from-literal=special.how=very –from-literal=special.type=charm**。
      你可以传入多个键值对。命令行中提供的每对键值在 ConfigMap 的 data 部分中均表示为单独的条目。
    1.  kubectl get configmap special-config -o yaml
    复制代码
    输出类似以下内容:
    1.  apiVersion: v1
    2.   kind: ConfigMap
    3.   metadata:
    4.     creationTimestamp: 2020-10-30T19:14:38Z
    5.     name: special-config
    6.     namespace: default
    7.     resourceVersion: "3"
    8.     selfLink: /api/v1/namespaces/default/configmaps/special-config
    9.     uid: fcddce046-d653-71eb-8f30-68f728db1988
    10.   data:
    11.     special.how: very
    12.     special.type: charm
    复制代码






    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 09:31 , Processed in 0.060192 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表