Τεκμηρίωση παραδείγματος: Init Container Migration
Στόχος
Κατανοήστε πώς μια εφαρμογή ξεκινά μόνο αφού ολοκληρωθεί με επιτυχία ένας Init Container.
Τι γίνεται
Ένας Init Container γράφει ένα απλό αρχείο migration σε κοινό emptyDir. Στη συνέχεια, ο NGINX container προβάλλει αυτό το αρχείο ως περιεχόμενο.
Συνήθεις εντολές
kubectl apply -f manifests/
kubectl rollout status deployment/migration-app -n init-lab
kubectl logs -n init-lab deployment/migration-app -c migrate
kubectl exec -n init-lab deploy/migration-app -- cat /usr/share/nginx/html/index.html
Επιβεβαίωση επιτυχίας
- Ο Init Container ολοκληρώνεται επιτυχώς.
- Τα Pods της εφαρμογής γίνονται Ready μόνο μετά την ολοκλήρωσή του.
- Το αρχείο που δημιουργήθηκε είναι ορατό στον container της εφαρμογής.
Συνηθισμένα λάθη
- Ο Init Container γράφει σε άλλο volume από εκείνο που διαβάζει η εφαρμογή.
- Οι migrations δεν είναι idempotent.
- Οι αποτυχίες του Init Container γίνονται αντιληπτές μόνο ως
Init:CrashLoopBackOff.