Configmap管理
更新时间:2024-09-20
配置字典(ConfigMap)
ConfigMap 是 K8S 的一种 API 对象,用来将非机密性的数据保存到健值对中,用户在 CCE 可以通过页面或 kubectl 方式管理 ConfigMap。
通过页面管理 ConfigMap
创建 ConfigMap
进入“产品服务>容器引擎CCE->集群详情”,点击“配置存储>配置字典”,进入配置字典列表页面:
点击“新建配置字典”,用户可以通过 YAML 的形式创建新的配置字典,选择集群、命名空间,填写 YAML 文件,点击“确认”提交:
查看 ConfigMap
点击列表页任何一行的配置字典名称,在右边栏弹出配置字典详情页:
删除配置字典
在配置字典列表页面,勾选要删除的配置字典,点击“删除”按钮,确认信息后,点击“确认”:
修改配置字典
在配置字典列表页面,点击“修改”按钮,完成修改后,点击“更新”提交,成功提交后返回列表页面:
通过 kubectl 管理 ConfigMap
示例:ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
config.json: |
{
"Listener": 9443,
"MetricsAddress": "0",
"EnableLeaderElection": true,
"EnableClusterController": true,
"EnableInstanceController": true
}
Pod 将 ConfigMap 作为配置文件挂载:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-nginx
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: registry.baidubce.com/cce/nginx-alpine-go:latest
volumeMounts:
- mountPath: /app/conf
name: app-config
volumes:
- configMap:
defaultMode: 420
name: app-config
name: app-config
上述 configmap app-config 对应的文件,会存在 Pod 的 /app/conf 目录下:
# exec 进入容器:
$ cat /app/conf/config.json
{
"Listener": 9443,
"MetricsAddress": "0",
"EnableLeaderElection": true,
"EnableClusterController": true,
"EnableInstanceController": true
}
更新 ConfigMap 后,Pod 中的文件会在 1min 内自动更新。