дублировать пространство имен kubernetes с содержимым - PullRequest
0 голосов
/ 14 октября 2019

Для проверки некоторых функций отдельно! Как я могу дублировать пространство имен со всем содержимым с новым именем в том же кластере kubernetes? Пример дублирования по умолчанию для my-namespace, который будет иметь такое же содержимое.

Меня интересуют только службы и развертывания, поэтому, когда я пытаюсь использовать метод с kubectl, получить все, а с api-ресурсами у меня возникает ошибка с IP-службами. как:

Error from server (Invalid): Service "my-service" is invalid: spec.clusterIP: Invalid value: "10.108.14.29": provided IP is already allocated

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Как отметил @coderanger в своем ответе, прямого способа сделать копию исходных ресурсов k8s в отдельном пространстве имен нет.

Как было предложено, когда вы вызываете команду kubectl get all, k8s просматривает каталог ресурсов, ограниченный категорией all . Поэтому, если вы не добавили эту категорию для каждого пользовательского объекта CRD во всей определенной группе API , вы, возможно, можете пропустить некоторые соответствующие ресурсы k8s в командевыход.

Кроме того, если вы хотите экспортировать все ресурсы k8s из определенного пространства имен, кроме пользователя рабочих нагрузок , я бы рекомендовал изучить ресурсов API ,отфильтровываем только объекты области имен, а затем применяем обработку bash для генерации файлов манифеста для каждой группы ресурсов:

kubectl api-resources --namespaced=true| awk '{print $1}'| sed '1d'| while read -r line; do echo "$(kubectl get $line -n namespace -o yaml > $line.yaml)"; done

Вы также можете рассмотреть возможность использования Helm (как указал @David Maze вкомментарий), чтобы управлять пользовательскими рабочими нагрузками через Helm Charts , как более гибкий и структурированный способ описания собственных ресурсов k8s.

1 голос
/ 14 октября 2019

Нет конкретного способа сделать это. Возможно, вы могли бы подобраться к чему-то вроде kubectl get all -n sourcens -o yaml | sed -e 's/namespace: sourcens/namespace: destns/' | kubectl apply -f -, но get all всегда немного шатко, и это может легко пропустить странные крайние случаи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...