一、ConfigMap YAML
配置管理中心。简写
cm
。
数据不能超过1MB
用于保存非机密性的配置的,数据可以用key/value
键值对的形式保存,也可通过文件的形式保存。
项目配置文件统一管理。可以当做volume
挂载到 pod 中。如 nginx 配置等
:挂载卷里面的时候,修改
ConfigMap
时 pod 里面会一起修改。如果加载到env
里面,则env
不会随着ConfigMap
改变而改变。
kubectl explain ConfigMap
字段 | 值类型 | 说明 |
---|---|---|
binaryData |
map[string]string |
二进制数据 |
data |
map[string]string |
配置的数据 key-value 形式 |
immutable |
boolean |
true 时 ConfigMap 不能修改。默认 false 。 |
示例: 命令行方式创建参考 ConfigMap 相关命令
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql
labels:
app: mysql
data: # 定义配置数据
my.cnf: | # | 表示下面配置是一行一行的
[mysqld]
port: 3306
user: root
二、Secret YAML
加密配置管理中心。
保存敏感数据,如密码、私钥等
kubectl explain Secret
字段 | 值类型 | 说明 |
---|---|---|
data |
map[string]string |
数据,key-value 的形式,value 是根据 type 加密以后的值 |
immutable |
boolean |
true 时 ConfigMap 不能修改。默认 false 。 |
stringData |
map[string]string |
数据,他会覆盖和 data 中重复的数据信息。 |
type |
string |
类型Opaque : 用户定义的任意数据,base64 编码格式的 Secret。可以通过 base64 --decode 解码获得原始数据,因此安全性弱 kubernetes.io/dockerconfigjson : 用来存储私有 docker registry 的认证信息 kubernetes.io/service-account-token : 服务账号令牌。用于被 serviceaccount 引用 |
示例:
apiVersion: v1
kind: Secret
metadata:
name: mysql
type: Opaque # Secret 的类型
data:
password: "MTIzCg==" # 这是 base64 以后的值
网友评论