创建加密数据保存在etcd中,使其他容器可以读取到这个加密数据
创建secret
- 加密数据的yaml文件
secret.yaml
apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: username: YWRtaW4= password: MWYyZDFlMmU2N2Rm
- 创建pod
kubectl create -f secret.yaml
- 查看创建的secret
kubectl get secret
使用secret
创建一个pod来使用刚刚创建的secret数据
- 通过变量的方式来获取加密数据的方法
yaml配置
secret-var.yaml
apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: nginx image: nginx env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: mysecret key: username - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: mysecret key: password
关键配置:
-
- 创建应用
kubectl create -f secret-var.yaml
-
- 进入容器内部,获取加密数据
kubectl exec -it mypod /bin/bash
- 以Volume数据卷的形式挂载到容器中
yaml配置文件
secret-vol.yaml
apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: nginx image: nginx volumeMounts: - name: foo mountPath: "/etc/foo" readOnly: true volumes: - name: foo secret: secretName: mysecret
关键配置
加密的数据被挂载到容器中 /etc/foo 目录下
创建应用
kubectl create -f secret-vol.yaml
进入容器查看数据
kubectl exec -it mypod /bin/bash