Передача стручков 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

Конечно, есть риск, что если все модули будут уничтожены, то же самое произойдут и с вашими изменениями, но это устранит ваше отвращение к созданию новых образов докеров каждый раз.

Другие вопросы по тегам