我对这个配置和我尝试的一切都迷失了,它根本不起作用。
解释一下。我有一个用于部署 Azure Kubernetes 集群的 terraform 代码,如下所示:
resource "azurerm_kubernetes_cluster" "aks_cluster" {
location = var.location
name = "aks-${var.environment}-${var.region}-${var.aks_name}"
resource_group_name = azurerm_resource_group.kubernetes_resource_group.name
dns_prefix = "aks-${var.environment}-${var.region}-${var.aks_name}"
kubernetes_version = data.azurerm_kubernetes_service_versions.current.latest_version
node_resource_group = "${azurerm_resource_group.kubernetes_resource_group.name}-nrg"
default_node_pool {
name = "systempool"
vm_size = "Standard_D2_V2"
orchestrator_version = data.azurerm_kubernetes_service_versions.current.latest_version
zones = [1]
enable_auto_scaling = true
min_count = 1
max_count = 2
os_disk_size_gb = 64
type = "VirtualMachineScaleSets"
vnet_subnet_id = azurerm_subnet.system_pool_subnet.id
node_labels = {
"nodepool-type" = "System"
"environment" = "${var.environment}"
"nodepoolOS" = "linux"
"app" = "System"
}
}
我想做的是在我的虚拟机规模集中启用 systemAssigned 和 UserAssigned 身份。
在集群配置中我添加了以下内容。
identity {
type = "UserAssigned"
user_assigned_identity_ids = data.azurerm_user_assigned_identity.user_assigned.id
}
但这不会添加我创建的现有托管身份。 所以我认为我做错了什么并尝试仅使用系统分配的身份,但这也没有启用。我在 terraform 文档或配置中找不到任何参考。
所以我尝试运行 az 命令:
az aks update -g <resource-group> -n <cluster-name> --enable-managed-identity
上面的方法可行,但不在规模集上,这是可以理解的。
有人可以告诉我我在这里做错了什么吗?
我想要的是启用用户管理身份并将其分配给我的 VMSS,并且可能同时执行这两项操作(SystemAssigned 和 USerAssigned)。
我希望我能很好地解释我的意图,如果没有,请随时询问更多细节。
我想做的是在我的虚拟机规模集中启用 systemAssigned 和 UserAssigned 身份。
您无法使用 Terraform 将 systemAssigned 和 UserAssigned 身份 分配给
VMSS
,因为它一次仅支持一个 Identity 块。
注意:如果代码中未指定
块,则会自动创建用户管理身份并将其分配给 VMSS,但它只接受用户管理身份,而不接受 systemAssignedkubelet_identity
这里是更新的代码,用于创建
AKS
并为 VMSS
启用现有的UserAssigned 身份
provider "azurerm" {
features {}
}
data "azurerm_resource_group" "example" {
name = "Venkat"
}
data "azurerm_user_assigned_identity" "example" {
name = "Aks-UAMI"
resource_group_name = "Venkat"
}
resource "azurerm_kubernetes_cluster" "aks_cluster" {
location = "East US "
name = "demovenkatakscluster1"
resource_group_name = data.azurerm_resource_group.example.name
dns_prefix = "aks-demo"
node_resource_group = "${data.azurerm_resource_group.example.name}-rg"
default_node_pool {
name = "systempool"
vm_size = "Standard_D2_V2"
zones = [1]
enable_auto_scaling = true
min_count = 1
max_count = 2
os_disk_size_gb = 64
type = "VirtualMachineScaleSets"
node_labels = {
"nodepool-type" = "System"
"nodepoolOS" = "linux"
"app" = "System"
}
}
identity {
type = "UserAssigned"
identity_ids = [data.azurerm_user_assigned_identity.example.id]
}
kubelet_identity{
client_id = "user assigned identity Cleint ID"
object_id = "user assigned identity Object ID"
user_assigned_identity_id = data.azurerm_user_assigned_identity.example.id
}
}
输出: