一、作用

1、ConfigMap

1、实现统一管理环境变量,团队内部一般存在多个项目,这些项目直接存在配置相同环境变量的情况,因此可以统一维护管理。

2、对于开发、测试、生产环境,由于配置均不同,每套环境部署的时候都要修改yaml,带来额外的开销。

3、可以用来实现业务配置的统一管理, 允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性 。

2、Secret

环境变量中有很多敏感的信息,比如账号密码,直接暴漏在yaml文件中存在安全性问题

059b04691133d2bc559cf36a6b92e6a9.png

二、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

f1203efc1c34855f70d9b6c89bd1a9ec.png

三、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

ee017405476ae38d6dd089130f2a7fa1.png

2、创建与查看

50131615dc3f462c487800c9b6dc7486.png

四、通过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、创建与验证

0721054306bd023f066fbb96092fef51.png

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐