如何在Kubernetes的Daemonset配置文件中使用实例ID?

时间:2019-02-05 01:48:58

标签: amazon-ec2 kubernetes daemonset

我想从k8s配置文件中获取我的pod运行所在的实例ID(例如,像i-19a9fa9s8df9a8这样的AWS EC2实例ID,而不是私有dns节点名称),但是找不到任何文档关于如何做到这一点。有人知道如何使用https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#event-v1-core中的<section> <div style="background: red;"></div> <div style="background: pink !important;"></div> </section>字段吗?

我收到此错误:

reportingInstance

这是我尝试过的:

The DaemonSet  is invalid:
spec.template.spec.containers[0].env[8].valueFrom.fieldRef.fieldPath: 
Invalid value: "core.reportingInstance": 
error converting fieldPath: field label not supported: core.reportingInstance

我的yaml文件中已经包含了此名称,但这给了私有DNS名称而不是实例ID

    - name: INSTANCE_ID
      valueFrom:
        fieldRef:
          fieldPath: core.reportingInstance

1 个答案:

答案 0 :(得分:0)

让我以我对您问题的理解来回答。我认为您希望将节点名称值设置为容器中的env变量。如果是这样,您可以使用下面的代码

 - name: Node_Name
      valueFrom:
        fieldRef:
          fieldPath: spec.nodeName

如果您需要有关吊舱或容器的其他信息,请理解,使用向下api只能在容器内获取有限的信息,并且仅限于以下提及的字段。

 fieldRef     <Object>
 Selects a field of the pod: supports metadata.name, metadata.namespace,
 metadata.labels, metadata.annotations, spec.nodeName,
 spec.serviceAccountName, status.hostIP, status.podIP.


resourceFieldRef     <Object>
 Selects a resource of the container: only resources limits and requests
 (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu,
 requests.memory and requests.ephemeral-storage) are currently supported.