Use of ConfigMap and Secret of K8S

1. Function

1、ConfigMap

1、实现统一管理环境变量,团队内部一般存在多个项目,这些项目直接存在配置相同环境变量的情况,因此可以统一维护管理。
2、对于开发、测试、生产环境,由于配置均不同,每套环境部署的时候都要修改yaml,带来额外的开销。
3、可以用来实现业务配置的统一管理, 允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性 。

2、Secret

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

Second, the use of ConfigMap

1. Write configmap resource yaml file

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. Create and view ConfigMap

Use of ConfigMap and Secret of K8S

Third, the use of Secret

1. Create the yaml file needed for secret resources

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

Use of ConfigMap and Secret of K8S

2. Create and view

Use of ConfigMap and Secret of K8S

Fourth, call ConfigMap and Secret information through POD

1. Write the yaml file 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. Creation and verification

Use of ConfigMap and Secret of K8S

Guess you like

Origin blog.51cto.com/12965094/2639592