我試圖在我的EKS節點上只部署一個子網,但我不知道如何只給資源一個。我向你展示我的代碼:
resource "aws_eks_node_group" " managed_workers" {
for_each = var.nodegroups[terraform.workspace]
cluster_name =aws_eks_cluster.cluster.name]
node_group_name = each.value.Name
node_role_arn = aws_iam_role.managed_workers.arn
subnet_ids = aws_subnet.private.*.id
另一方面,我有一個正常的任務來創建子網,并給我所有的代碼提供輸出:
resource "aws_subnet""private" {
count = length(local.subnet_priv)
vpc_id = var.vpc_id[terraform.workpace]
cidr_block = local.subnet_priv [count.index]
availability_zone = element(lookup(var.availability_zones, terraform.workspace), count.index)
map_public_ip_on_launch = false
所以......我不知道如何從我的subnet_ids引數中只獲得元組的第一個子網。現在,正如你所看到的,我得到了所有的子網,但我嘗試了不同的方法,但沒有成功 (aws_subnet.private[0].*.id , aws_subnet.private[0].id, etc)
有什么想法?
有什么想法嗎?
非常感謝。
非常感謝!
uj5u.com熱心網友回復:
EKS節點組subnet_ids引數期望是一個元組。在原來的例子中subnet_ids = aws_subnet.private.*.id使用的是split運算子。矛頭運算子(*)本質上創建了一個包含所有可用資源的元組,在我們的例子中是所有可用子網。
如果我們想從所有可用的子網中只傳遞一個子網,我們必須創建一個具有單個元素的元組。我們可以通過從所有現有的子網中抽取第一個元素來實作,比如:
subnet_ids = [aws_subnet. private[0].id]
雖然,這可能是可行的,但我個人認為這并不是一個優雅的解決方案。當然,實作相同結果的更好方法是修改local.subnet_priv元組,使其只包含一個子網ID。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/319472.html
標籤:
下一篇:GKE入口;對特定服務應用重寫
