【kubernetes笔记】k8s_配置管理Secret和configMap(8)

Page content

这一篇整理了配置管理Secret和configMap相关的内容。

1.Secret

作用: 加密数据存储在etcd里面,让Pod容器以挂载Volume方式进行访问
场景:凭证,密码…

$echo -n 'admin' | base64

2.创建secret加密数据

apiVersion: v1 
kind: Secret  
metadata: 
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MTIzNDU2Nzg5
  ... ...
$kubectl create -f secret.yaml

$kubectl get secret

3.以变量形式挂载到pod容器中

- name: SECRET_USERNAME
  valueFrom:
    secretKeyRef:
      name: mysecret
      key: username
- name:
  valueFrom:
    secretKeyRef:
      name: mysecret
      key: password
  ... ...
$kubectl create -f secret-val.yaml
$kubectl apply -f secret-val.yaml
$kubectl exec -it mypod bash
$echo $SECRET_USERNAME

4.以Volume形式挂载pod容器中

- name: nginx
  image: nginx
  volumeMounts:
  - name: foo
    mountPath: "/etc/foo"
    readOnly: true
volumes:
- name: foo
  secret:
    secretName: mysecret
  ... ...
$kubectl apply -f secret-val.yaml
$kubectl exec -it mypod bash
$cat /etc/foo password

1.confiMap

  • 作用:存储不加密数据到etcd, 让Pod以变量或者Volume挂载到容器中。
  • 场景:配置文件

2.创建configMap

$kubectl create configmap redis-config --from-file=redis.properties
$kubectl get cm
$kubectl describe cm redis-config

3.以Volume挂载到Pod容器中

4.以变量形式挂载到pod容器中


欢迎大家的意见和交流

email: li_mingxie@163.com