在 kubernetes 中暂停多容器 pod 中的一个容器

在 kubernetes 中暂停多容器 pod 中的一个容器

我有pod两个容器。我需要暂停其中一个,因为当它出现错误时,整个容器pod将重新启动,而第二个容器将从头开始所有操作。我需要暂停第一个容器,直到第二个容器完成其工作。我能做到这一点吗?

答案1

您可以将第二个容器定义为初始化容器。初始化容器与常规容器完全相同,只是它们始终运行至完成,每个初始化容器必须成功完成,下一个初始化容器才能启动。

以下是一个例子:

apiVersion: v1
kind: Pod
metadata:
  name: example
  labels:
    app: app
spec:
  containers:
  - name: app-container
    image: busybox:1.28
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-example
    image: busybox:1.28
    command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]

看一看:初始化容器

相关内容