Provisione e gerencie clusters ACK como código com o Terraform para obter uma infraestrutura repetível e com controle de versão.
Conceitos principais
Recursos e data sources
O Terraform utiliza dois tipos de objetos para gerenciar a infraestrutura em nuvem:
Recursos — objetos que o Terraform cria e gerencia. Cada bloco de recurso define um objeto de infraestrutura, como um cluster ACK ou um pool de nós.
Data sources — consultas somente leitura que recuperam atributos de recursos criados fora da configuração atual.
Exemplo:
### Data sources
# List instance types with 2 vCPUs and 4 GB of memory.
# Reference: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types
data "alicloud_instance_types" "c2g4" {
cpu_core_count = 2
memory_size = 4
}
### Resources
# Create a Server Load Balancer (SLB) instance.
# Reference: https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance
resource "alicloud_slb" "default" {
name = var.name
specification = "slb.s2.small"
vswitch_id = alicloud_vswitch.default.id
}
Consulte Uso do ACK com Terraform para obter a lista completa.
Plugins
O Terraform possui duas categorias de plug-ins:
Terraform CLI — ferramenta de linha de comando para planejar, aplicar e destruir configurações.
Providers do Terraform — plug-ins que traduzem a configuração do Terraform em chamadas de API para uma nuvem específica, publicados no Terraform Registry.
A Alibaba Cloud foi o primeiro provedor de nuvem na China a integrar o Terraform. O provider da Alibaba Cloud (terraform-provider-alicloud) oferece suporte a 163 recursos e 113 data sources em 35 serviços, incluindo computação, armazenamento, rede, balanceamento de carga, CDN, middleware, controle de acesso e bancos de dados.
Para configurar o provider da Alibaba Cloud, consulte Instalar e configurar o Terraform no PC local ou Usar o Terraform no Cloud Shell.
Por que usar o Terraform para ACK
O Terraform oferece diversas vantagens em comparação ao gerenciamento direto de clusters ACK pelo console, CLI ou API.
Implantações multinuvem — gerencie a infraestrutura na Alibaba Cloud, em outras nuvens e em data centers on-premises com uma única cadeia de ferramentas e linguagem de configuração.
Provisionamento automatizado e repetível — defina a configuração do cluster uma única vez e aplique-a consistentemente nos ambientes de desenvolvimento, staging e produção para eliminar desvios de configuração.
Infraestrutura como código — armazene a configuração do cluster no controle de versão junto com o código da aplicação. Acompanhe alterações, revise modificações em pull requests e reverta quando necessário.
Redução de custos — crie ambientes de desenvolvimento e teste sob demanda e encerre-os quando ociosos. Avalie o impacto financeiro antes de aplicar alterações.
Uso do ACK com Terraform
O ACK oferece suporte aos seguintes recursos e data sources do Terraform.
Recursos
|
Recurso |
Descrição |
|
Gerencia clusters gerenciados do ACK |
|
|
Gerencia clusters dedicados do ACK |
|
|
Gerencia clusters ACK Serverless |
|
|
Gerencia clusters de borda do ACK |
|
|
Gerencia pools de nós |
|
|
Gerencia permissões de Controle de Acesso Baseado em Função (RBAC) |
|
|
Gerencia add-ons de cluster |
Data sources
|
Data source |
Descrição |
|
Ativa o ACK |
|
|
Lista todos os clusters gerenciados do ACK |
|
|
Lista todos os clusters dedicados do ACK |
|
|
Lista todos os clusters ACK Serverless |
|
|
Lista todos os clusters de borda do ACK |
|
|
Lista permissões de usuários específicos do Resource Access Management (RAM) |
|
|
Lista metadados de add-ons de cluster |
|
|
Lista add-ons de cluster disponíveis |
|
|
Lista versões disponíveis do Kubernetes |
Mantenha a infraestrutura do cluster (VPC, pools de nós, RBAC) em um projeto Terraform separado das cargas de trabalho do Kubernetes (Deployments, Services). Esses elementos possuem cadências de alteração diferentes e geralmente são de responsabilidade de equipes distintas.