美文网首页
Downward API

Downward API

作者: Oooyzx | 来源:发表于2019-12-10 11:45 被阅读0次

Downward API

它的作用是:让 Pod 里的容器能够直接获取到这个 Pod API 对象本身的信息。

实验:

  • 新建一个dapi-metadata.yml文件
    vi dapi-metadata.yml
apiVersion: v1
kind: Pod
metadata:
  name: test-downwardapi-volume
  labels:
    zone: us-est-coast
    cluster: test-cluster1
    rack: rack-22
spec:
  containers:
    - name: client-container
      image: busybox
      command: ["sh", "-c"]
      args:
      - while true; do
          if [[ -e /etc/podinfo/labels ]]; then
            echo -en '\n\n'; cat /etc/podinfo/labels;echo -en '\n';cat /etc/podinfo/name; fi;
          sleep 5;
        done;
      volumeMounts:
        - name: podinfo
          mountPath: /etc/podinfo
          readOnly: false
  volumes:
    - name: podinfo
      projected:
        sources:
        - downwardAPI:
            items:
              - path: "labels"
                fieldRef:
                  fieldPath: metadata.labels
              - path: "name"
                fieldRef:
                  fieldPath: metadata.name
  • 以yaml文件创建容器
    kubectl create -f dapi-metadata.yml

    image.png
  • 创建了这个 Pod 之后,就可以通过 kubectl logs 指令,查看到这些 Labels 字段被打印出来,如下所示:
    kubectl logs test-downwardapi-volume
    每5秒记录一次:

    image.png
    可以看到yml文件中echo的内容:
    image.png
image.png

不过,需要注意的是,Downward API 能够获取到的信息,一定是 Pod 里的容器进程启动之前就能够确定下来的信息。而如果你想要获取 Pod 容器运行后才会出现的信息,比如,容器进程的 PID,那就肯定不能使用 Downward API 了,而应该考虑在 Pod 里定义一个 sidecar 容器。


apiVersion: v1
kind: Pod
metadata:  # pod 的源数据信息,可以写多个
  name: nginx-busybox # pod 的名字
spec:
  containers:
  - name: nginx  # 容器的名字
    image: nginx:alpine  # 镜像的名字
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
        path: /
        port: 80
        httpHeaders:
        - name: X-Custom-Header
          value: Awesome
      initialDelaySeconds: 3
      periodSeconds: 3

相关文章

  • 通过文件暴露 Pod 信息给容器

    Downward API 的动机 1、Downward API 存储 Pod 字段 2、Downward API ...

  • Downward API

    Downward API 它的作用是:让 Pod 里的容器能够直接获取到这个 Pod API 对象本身的信息。 实...

  • Downward API

    Downward API 它的作用是:让 Pod 里的容器能够直接获取到这个 Pod API 对象本身的信息 在这...

  • Pod Downward API

    1. 在容器内获取Pod信息(Downward API) 我们知道,每个Pod在成功创建处理后,都会被系统分配唯一...

  • 8.2 与Kubernetes API服务器交互

    8.2 与Kubernetes API服务器交互 我们已经知道,Downward API提供了一种简单的方式,将p...

  • Pod挂载(ConfigMap,Downward API,Ser

    到目前为止,Kubernetes 支持的 Projected Volume 一共有四种:1.Secret(存放数据...

  • 3 深入掌握Pod(3)

    3.6 在容器内获取Pod信息(Downward API) 我们知道,每个Pod在被成功创建出来之后,都会被系统分...

  • 8.1 通过Downward API传递元数据

    在之前的章节中,我们已经了解到如何通过环境变量或者configMap和secret卷向应用传递配置数据。这对于po...

  • worth

    Why the crypto market trending downward?and at this a i...

  • 每日绘/ 手绘素材集 Day6

    sketching downward facing dog. one of my favorite poses, ...

网友评论

      本文标题:Downward API

      本文链接:https://www.haomeiwen.com/subject/zbnwgctx.html