Azure 是否支持带有容器服务的 Kubernetes 的多个代理配置文件?

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 门户添加更多配置文件。是否记录了对不同代理池配置文件缺乏支持的情况?

答案1

Jason Poon 的回答是正确的。Azure 容器服务本身尚不支持多个代理池,因此出现错误消息。

API 的设置是为了将来允许它们,这就是 Terraform 将其建模为支持多个代理池的原因。我猜他们允许您指定更多内容,以便每当 ACS 支持它时,Terraform 也会立即支持它。

答案2

如果您使用,则支持部署多个代理池acs-引擎。这是一个基本的 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" }

不幸的是,我不熟悉地形,不知道是否可以通过那条路径实现。

相关内容