Я пытаюсь играть с инициалами. Я хочу использовать контейнер init для создания файла и контейнер по умолчанию, чтобы проверить, существует ли файл и некоторое время спит
мой ямл:
apiVersion: v1
kind: Pod
metadata:
name: init-test-pod
spec:
containers:
- name: myapp-container
image: alpine
command: ['sh', '-c', 'if [ -e /workdir/test.txt ]; then sleep 99999; fi']
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', 'mkdir /workdir; echo>/workdir/test.txt']
Когда Iam пытается отладить альпийский образ, я использую команду для создания
kubectl run alpine --rm -ti --image = alpine / bin / sh
If you don't see a command prompt, try pressing enter.
/ # if [ -e /workdir/test.txt ]; then sleep 3; fi
/ # mkdir /workdir; echo>/workdir/test.txt
/ # if [ -e /workdir/test.txt ]; then sleep 3; fi
/ *here shell sleeps for 3 seconds
/ #
И похоже, команды работают должным образом.
Но на моем реальном кластере k8s у меня есть только CrashLoopBackOff для основного контейнера.
kubectl описывают pod init-test-pod
Показывает мне только эту ошибку:
Containers:
myapp-container:
Container ID: docker://xxx
Image: alpine
Image ID: docker-pullable://alpine@sha256:xxx
Port: <none>
Host Port: <none>
Command:
sh
-c
if [ -e /workdir/test.txt ]; then sleep 99999; fi
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
Ready: False
Restart Count: 3
Environment: <none>