Azure 是否支持具有容器服務的 Kubernetes 的多個代理配置文件?
我使用以下 terraform 配置在 Azure 上部署了一個 kubernetes 集群(敏感資訊已編輯):
resource "azurerm_container_service" "kubernetes" { name = "myacsname" location = "West Europe" resource_group_name = "someresourcegroup" orchestration_platform = "Kubernetes" master_profile { count = 1 dns_prefix = "xxxmaster" } linux_profile { admin_username = "xxxx" ssh_key { key_data = "${file("authorized_keys")}" } } agent_pool_profile { name = "default" count = 2 dns_prefix = "xxxagent" vm_size = "Standard_F1s" } service_principal { client_id = "xxx" client_secret = "xxx" } diagnostics_profile { enabled = false } }
terraform 文件建議我可以指定多個塊,這
agent_pool_profile
很有意義,因為我想將某些 pod 綁定到或多或少強大的節點。由於預設容器服務已經beta.kubernetes.io/instance-type
在相關節點上設置了註釋,我認為那裡沒有問題。terraform 如何不允許
agent_pool_profile
我使用多個塊:azurerm_container_service.kubernetes: agent_pool_profile: attribute supports 1 item maximum, config has 2 declared
我似乎也無法通過 Azure 門戶添加更多配置文件。是否在某處記錄了對不同代理池配置文件的支持?
Jason Poon 的回答是正確的。Azure 容器服務本身還不支持多個代理池,因此會出現錯誤消息。
API 設置為允許它們在未來使用,這就是 Terraform 將其建模為支持多個代理池的原因。我的猜測是它們允許您指定更多內容,以便只要 ACS 支持它,Terraform 也會立即支持它。
如果您使用acs-engine ,則支持部署多個代理池。這是一個基本的 Kubernetes模板,您可以提供
acs-engine
,但如果您想部署多種代理池類型,您可以修改該文件,使其如下所示:
"masterProfile": { "count": 1, "dnsPrefix": "kubernetes-master", "vmSize": "Standard_D2_v2" }, "agentPoolProfiles": [ { "name": "agentpool2", "count": 3, "vmSize": "Standard_D2_v2", "availabilityProfile": "AvailabilitySet" }, { "name": "agentpool1", "count": 2, "vmSize": "Standard_DS2", "availabilityProfile": "AvailabilitySet" }
不幸的是,我對 terraform 不熟悉,不知道它是否可以通過這條路徑。