O Azure suporta vários Perfis de Agente para Kubernetes com o Serviço de Contêiner?

1

Eu implantei um cluster do kubernetes no Azure usando a seguinte configuração terraform (informações confidenciais editadas):

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
  }
}

A documentação do terraform sugere que eu possa especificar vários agent_pool_profile blocos que fazem muito sentido desde que eu gostaria de ligar certos pods para nós mais ou menos poderosos. Como o serviço de contêiner padrão já define a anotação beta.kubernetes.io/instance-type nos nós relevantes, não vejo nenhum problema.

Como o terraform não permite vários blocos agent_pool_profile para mim:

azurerm_container_service.kubernetes: agent_pool_profile: attribute supports 1 item maximum, config has 2 declared

Também não consigo adicionar mais perfis no portal do Azure. A falta de suporte para diferentes perfis do pool de agentes é documentada em algum lugar?

    
por Stephan Klein 13.03.2017 / 10:12

2 respostas

2

A implantação de vários pools de agentes é suportada se você usar o mecanismo de anúncios . Aqui está um modelo básico do Kubernetes em que você alimentaria acs-engine , mas se você queria implantar vários tipos de pool de agentes, você pode modificar o arquivo de modo que pareça:

"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" }

Infelizmente, não estou familiarizado com o terraform para saber se é possível passar por esse caminho.

    
por 13.03.2017 / 17:07
1

A resposta de Jason Poon está correta. O Serviço de Contêiner do Azure em si ainda não suporta vários pools de agentes, daí a mensagem de erro.

A API está configurada para permitir isso no futuro, e é por isso que o Terraform a modela como suporte a múltiplos pools de agentes. Meu palpite é que eles permitem que você especifique mais para que, sempre que o ACS suportar, o Terraform também o suporte imediatamente.

    
por 13.03.2017 / 19:30