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;

 

posted @ 2023-02-15 15:46  橘子飞飞  阅读(51)  评论(0编辑  收藏  举报