当前位置: 首页 > 知识库问答 >
问题:

Kubernetes工作中的边车集装箱?

邢炯
2023-03-14

在这里,我们使用KubernetesJobs进行大量的批处理计算,我希望用一个监视侧车来检测每个作业,以便随着作业的进度更新一个集中跟踪系统。

唯一的问题是,我无法弄清楚一个作业中的多个容器的语义是什么(或者应该是什么)。

NAME                                         READY     STATUS      RESTARTS   AGE
    job-69541b2b2c0189ba82529830fe6064bd-ddt2b   1/2       Completed   0          4m
    job-c53e78aee371403fe5d479ef69485a3d-4qtli   1/2       Completed   0          4m
    job-df9a48b2fc89c75d50b298a43ca2c8d3-9r0te   1/2       Completed   0          4m
    job-e98fb7df5e78fc3ccd5add85f8825471-eghtw   1/2       Completed   0          4m
State:              Terminated
  Reason:           Completed
  Exit Code:        0
  Started:          Thu, 24 Mar 2016 11:59:19 -0700
  Finished:         Thu, 24 Mar 2016 11:59:21 -0700
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: 2016-03-24T18:59:29Z
      message: 'containers with unready status: [pod-template]'
      reason: ContainersNotReady
      status: "False"
      type: Ready
    containerStatuses:
    - containerID: docker://333709ca66462b0e41f42f297fa36261aa81fc099741e425b7192fa7ef733937
      image: luigi-reduce:0.2
      imageID: docker://sha256:5a5e15390ef8e89a450dac7f85a9821fb86a33b1b7daeab9f116be252424db70
      lastState: {}
      name: pod-template
      ready: false
      restartCount: 0
      state:
        terminated:
          containerID: docker://333709ca66462b0e41f42f297fa36261aa81fc099741e425b7192fa7ef733937
          exitCode: 0
          finishedAt: 2016-03-24T18:59:30Z
          reason: Completed
          startedAt: 2016-03-24T18:59:29Z
    - containerID: docker://3d2b51436e435e0b887af92c420d175fafbeb8441753e378eb77d009a38b7e1e
      image: alpine
      imageID: docker://sha256:70c557e50ed630deed07cbb0dc4d28aa0f2a485cf7af124cc48f06bce83f784b
      lastState: {}
      name: sidecar
      ready: true
      restartCount: 0
      state:
        running:
          startedAt: 2016-03-24T18:59:31Z
    hostIP: 10.2.113.74
    phase: Running

所以看起来我的边车需要观察主要过程(怎么做?)一旦它发现自己独自一人在豆荚里,就优雅地退出?如果这是正确的,那么对此是否有最佳实践/模式(sidecar应该带着主容器的返回代码退出吗?但是它是如何得到的?)?

**更新**经过进一步的实验,我还发现了以下几点:如果一个吊舱中有两个容器,那么直到吊舱中的所有容器都返回退出代码为0时,它才被认为是成功的。

此外,如果在pod规范上设置了restartpolicy:onfailure,那么pod中以非零退出代码终止的任何容器都将在同一个pod中重新启动(这对于监视侧卡来说很有用,可以计算重试次数,并在一定次数之后删除作业(以解决Kubernetes作业中目前没有最大重试次数))。

共有1个答案

唐修诚
2023-03-14

您可以使用向下api从sidecar中找出您自己的podname,然后从apiserver中检索您自己的pod,以查找exist状态。告诉我进展如何。

 类似资料:
  • 我正试图在我的kubernetes集群中安装Jenkins。当我探索的时候,我发现有两个方面。我理解的第一种方法是,安装詹金斯主从。在这里,我找到了在kubernetes集群上安装Jenkins主从代理的文档。第二种方法是我发现Kubernetes插件的用法。如果我们用这种方法,只需要安装master和配置插件。当创建一个部署时,从吊舱将自动工作。 在第一种方法中,我们需要定义安装主从机的工作机器

  • 我有一个具有以下版本的 Kubernetes 集群: 我有一个cron工作在我的库伯内特斯集群。 库伯内特斯集群识别cron作业的api资源。 我正在尝试为此创建一个手动作业,但是遇到了这个错误。 谁能帮忙?

  • 我在Azure中有一个应用程序服务。它显示了两个称为“平均内存工作集”(Average Memory Working Set)和“内存工作集”(Memory Working Set)的度量。现在,内存工作集被定义为进程中线程最近接触到的内存页集。门户中显示的这两个图形如下所示: 现在,我有三个问题: > 如何找出我的服务的专用最大内存是多少?一旦达到限制会发生什么? 内存工作集是进程中的线程最近接

  • Centralized Workflow。项目的所有协作者把对项目的修改推送到统一的远程仓库,这就是集中式工作流。其它的 Git 工作流基本都是基于这种工作流程做了一些扩展。 项目的发起者在自己电脑上创建了一个本地仓库,他又为项目在远程创建了一个仓库,这个远程仓库就是所有协作者要把提交推送到的地方。这个远程仓库在谁家那创建都无所谓,可以用 Github,Coding.net,阿里云 Code,也可

  • 我尝试了本地minikube和kubeadm Kubernetes集群,并通过https://github.com/jenkinsci/kubernetes-plugin运行Jenkins服务器,并使用。 以下是了解这个问题的更多细节。

  • 迷你版⏎ minikube版本:v0.22.3 我试图在一个minikube实例中设置不同的pod。我在一个公司代理后面运行,这可以解释一些这种行为。 我使用以下方法启动minikube minikube start-docker-env HTTP _ PROXY = HTTP://corporate-PROXY . com:80-docker-env HTTPS _ PROXY = https: