Azure

Azure 是否支持具有容器服務的 Kubernetes 的多個代理配置文件?

  • March 13, 2017

我使用以下 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 不熟悉,不知道它是否可以通過這條路徑。

引用自:https://serverfault.com/questions/837906