https://github.com/hashicorp/terraform/issues/17429で説明されているように、 7 日後にスポット リクエストがキャンセルされ、インスタンスは引き続き実行されます。そのため、「terraform apply」を実行すると、新しいスポットを作成しようとします。これは、AWS プロバイダー >=1.13.0 で発生します。
AWS プロバイダー 1.32.0 を使用していますが、この問題の回避策を知っている人はいますか? 将来のインストールでは、リクエストの有効期間を延長する valid_until フラグを使用しますが、既にインストールされているスポットはどうですか?
ありがとう
resource "aws_spot_instance_request" "cheap_worker" {
count = "${var.kube_master_spot_num}"
ami = "${data.aws_ami.nat_ami.id}"
availability_zone ="${element(slice(data.aws_availability_zones.available.names,var.kube_master_on_demand_num,var.availability_zones_num),count.index)}"
spot_price = "3"
instance_type = "${var.kube_master_type}"
subnet_id = "${element(module.aws-vpc.aws_subnet_ids,count.index + var.kube_master_on_demand_num)}" # adjusting to a case with spots & on-demand servers
vpc_security_group_ids = [ "${module.aws-vpc.cluster_sg_id}", "${module.aws-vpc.route53_sg_id}" ]
key_name = "${basename(var.local_ssh_key)}"
associate_public_ip_address = true
root_block_device = [{volume_type="gp2",volume_size="50",delete_on_termination=true}]
spot_type = "one-time"
wait_for_fulfillment = true
tags {
Name = "${var.kube_identify}-${var.kube_type}-master-${count.index}"
}
provisioner "local-exec" {
command = "sleep 120"
}
connection {
type = "ssh"
user = "ubuntu"
private_key = "${file(var.local_ssh_key)}"
}
provisioner "remote-exec" {
inline = [
"sudo apt-get update"
]
}
}