1 概述
作用:加密数据存在etcd里面,让Pod容器以挂载Volume方式进行访问
场景:凭证
2 创建secret加密数据
2.1 创建yaml文件
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: test(需base64加密 echo test | base64)
password: test(需base64加密)
2.2 执行
// 1 部署
kubectl apply secret.yaml
// 2 查询
kubectl get secret
3 以变量形式挂载到pod容器中
3.1 创建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
3.2 执行
// 1 部署
kubectl apply secretpod.yaml
// 2 进入容器
kubectl exec -it podname bash
// 3 查看变量名
echo $SECRET_USERNAME
echo $SECRET_PASSWORD
4 以volume形式挂载到pod容器中
4.1 创建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
4.2 执行
// 1 部署
kubectl apply secretvolume.yaml
// 2 进入容器
kubectl exec -it podname bash
// 3 查看变量名
cd /etc/foo
cat password
cat username