Middle
Истифодаи контейнери init дар Kubernetes чист?
sobes.tech AI
Ҷавоб аз AI
Як махсус контейнер дар дохили pod, ки кори худро пеш аз оғози контейнерҳои асосии pod анҷом медиҳад.
Мақсади он:
- Таҳия кардани муҳит пеш аз оғози барномаи асосӣ.
- бор кардани конфигуратсияҳо ё скриптҳо.
- интизор шудан барои омодагии хизматрасониҳои хориҷӣ (базаҳои додаҳо, API).
- Танзими системаи файлӣ ё ҳуқуқи дастрасӣ.
Хусусиятҳои асосӣ:
- Дар тартиби дар спецификацияи pod зикршуда иҷро мешаванд.
- Ҳар як init-контейнер бояд бо муваффақият анҷом ёбад, пеш аз он ки контейнерҳои асосӣ оғоз ёбанд ё оғоз ёбад.
- Агар init-контейнер бо хато анҷом ёбад, Kubernetes pod-ро такрор мекунад, то ки init-контейнер бо муваффақият анҷом ёбад (ба сиёсати такроркунии pod вобаста аст).
- Дастрасӣ ба volume-и умумии pod доранд, ки имкон медиҳад маълумотро ба контейнерҳои асосӣ интиқол диҳанд.
Тавсифи YAML:
// Намунаи тавсифи pod бо init-контейнер
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
initContainers: // Листи init-контейнерҳо
- name: init-myservice // Номи init-контейнер
image: my-init-image // Расми init-контейнер
command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Команда барои иҷро
containers: // Листи контейнерҳои асосӣ
- name: my-app // Номи контейнери асосӣ
image: my-app-image // Расми контейнери асосӣ
ports:
- containerPort: 80