Экспортируйте секрет
В целях данного руководства я буду ссылаться на два кластера: «source» и «destination».
Мы хотим скопировать секрет из нашего «исходного» кластера в наш «целевой» кластер.
Итак, во-первых, убедитесь, что вы прошли аутентификацию в вашем source кластере.
kubectl config current-context
Система должна показать имя контекста, настроенного для доступа к вашему исходному кластеру.
Теперь экспортируйте секрет и сохраните данные конфигурации секрета в файле.
kubectl get secret my-secret-name --export -o yaml > my-secret-name.yaml
Импортируйте секрет в новый кластер
Теперь вы можете импортировать секрет в новый кластер.
Так что продолжайте и аутентифицируйтесь в кластере destination , и просто примените файл конфигурации, который вы только что экспортировали.
kubectl apply -f my-secret-name.yaml
kubectl get secret
Система должна показать ваш недавно созданный секрет.
Теперь краткая заметка о безопасности. Существуют угрозы безопасности, связанные с хранением конфиденциальной информации в вашей файловой системе (даже если файл удален). В любом случае вы должныудалить файл, который использовался для временного хранения секретных данных, и использовать этот метод только в том случае, если вы понимаете риски и готовы принять их.
Упрощение этого подхода
Первые два шага были разбиты, но могут быть объединены в одну команду.
Сначала вам нужно получить имена контекста для ваших двух кластеров.
Эта команда поможет в этом:
kubectl config get-contexts
Теперь вы можете запустить:
kubectl get secret my-secret-name --context source_context --export -o yaml | kubectl apply --context destination_context -f -