【问题标题】:Fetch status of a container within a container under Kubernetes pod获取 Kubernetes pod 下容器内的容器状态
【发布时间】:2019-11-22 21:29:47
【问题描述】:

我正在使用适用于 Kubernetes 集群的 NVIDIA Clara Deploy SDK。它提供了从端到端医学图像分析(采集到分析/分割)的管道。当我使用它时,E2E 流程不起作用。因为 pod 中的一个容器的输出是空的。虽然我能够获取主容器的日志,但我不确定如何获取在特定容器中运行的容器的日志?

我通过在线研究执行了以下命令,并列出了图像,

sudo kubectl get pods --all-namespaces -o jsonpath="{..image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c

稍后,我执行这个命令,它会列出这个 pod 中的容器

sudo kubectl describe pod clara-clara-platform-7bb6f9f5c6-pdzgd

这列出了 pod 中的 5 个容器

1) 推理服务器 2) Dicom-服务器 3) 渲染服务器 4) 克拉拉核 5)克拉拉仪表板

但是 clara 在容器中有容器。我是这么理解的,不知道对不对。

分享下面的文档供您参考。我猜上述所有容器图像都是主“Clara-core”容器的一部分。如何获取主容器中子容器的状态?

当我尝试获取上述容器的日志时,我没有看到任何关于执行 ai-container (applastchannel) 时发生了什么的信息?

请注意,我想获取 ai-container 的状态,在我的情况下是“applastchannel”

这是 YAML 文件

apiVersion: v1
 items:
 - apiVersion: v1
 kind: Pod
 metadata:
  creationTimestamp: null
  generateName: clara-clara-platform-7bb6f9f5c6-
  labels:
   app.kubernetes.io/instance: clara
   app.kubernetes.io/name: clara-platform
  pod-template-hash: 7bb6f9f5c6
ownerReferences:
- apiVersion: apps/v1
  blockOwnerDeletion: true
  controller: true
  kind: ReplicaSet
  name: clara-clara-platform-7bb6f9f5c6
  uid: d0f0dc14-8b7e-45e3-8528-0879c7ce9330
selfLink: /api/v1/namespaces/default/pods/clara-clara-platform-7bb6f9f5c6- 
 pdzgd
  spec:
   containers:
   - args:
   - --model-store=/models
   command:
   - trtserver
   image: clara/trtis:0.1.8
   imagePullPolicy: IfNotPresent
   livenessProbe:
    failureThreshold: 3
    httpGet:
      path: /api/health/live
      port: 8000
      scheme: HTTP
     initialDelaySeconds: 5
     periodSeconds: 5
     successThreshold: 1
     timeoutSeconds: 1
   name: inference-server
   ports:
   - containerPort: 8000
     protocol: TCP
   - containerPort: 8001
     protocol: TCP
   - containerPort: 8002
     protocol: TCP
   readinessProbe:
     failureThreshold: 3
     httpGet:
       path: /api/health/ready
      port: 8000
      scheme: HTTP
     initialDelaySeconds: 5
     periodSeconds: 5
     successThreshold: 1
     timeoutSeconds: 1
   resources: {}
   securityContext:
     runAsUser: 1000
   terminationMessagePath: /dev/termination-log
   terminationMessagePolicy: File
  volumeMounts:
   - mountPath: /models
    name: pv-clara-volume
    subPath: models
   - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
    name: clara-service-account-token-c62fp
    readOnly: true
 - image: clara/dicomserver:0.1.8
   imagePullPolicy: Never
   name: dicom-server
   ports:
  - containerPort: 104
    hostPort: 104
    name: dicom-port
    protocol: TCP
  resources: {}
  terminationMessagePath: /dev/termination-log
  terminationMessagePolicy: File
  volumeMounts:
  - mountPath: /payloads
    name: pv-clara-volume
    subPath: clara-core/payloads
  - mountPath: /app/app.yaml
    name: dicom-server-config
    subPath: app.yaml
  - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
    name: clara-service-account-token-c62fp
    readOnly: true
- image: clara/core:0.1.8
  imagePullPolicy: Never
  name: clara-core
  ports:
  - containerPort: 50051
    protocol: TCP
  resources: {}
  terminationMessagePath: /dev/termination-log
  terminationMessagePolicy: File
  volumeMounts:
  - mountPath: /app/Jobs
    name: pv-clara-volume
    subPath: clara-core/payloads
  - mountPath: /app/Workflows
    name: pv-clara-volume
    subPath: clara-core/workflows
  - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
    name: clara-service-account-token-c62fp
    readOnly: true
- image: clara/clara-dashboard:0.1.8
  imagePullPolicy: Never
  name: clara-dashboard
  ports:
  - containerPort: 8080
    hostPort: 8080
    name: dashboard-port
    protocol: TCP
  resources: {}
  terminationMessagePath: /dev/termination-log
  terminationMessagePolicy: File
  volumeMounts:
  - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
    name: clara-service-account-token-c62fp
    readOnly: true
- image: clara/renderserver:0.1.8
  imagePullPolicy: Never
  name: render-server
  ports:
  - containerPort: 2050
    hostPort: 2050
    name: render-port
    protocol: TCP
  resources: {}
  terminationMessagePath: /dev/termination-log
  terminationMessagePolicy: File
  volumeMounts:
  - mountPath: /app/datasets
    name: pv-clara-volume
    subPath: datasets
  - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
    name: clara-service-account-token-c62fp
    readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
imagePullSecrets:
- name: nvcr.io
nodeName: whiskey
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: clara-service-account
serviceAccountName: clara-service-account
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
  key: node.kubernetes.io/not-ready
  operator: Exists
  tolerationSeconds: 300
- effect: NoExecute
  key: node.kubernetes.io/unreachable
  operator: Exists
  tolerationSeconds: 300
volumes:
- name: pv-clara-volume
  persistentVolumeClaim:
    claimName: pv-clara-volume-claim
- configMap:
    defaultMode: 420
    items:
    - key: app.Release.yaml
      path: app.yaml
    name: clara-configmap
  name: dicom-server-config
- name: clara-service-account-token-c62fp
  secret:
    defaultMode: 420
    secretName: clara-service-account-token-c62fp
  status:
 phase: Pending
 qosClass: BestEffort
 kind: List
 metadata:
 resourceVersion: ""
 selfLink: ""

你能帮我实现吗?

【问题讨论】:

  • 你能简单地分享一下 kubernetes 部署清单吗?
  • @4c74356b41 - 嗨,我更新了帖子
  • 我将以下答案标记为解决方案,因为讨论帮助我找出答案,命令也帮助了我..

标签: azure kubernetes azure-aks kubernetes-pod


【解决方案1】:

查看 yaml,我只看到 pod 中的这些容器:

Image:                          Name:
clara/core:0.1.8                clara-core
clara/clara-dashboard:0.1.8     clara-dashboard
clara/renderserver:0.1.8        render-server
clara/trtis:0.1.8               inference-server
clara/dicomserver:0.1.8         dicom-server

我不确定哪个是您需要的,似乎没有什么可以称为 AI,但无论哪种方式您都可以使用以下方式检查日志:

kubectl logs clara-clara-platform-7bb6f9f5c6-pdzgd %container_name%

所以如果inference-server 是您感兴趣的:

kubectl logs clara-clara-platform-7bb6f9f5c6-pdzgd inference-server

【讨论】:

  • 其实这是我的问题。但是,如果您看到文档“捆绑容器”,就会发现像 dicom-reader、dicom-writer、ai-container 这样的容器很少。我如何获得这些状态?
  • 但是您可以在我的帖子顶部看到更多图像,例如“applastchannel”、“dicom-reader”、“dicom-writer”。这些也会被触发,但不知道如何跟踪它们。相信这些都是 clara-core 容器的一部分。
  • 嗯,这意味着它们是其他 pod 的一部分,而不是您展示的那个,只需逐个查看所有 pod,您就会找到您正在寻找的那些。我真的不能为你这样做。你可以使用kubectl get pods --all-namespaces 并从那里开始,或者添加-o yaml 并做一些grepping
  • 不,我只是想知道如何做到这一点。将检查其他 pod。感谢您的洞察力。
  • 好吧,因为您将它们视为问题中第一个命令的输出的一部分,这意味着它们实际上是 kubernetes 上的 pod。它们只是您未显示的其他 pod 的一部分
猜你喜欢
  • 2020-02-14
  • 2020-11-22
  • 2017-08-25
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2022-10-26
  • 1970-01-01
  • 2019-07-21
相关资源
最近更新 更多