Я развернул кластер kubernetes в Azure, используя следующую конфигурацию terraform (конфиденциальная информация удалена):
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
, что имеет большой смысл, поскольку я хотел бы привязать определенные модули к более или менее мощным узлам. Поскольку служба контейнеров по умолчанию уже устанавливает бета. kubernetes.io/instance-type
аннотации на соответствующих узлах Я не вижу здесь проблемы.
Однако терраформа не позволяет мне использовать несколько блоков agent_pool_profile
:
azurerm_container_service.kubernetes: agent_pool_profile: attribute supports 1 item maximum, config has 2 declared
Кажется, я не могу добавить дополнительные профили через портал Azure. Документировано ли где-нибудь отсутствие поддержки различных профилей пула агентов?
Ответ Джейсона Пуна верен. Сама служба Azure Container Service пока не поддерживает несколько пулов агентов, отсюда и сообщение об ошибке.
API настроен так, чтобы позволить им в будущем, поэтому Terraform моделирует его как поддерживающий несколько пулов агентов. Я думаю, что они позволяют вам указать больше, чтобы всякий раз, когда ACS поддерживает его, Terraform также немедленно поддерживала его.
.Развертывание нескольких пулов агентов поддерживается, если вы используете acs-engine. Вот базовый шаблон Kubernetes template, который будет подавать acs-engine
, но если вы хотите установить несколько типов пулов агентов, вы можете изменить файл так, чтобы он выглядел как:
"masterProfile": {
"считать": 1,
"dnsPrefix": "kubernetes-master",
"vmSize": "Standard_D2_v2"
},
"agentPoolProfiles": [
{
"имя": "агентпул2",
"считать": 3,
"vmSize": "Standard_D2_v2",
"Профиль доступности": "AvailabilitySet"
},
{
"имя": "агентпул1",
"считать": 2,
"vmSize": "Standard_DS2",
"ДоступностьПрофиль": "AvailabilitySet"
}
К сожалению, я не знаком с терраформой, чтобы знать, может ли она пройти по этому пути.