ConfigMap是k8s的配置管理工具,通常用来保存明文的配置信息,以key-value形式传递配置。
一、使用命令创建ConfigMap对象
1.通过--from-literal参数创建
kubectl create configmap mycm1 --from-literal=appid=order-app --from-literal=appsecret=dfdg12342
(1)查看创建结果
kubectl get secret
(2)使用describe命令查看详情
kubectl describe secret mysecret1
kubectl get secret mysecret1 -o yaml
2.通过已有的应用配置文件创建
vi appsettings.json
(2)写入以下测试内容
{
"Logging": {
"LogLevel": {
"Default": "@R_298_4045@ion",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "@R_298_4045@ion"
}
},
"AllowedHosts": "*"
}
(3)使用--from-file参数指定该文件
kubectl create cm mycm2 --from-file=appsettings.json
--from-file可以使用多次;也可以使用目录,表示该目录下所有的配置文件都会创建成cm对象,默认key为文件名。
(4)查看创建结果
1.创建yaml文件
vi cm-my3.yaml
apiVersion: v1
kind: ConfigMap
Metadata:
name: mycm3
data:
ordersvc-conf: |+
IP: "192.168.59.110"
Port: 10000
3.执行创建命令
kubectl apply -f cm-my3.yaml
4.查看创建结果
三、使用ConfigMap对象
1.通过环境变量的形式
liunx自带的命令env,用来查看当前系统的环境变量,我们可以把cm对象设置到环境变量上来查看。
(1)新建pod对象的yaml文件
vi mycm1-env.yaml
apiVersion: v1
kind: Pod
Metadata:
name: pod-test-mycm1
spec:
containers:
- name: pod-test-mycm1-bb
image: busyBox
command: ["/bin/sh", "-c", "env"]
# 从cm对象中获取对应key的值赋值给环境变量
env:
- name: APPID
valueFrom:
configMapKeyRef:
name: mycm1
key: appid
- name: APPSECRET
valueFrom:
configMapKeyRef:
name: mycm1
key: appsecret
(3)创建pod
kubectl create -f mycm1-env.yaml
通过查看此pod的日志,可以看到输出的环境变量信息是mycm1对象的信息
2.通过vloume挂载方式
(1)新建pod对象的yaml文件
vi mycm2-volume.yaml
apiVersion: v1
kind: Pod
Metadata:
name: pod-test-mycm2
spec:
containers:
- name: pod-test-mycm2-bb
image: busyBox
command: ["/bin/sh", "-c", "cat /etc/cms/my-appsettings.json"]
volumeMounts:
- name: cms
mountPath: /etc/cms
volumes:
- name: cms
configMap:
name: mycm2
items:
# 把cm对象挂载到文件名
- key: appsettings.json
path: my-appsettings.json
(3)创建pod
kubectl create -f mycm2-volume.yaml
通过查看此pod的日志,可以看到输出的信息是mycm2对象中的数据
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。