CKA [Storage] – Secrets讲解

就如以上的图片,其实Secret和ConfigMap的结构是相似的,只是Configmap是保存明文不那么安全,而secret的话就会加密保存在etcd当中。

- 默认的secret是不够安全的,只是他只是简单的做base64的转码然后就保存在etcd而已
- 你可以设置RBAC权限控制谁才能够读取secret,增加管理安全性


创建好的Secret挂在到pod有以下两种方式
参考文章:https://www.pangzai.win/cka-storage-pvc%e7%9a%84accessmode%e8%ae%b2%e8%a7%a3/

实践测试
1. 创建Generic Secret
kubectl create secret generic auth-secret --from-literal=admin=password
2. 创建pod , 这是volume mount 的 pod
kubectl apply -f pod1.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo-pod
spec:
volumes:
- name: secret-volume
secret:
secretName: auth-secret
containers:
- name: test-container
image: nginx
volumeMounts:
- name: secret-volume
mountPath: "/etc/secret-volume"
readOnly: true
3. 创建pod , 这是enviroment variable 的 pod
kubectl apply -f pod2.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo-pod-env
spec:
containers:
- name: test-container
image: nginx
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: auth-secret
key: admin
4. 进入Volume mount的container 检查文件是否被挂载了
【进入container】
kubectl exec -it demo-pod -- sh
【去到相关path】
cd /etc/secret-volume
【查看admin文件】
cat admin

5. 进入environent container的container 检查env是否被创建
【进入container】
kubectl exec -it demo-pod-env -- sh
【查看env】
echo $DB_PASSWORD

Facebook评论