(k8s)kubernetes中ConfigMap和Secret

转载:ConfigMap

一、ConfigMap介绍

  • ConfigMap是一种API对象,用来将非机密性的数据保存到键值对中。使用时,Pod可以将其用作环境变量、命令行参数或存储卷中的配置文件。

  • ConfigMap将你的环境配置信息和容器镜像解耦,便于应用配置的修改。

  • 注意:ConfigMap并不提供保密或加密功能。如果你想存储的数据是机密性的,请使用Secret,或者使用其他第三方工具来保存你的数据的私密性,而不是用ConfigMap。

1.1、使用ConfigMap动机

  • 使用ConfigMap来讲你的配置数据和应用程序代码分开。

  • 比如,假设你正在开发一个应用,它可以在你自己的电脑上(用于开发)和在云上(用于实际流量)运行。你的代码里有一段是用于查看环境变量DATABASE_HOST,在本地运行时,你将这个变量设置为localhost,在云上,你将其设置为引用Kubernetes集群中的公开数据库组件的服务。

  • 这让你可以获取在云中运行的容器镜像,并且如果有需要的话,在本地调试完全相同的代码。

  • 说明:ConfigMap在设计上不是用来存储大量的数据的。在ConfigMap中保存的数据不可超过1M。如果你需要保存超出尺寸限制的数据,你可能希望考虑挂载存储卷或者使用独立的数据库或文件服务。

1.2、ConfigMap对象

  • ConfigMap是一个让你可以额存储其他对象所需使用的配置的API对象。和其他Kubernetes对象都有一个spec不同的是,ConfigMap使用databinaryData字段。这些字段能够结构键-值对作为其取值。databinaryData字段都是可选的。data字段设计用来保存UTF-8字符串,而binartyData则被设计用来保存二进制数据作为base64编码的字符串。

  • ConfigMap的名字必须是一个合法的DNS子域名。

  • databinaryData字段下面的每个键的名称都必须又字母数字字符或者-_.组成。在data下保存的键名不可以与在binaryData下出现的键名有重叠。

  • 从v1.19开始,你可以添加一个immutable字段到ConfigMap定义中,创建不可更得ConfigMap。

1.3、ConfigMap和Pod

  • 你可以写一个引用ConfigMap得Pod的spec,并根据ConfigMap中的数据在该Pod中配置容器。这个Pod和ConfigMap必须要在同一个名称空间中(名称空间是Kubernetes用来支持隔离的单个集群中的资源组的一种抽象)。

  • 说明:静态Pod中的spec字段不能引用ConfigMap或任何其他API对象。

二、示例

2.1、ConfigMap示例

  • 这是一个ConfigMap的示例,它的一些键只有一个值,其他的键的值看起来像是配置的片段格式。

[root@master ~]# vim configmap.yaml
apiVersion: "v1"
kind: ConfigMap
metadata:
  name: game-demo
data:
  # 简单键值对:适用于简单的配置项,易于访问和修改。
  # 每一个键都映射到一个简单的值
  player_initial_lives: "3"
  ui_properties_file_name: "user-interface.properties"
  

  # 多行文件:适用于需要存储复杂的内容的配置项,比如配置文件,便于整体管理
  game.properties: |
    enemy.types=aliens,monsters
    player.maximum-lives=5   
  user-interface.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true
# 应用ConfigMap资源
[root@master ~]# kubectl apply -f configmap.yaml
# 查看ConfigMap的详细信息
[root@master ~]# kubectl describe configmap game-demo 
Name:         game-demo
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
user-interface.properties:
----
color.good=purple
color.bad=yellow
allow.textmode=true 

game.properties:
----
enemy.types=aliens,monsters
player.maximum-lives=5   

player_initial_lives:
----
3
ui_properties_file_name:
----
user-interface.pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值