Назад | Перейти на главную страницу

приостановить контейнер для контейнера с несколькими контейнерами в кубернетах

Я pod с двумя контейнерами. Мне нужно приостановить один из них, потому что, когда он получает ошибку, pod перезапустится, и второй контейнер начнет все с начала. Мне нужно приостановить первый контейнер, пока второй не выполнит свою работу. Могу ли я этого добиться?

Вы можете определить второй контейнер как контейнер инициализации. Контейнеры инициализации точно такие же, как и обычные контейнеры, за исключением того, что они всегда выполняются до завершения, каждый контейнер инициализации должен успешно завершиться до запуска следующего.

Вот пример:

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"]

Взглянуть: init-контейнеры.