Передача стручков kubernetes новому экземпляру стручков
Я развернул инфраструктуру kubernetes в своей организации и увеличил масштаб своего приложения, но в то же время оно требует индивидуальной модификации, поэтому мне нужно снова и снова изменять и фиксировать свои образы, а затем извлекать это изображение, чтобы увидеть мои изменения. Есть ли какие-либо способы, с помощью которых я могу фиксировать свои модули и использовать их в качестве экземпляра для репликации на другие модули, может, кто-нибудь посоветует, как решить эту проблему, не повторяя базовые образы снова и снова.
1 ответ
Как правило, я думаю, что вам будет гораздо лучше, если вы проводите локальное тестирование, а не "производственное тестирование". Это говорит:
Я могу представить, как монтируется том общей файловой системы, такой как NFS, чтобы вы могли вносить изменения, когда они распространяются на связанные модули.
Или, если это не доступно, то измените command:
Стручка, чтобы клонировать репо поверх основного изображения:
containers:
- name: my-pod
image: repo.example.com/the-image:some-tag
command:
- bash
- -c
- |
git clone https://example.com/the/repo.git /into/the/right/directory
# then continue with the Pod's normal boot-up
exec /docker-entrypoint.sh
что дает преимущество, по крайней мере, позволяя хранить ваши изменения в безопасном месте перед их распространением в кластер.
Или, если это не применимо, можно повторить путь "вручную" после внесения любых необходимых изменений в один из модулей:
$ kubectl exec -it $pod -- bash -il
# vi /the/file/or/whatever
# exit
$ for p in $(get the list of other pod names); do
kubectl exec $pod -- tar -cf - /the/sync/directory | \
kubectl exec $p -- tar -xf - -C /
done
Конечно, есть риск, что если все модули будут уничтожены, то же самое произойдут и с вашими изменениями, но это устранит ваше отвращение к созданию новых образов докеров каждый раз.