amazon-web-services - Terraform 创建的 EC2 实例与 ECS 集群无关
问题描述
我是新的 Terraform,我正在研究用于部署 Docker 容器的基础设施设置。我的 ECS 集群基于Infrablocks/ECS-Cluster,基础网络基于Infrablocks/Base-Network。由于项目的时间限制,我选择使用这些。
我遇到的问题是由 Infrablocks/ECS-Cluster 模块创建的两个 EC2 容器实例与 Infrablocks 构建的 ECS 集群没有关联。我有零运气来确定原因。这会阻止我的任务定义能够在 ECS 集群中运行容器,因为没有关联的 EC2 实例。我在下面提供了我的两个依赖模块配置。
提前感谢您提供的任何帮助!
到目前为止,我的 Terraform:
module "base_network" {
source = "infrablocks/base-networking/aws"
version = "2.3.0"
vpc_cidr = "10.0.0.0/16"
region = "us-east-1"
availability_zones = ["us-east-1a", "us-east-1b"]
component = "dev-base-network"
deployment_identifier = "development"
include_route53_zone_association = "true"
private_zone_id = module.route53.private_zone_id
include_nat_gateway = "true"}
module "ecs_cluster" {
source = "infrablocks/ecs-cluster/aws"
version = "2.2.0"
region = "us-east-1"
vpc_id = module.base_network.vpc_id
subnet_ids = module.base_network.public_subnet_ids
associate_public_ip_addresses = "yes"
component = "dev"
deployment_identifier = "devx"
cluster_name = "services"
cluster_instance_ssh_public_key_path = "~/.ssh/id_rsa.pub"
cluster_instance_type = "t2.small"
cluster_minimum_size = 2
cluster_maximum_size = 10
cluster_desired_capacity = 2 }
解决方案
您必须对实例进行故障排除才能了解它为什么没有加入集群。在您的 EC2 实例上(我没有查看,但我希望“infrablocks”ecs-cluster 模块使用安装了 ECS 代理的 AMI),您可以查看 /var/log/ecs/ecs-agent。日志 。
如果网络配置是健全的,我的第一个猜测是检查 ECS 配置文件。如果您的模块工作正常,它应该已经使用集群名称填充了配置。有关更多信息,请参见此处
(我会发表评论而不是回答,但这个帐户没有足够的代表:耸耸肩:)
推荐阅读
- xml - 如何从tally xml api获取所有公司数据?
- c# - asp.net core AzureADJwtBearer 颁发者验证失败
- java - 如何验证我没有收到@JsonProperty 和@JsonAlias 中定义的两个值?
- xamarin.forms.listview - 无法将对象与子对象绑定
- python - 如何展平熊猫中的json字段
- docker - 没有“公共”的docker下的laravel应用程序的url如何?
- android - 运行cordova-android App时显示“等待模拟器启动...”
- php - 致命错误:未捕获的异常“Alchemy\BinaryDriver\Exception\ExecutableNotFoundException”,消息“未找到可执行文件,建议
- c# - 在 Xamarin Forms 中“重新添加”TabbedPage 子项时如何禁用 BottomNavigationView 移位模式?
- javascript - 如何在已部署的应用程序中使用 puppeteer-core 抓取动态网页?