WS - 从 worker_groups 获取实例 ID
WS - get instance id from worker_groups
如何从此配置中获取实例 ID?
worker_groups = [
{
name = "model-service_worker-group-1"
instance_type = "p3.2xlarge"
additional_userdata = "echo foo bar"
asg_desired_capacity = 1
additional_security_group_ids = [aws_security_group.worker_group_mgmt_one.id]
},
我想重用这个实例并将 EBS 附加到它:
resource "aws_volume_attachment" "this_ec2" {
count = 1
device_name = "/dev/sdh"
volume_id = "0a7e25357443b6df0"
instance_id = <INSTANCE ID HERE>
}
resource "aws_ebs_volume" "this" {
count = 1
availability_zone = module.eks.availability_zone[count.index]
size = 1
}
terraform-aws-eks模块不提供实例id等信息。这是因为它使用 AutoScaling Group (ASG) 来管理您的工作程序实例。 ASG 中的实例不受 TF 控制。因此,您无法获取他们的 ID。
充其量您必须设计一个自定义解决方案 来获取 asg 中的当前实例。这是可能的,因为 terraform-aws-eks
输出 workers_asg_arns
。但它的设计仍然很糟糕,因为 ASG 中的实例可以随时替换,而无需您的 TF 代码参与。从长远来看,这将 导致失败 ,如果您依赖于实例始终相同。
如何从此配置中获取实例 ID?
worker_groups = [
{
name = "model-service_worker-group-1"
instance_type = "p3.2xlarge"
additional_userdata = "echo foo bar"
asg_desired_capacity = 1
additional_security_group_ids = [aws_security_group.worker_group_mgmt_one.id]
},
我想重用这个实例并将 EBS 附加到它:
resource "aws_volume_attachment" "this_ec2" {
count = 1
device_name = "/dev/sdh"
volume_id = "0a7e25357443b6df0"
instance_id = <INSTANCE ID HERE>
}
resource "aws_ebs_volume" "this" {
count = 1
availability_zone = module.eks.availability_zone[count.index]
size = 1
}
terraform-aws-eks模块不提供实例id等信息。这是因为它使用 AutoScaling Group (ASG) 来管理您的工作程序实例。 ASG 中的实例不受 TF 控制。因此,您无法获取他们的 ID。
充其量您必须设计一个自定义解决方案 来获取 asg 中的当前实例。这是可能的,因为 terraform-aws-eks
输出 workers_asg_arns
。但它的设计仍然很糟糕,因为 ASG 中的实例可以随时替换,而无需您的 TF 代码参与。从长远来看,这将 导致失败 ,如果您依赖于实例始终相同。