K8S数据存储ConfigMap实战
是K8S的一种API对象,用来把【非加密数据】保存到键值对中,比如etcd可以用作环境变量、命令行参数等,将环境变量、配置信息和容器镜像解耦,便于应用配置的修改。
·
1. 需求
- 很多应用在其初始化或运行期间要依赖一些配置信息
- 大多数时候, 存在要调整配置参数所设置的数值的需求。
- ConfigMap 是 Kubernetes 用来向应用 Pod 中注入配置数据的方法
2. ConfigMap介绍(缩写cm)
- 是K8S的一种API对象,用来把【非加密数据】保存到键值对中,比如etcd
- 可以用作环境变量、命令行参数等,将环境变量、配置信息和容器镜像解耦,便于应用配置的修改
3. 使用方式
- kubectl create configmap 命令,基于目录、 文件或者键值对来创建 ConfigMap
格式如下
kubectl create configmap NAME --from-literal=key1=value1 --from-literal=key2=value2
4. 实操
a. 方式一:使用命令行创建
kubectl create configmap xdclass-config --from-literal=account=xdclass --from-literal=password=123456
#查看
[root@iZwz90pegu9budx5tk4ruzZ ~]# kubectl get cm xdclass-config -o yaml
apiVersion: v1
data:
account: xdclass
password: password
kind: ConfigMap
metadata:
creationTimestamp: "2022-07-04T06:36:18Z"
name: xdclass-config
namespace: default
resourceVersion: "1716676"
selfLink: /api/v1/namespaces/default/configmaps/xdclass-config
uid: 6ae2890e-fad3-452c-9179-78dd63ddbbba
b. 方式二:使用文件创建configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: xdclass-configmap
namespace: dev
data:
info:
username:xdclass
password:123456
c. 命令
#创建
kubectl create -f configmap.yaml
# 查看configmap详情
kubectl describe cm xdclass-configmap -n dev
d. 创建pod的yaml,pod-configmap.yaml,然后将创建的configmap挂载进去
apiVersion: v1
kind: Pod
metadata:
name: pod-configmap
namespace: dev
spec:
containers:
- name: nginx
image: nginx:1.20
volumeMounts: # configmap挂载的目录
- name: config
mountPath: /config
volumes: # 声明configmap
- name: config
configMap:
name: xdclass-configmap
e. 命令
#创建pod
kubectl create -f pod-configmap.yaml
#查看
kubectl get pod pod-configmap -n dev
#进入容器
kubectl exec -it pod-configmap -n dev -- /bin/sh
# cd /config
# cat info
username:xdclass
password:123456更多推荐



所有评论(0)