一个集群共享相同 Terraform 状态的多个环境

Kub*_*zek 5 amazon-web-services kubernetes amazon-eks

我已使用 terraform-aws-modules/vpc/aws 和 Terraform 创建了 EKS 集群,我在法兰克福的每个可用区上使用了 1 个带有 3 个私有子网的 VPC。我创建了两个服务(tomcat 和 psql)和部署,它们通过 LoadBalancer 公开并通过互联网访问。到目前为止看起来还不错。但问题是它只有一个环境(DEV)。我想在一个 VPC 和一个集群内创建多个环境,例如阶段、测试等,如何使用 terraform 来实现?我应该为每个环境创建新文件吗?这没有意义,但我什么也没想到...我也在考虑工作区,但问题是新工作区需要新状态 - 这意味着我需要为每个工作区创建带有新集群的新 VPC!也许我应该将 terraform 文件划分为“常规”工作区之类的内容,并且对 VPC 和集群进行配置,并为每个环境创建新的工作区?您有什么想法或更好的解决方案吗?

                   专有网络 - 172.26.0.0/16
+----------------------+-------------------------- --------+
| |
| |
| Kubernetes 集群 |
| +------------------------------------------------ + |
| | | |
| | | |
| | | |
| | +------------------+ +-----------------+ | |
| | | | | | | |
| | | 测试环境| | 开发环境| | |
| | | +------+ +-----+ | | +-----+ +-----+ | | |
| | | |雄猫| |psql | | | |tomcat |psql | | | |
| | | +------+ +-----+ | | +-----+ +-----+ | | |
| | | | | | | |
| | +------------------+ +-----------------+ | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| +------------------------------------------------ + |
| |
+------------------------------------------------ --------+

Mal*_*thi 2

可以在单个 K8s 集群中创建多个环境。您可以为此使用命名空间。要从集群外部访问不同的环境,您可以为每个环境使用不同的域名。

例如dev.abc.com访问开发环境和test.abc.com访问测试环境。