Я управляю установленным приложением AWS ECS с помощью terraform.Terraform также управляет всеми другими аспектами каждой из 4 сред AWS, включая VPC, подсети, узлы бастионных сетей, базы данных RDS, группы безопасности и так далее.
Мы управляем нашими четырьмя средами, помещая всю общую конфигурацию в модули, параметризованные переменными, полученными из файлов терраформ окружения.
Теперь мы пытаемся перейти на использование Kubernetes вместоAmazon ECS для оркестровки контейнеров, и я пытаюсь делать это постепенно, а не с подходом большого взрыва.В частности, я хотел бы использовать terraform для предоставления кластера Kubernetes и связать его с другими ресурсами AWS.
То, что я первоначально надеялся сделать, это захватить вывод terraform из kops create cluster
, обобщить егопутем параметризации его с помощью переменных, специфичных для среды, а затем использовать этот один модуль kubernetes во всех 4 средах.
Однако теперь я понимаю, что это не сработает, поскольку все узлы и мастера k8s ссылаются на область состояния kops (в с3) и мне кажется, что я собираюсь клонировать эту корзину и переписать содержащиеся в ней файлы.Это кажется довольно хрупким способом управления средой kubernetes - если я воссоздаю среду terraform, сегмент состояния kops связанных состояний будет несовместим со средой AWS.
Мне кажется, что kops генерирует terraformможет быть полезен для управления одним экземпляром среды, но его нелегко применить к нескольким средам - вам фактически требуется одна сгенерированная терраформа копов для среды, и в настоящее время есть возможность повторно использовать терраформу для создания новой среды - для этого вам необходимоотступить от декларативного подхода и прибегнуть к императивной команде kops create cluster
.
Мне не хватает хорошего способа управления определением нескольких похожих сред kubernetes с помощью одного модуля terraform?