获取具有指定条件(非状态)的节点的容器列表?

时间:2018-09-11 20:44:42

标签: kubernetes

是否有一种方法可以获取指定名称空间,应用程序,节点名称和容器条件的容器列表?将lablelSelector应用于查询字符串可以指定应用程序名称,使用fieldSelector,我可以选择节点名称(spec.nodeName==node)甚至阶段(status.phase==Running)。但是status.phase将返回处于指定阶段的所有Pod,包括那些实际上位于CrashLoopBackOff或位于丢失的节点上的Pod。

分析我发现的响应JSON之后,有一个“状态”部分实际上具有上面提到的“ status.phase”字段,还有一个名为“条件”的部分,用于存储描述了几种“类型”的记录的数组/列表相应参数的当前条件。其中有一个小节(Python术语词典),其中有我需要的"type" : "Ready""status" : <value>

完整的响应部分如下所示:

   "status": {
    "phase": "Running",
    "conditions": [
      {
        "type": "Initialized",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": "2018-09-11T15:49:09Z"
      },
      {
        "type": "Ready",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": "2018-09-11T19:05:01Z"
      },
      {
        "type": "ContainersReady",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": null
      },
      {
        "type": "PodScheduled",
        "status": "True",
        "lastProbeTime": null,
        "lastTransitionTime": "2018-09-11T15:49:09Z"
      }
    ]

很明显,labelSelector和fieldSelector使用响应JSON的相应部分/字段来工作。但是我找不到为“条件”小节应用诸如fieldSelector之类的方法。像fieldSelector = conditions.type.Ready == True。

当然,我可以用Python解析响应并仅选择所需的吊舱条件,但这对我来说并不正确。

有人知道如何在API请求中指定pod条件吗?

当前我正在使用:/api/v1/namespaces/<namespace>/pods?labelSeletor=app%3D<appname>&fieldSelector=status.phase%3D%3DRunning,spec.nodeName%3D%3D<nodename>

0 个答案:

没有答案