Projected Volume 的secret 与configmap
Projected Volume 的secret 与configmap
在 Kubernetes 中,有几种特殊的 Volume,它们存在的意义不是为了存放容器里的数据,也不是用来进行容器和宿主机之间的数据交换,是为容器提供预先定义好的数据;
kubernetes 支持的 Projected Volume 一共有四种:
secret:
Secret
对象用来存储敏感数据,如 Pod 用于访问服务的凭据。例如,为访问数据库,你可能需要一个 Secret 来存储所需的用户名及密码。
你可以通过在命令中传递原始数据,或将凭据存储文件中,然后再在命令行中创建 Secret。以下命令 将创建一个存储用户名 admin
和密码 S!B\*d$zDsb=
的 Secret。
如:
projectvolume1.yml
apiVersion: v1
kind: Pod
metadata:
name: projectvolume1
namespace: default
spec:
containers:
- name: project-volume
image: busybox
args:
- sleep
- '36000'
volumeMounts:
- name: all-in-one
mountPath: /data
readOnly: true
volumes:
- name: all-in-one
projected:
sources:
- secret:
name: user
- secret:
name: password
2、创建secret:
4、创建POD,并查看内容是否挂载到了POD 中;
kubectl apply -f projectvolume1.yml
ConfigMap:
ConfigMap是一种API对象,用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件;
ConfigMap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改;
1、创建configmap:
kubectl create configmap configmap --from-literal=name=zhangsan --from-literal=age=36
2、查看conffigmap 信息:
3、在数据卷中使用ConfigMap;
apiVersion: v1
kind: Pod
metadata:
name: project-configmap
namespace: default
spec:
containers:
- name: projectconfigmap
image: busybox
command:
- sleep
- '36000'
volumeMounts:
- name: configmapv
mountPath: /data
volumes:
- name: configmapv
projected:
sources:
- configMap:
name: configmap
4、POD中查看configmap 内容:
Downward API:
ServiceAccountToken
Service Account 对象的作用,就是 Kubernetes 系统内置的一种“服务账户”,它是 Kubernetes 进行权限分配的对象。像这样的 Service Account 的授权信息和文件,实际上保存在它所绑定的一个特殊的 Secret 对象里的特殊Secret 对象,就叫作 ServiceAccountToken;