跳到主要内容

21、Kubernetes - 实战:数据存储 Secret

一、环境安装

参考

MiniKube方式部署

KubeAdm方式部署

Kind方式部署

二、Secret介绍

ConfigMap非常类似,主要用于存储敏感信息,例如密码、秘钥、证书等。

动态更新(定时更新),密文存储(describe不能看到信息,但在Pod容器中会还原成明文)

三、Secret使用

1 数据准备

echo -n 'admin' | base64
echo -n '123456' | base64

 

vimsecret.yml

apiVersion: v1
kind: Secret
metadata:
  name: secret
  namespace: dev
type: Opaque
data:
  username: YWRtaW4=
  password: MTIzNDU2

创建pod-secret.yml,挂载到Secret

vim pod-secret.yml

apiVersion: v1
kind: Pod
metadata:
  name: pod-secret
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
    volumeMounts: 将 Secret 挂载到目录
    - name: config
      mountPath: /secret/config
  volumes:
  - name: config
    secret:
      secretName: secret

2 创建Secret

kubectl create -f secret.yml

 

3 创建Pod

kubectl create -f  pod-secret.yml

 

4 查看Secret

kubectl describe secret secret -n dev

 

5 查看 Pod 中内容

进入容器:

kubectl exec -it pod-secret -n dev -- /bin/sh
# ls /secret/config/
password  username
# more /secret/config/username
admin
# more /secret/config/password
123456
#