Я 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-контейнеры.