K8S 之 ConfigMap与Secret使用

一、作用

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

K8S 之  ConfigMap与Secret使用

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

K8S 之  ConfigMap与Secret使用

2、创建与查看

K8S 之  ConfigMap与Secret使用

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

K8S 之  ConfigMap与Secret使用

猜你喜欢

转载自blog.51cto.com/12965094/2639592