【发布时间】:2021-02-15 08:22:07
【问题描述】:
以下 terraform 资源使用虚拟机规模集 (VMSS) 和负载均衡器 (LB) 资源创建 AKS 群集。目前,通过在addon_profile 下添加oms_agent 部分,可以在集群资源上启用诊断日志。
但是,文档没有提到是否有一种方法可以对default_node_pool 创建的 VMSS 和network_profile 创建的 LB 启用诊断。这可以通过 terraform 实现吗?
另外,集群创建的 VMSS 和 LB 是否有固定的命名方案?如果有固定的命名方案,解决此问题的一种方法是简单地在正确的资源组中查找具有这些预定义名称的资源,以创建日志分析解决方案。
Terraform 文档:
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster#default_node_pool
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster#load_balancer_profile
resource "azurerm_kubernetes_cluster" "aks-cluster" {
resource_group_name = azurerm_resource_group.aks-rg.name
location = azurerm_resource_group.aks-rg.location
name = "my-cluster"
dns_prefix = "my-cluster-aks"
kubernetes_version = "1.18.8"
private_cluster_enabled = false
node_resource_group = "MC_my-cluster-aks"
api_server_authorized_ip_ranges = [var.authorized_ip]
service_principal {
client_id = var.sp_client_id
client_secret = var.client_secret
}
default_node_pool {
name = "default"
type = "VirtualMachineScaleSets"
vm_size = "Standard_D2_v2"
node_count = 4
enable_auto_scaling = true
min_count = 4
max_count = 6
vnet_subnet_id = azurerm_subnet.aks-vnet-subnet.id
}
network_profile {
network_plugin = "azure"
network_policy = "azure"
docker_bridge_cidr = var.aks_docker_bridge_cidr
dns_service_ip = var.aks_dns_service_ip
load_balancer_sku = "standard"
service_cidr = var.aks_service_cidr
}
addon_profile {
oms_agent {
enabled = true
log_analytics_workspace_id = azurerm_log_analytics_workspace.aks_log_ws.id
}
}
}
【问题讨论】:
-
您的实际期望是什么?
-
一种在通过上述代码创建 AKS 群集期间创建的 VMSS 和 LB 资源上启用诊断日志的方法。
-
@kjd 这有什么成功吗?有同样的任务。
-
@hazzik 不,目前无法通过 terraform 执行此操作,因为创建的 VMSS 的名称未知。执行此操作的最佳方法是在 terraform 创建资源后运行脚本以查找 VMSS 的名称并对其启用诊断。但是,负载均衡器始终命名为 kubernetes。此命名相关信息已由 Azure 确认。
标签: azure terraform azure-aks azure-monitoring