Миграция пространства имен Kubernetes в другой кластер - PullRequest
0 голосов
/ 08 апреля 2020

Предположим, у нас есть кластер Kubernetes с именем CLUSTER_01 и пространство имен DEV. Я хочу воссоздать это пространство имен DEV в другом кластере с именем CLUSTER_02. Что будет самым простым и лучшим способом сделать это.

Ответы [ 3 ]

3 голосов
/ 08 апреля 2020

Velero (ранее Heptio Ark) предоставляет инструменты для резервного копирования и восстановления ресурсов кластера Kubernetes и постоянных томов. Вы можете запустить Velero с облачным провайдером или локально. Velero позволяет:

  1. Создание резервных копий кластера и восстановление в случае потери.
  2. Перенос ресурсов кластера в другие кластеры.
  3. Репликация производственного кластера для разработки и тестирование кластеров. Velero состоит из:

Сервер, который работает в вашем кластере

Клиент командной строки, который работает локально

1 голос
/ 08 апреля 2020

Если вы стандартизировали развертывания Kubernetes с помощью некоторых инструментов, таких как Jenkins или чего-либо подобного, то у вас есть набор стандартных объектов, которые вы создавали для каждого развертывания, такие как configmap, secret, ingress, deploy, hpa, et c.

Тогда самый простой способ - сбросить объекты как YAML в файл и затем повторно применить их к новому Custer. Хотя это не очень хорошая практика, но самая простая.

kubectl get configmap -n <namespace> -o yaml > CLUSTER_O1_Namespace.yaml

Начните с более низких объектов, таких как configmap, секреты, внешние конечные точки, затем примените основные объекты, такие как развертывание, вход и hpa.

Убедитесь, что внешние зависимости, необходимые для объектов k8s, таких как входной контроллер, применяются в первую очередь и идентичны вашему CLUSTER_01.

Как @Arghya предложил использовать Velero (ранее Heptio Ark) если у вас есть пропускная способность.

0 голосов
/ 08 апреля 2020

Хотя теоретически возможно запросить данные из хранилища данных etcd и перенести их в другой кластер, вы все равно столкнетесь с несоответствиями в локальных настройках и переменных. Самый простой способ - воссоздать все ресурсы в пространстве имен из манифестов или диаграмм Хелма (все, что у вас есть для них).

...