一、作用
1、ConfigMap
1、实现统一管理环境变量,团队内部一般存在多个项目,这些项目直接存在配置相同环境变量的情况,因此可以统一维护管理。
2、对于开发、测试、生产环境,由于配置均不同,每套环境部署的时候都要修改yaml,带来额外的开销。
3、可以用来实现业务配置的统一管理, 允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性 。
2、Secret
环境变量中有很多敏感的信息,比如账号密码,直接暴漏在yaml文件中存在安全性问题
二、ConfigMap使用
1、编写configmap资源yaml文件
apiVersion: v1
kind: ConfigMap
metadata:
name: myblog
namespace: kang #需使用该资源的POD必须在相同的空间
data:
MYSQL_HOST: "10.3.153.201" #定义了MYSQL_HOST的值
MYSQL_PORT: "3306" #定义了MYSQL_PORT的值
2、创建与查看ConfigMap
三、Secret使用
1、创建secret资源所需的yaml文件
apiVersion: v1
kind: Secret
metadata:
name: myblog
namespace: kang #需使用该资源的POD必须在相同的空间
type: Opaque
data:
MYSQL_USER: cm9vdA== #注意加-n参数, echo -n root|base64
MYSQL_PASSWD: MTIzNDU2 #注意加-n参数, echo -n 123456|base64
2、创建与查看
四、通过POD调用ConfigMap与Secret信息
1、编写yaml文件cm-sec.yaml
apiVersion: v1
kind: Pod
metadata:
name: app
namespace: kang
spec:
containers:
- name: app
image: 10.3.153.200:5000/myblog:v1
imagePullPolicy: IfNotPresent
env:
- name: MYSQL_HOST # 指定root用户的用户名
valueFrom:
configMapKeyRef: #调用ConfigMap的MYSQL_HOST
key: MYSQL_HOST
name: myblog
- name: MYSQL_PASSWD
valueFrom:
secretKeyRef: #调用Secret的MYSQL_PASSWD
key: MYSQL_PASSWD
name: myblog
- name: MYSQL_PORT
valueFrom:
configMapKeyRef: #调用ConfigMap的MYSQL_PORT
key: MYSQL_PORT
name: myblog
ports:
- containerPort: 8002
2、创建与验证