O Terraform permite definir a infraestrutura como código para criar um cluster do Container Service for Kubernetes (ACK), importá-lo no Enterprise Distributed Application Service (EDAS) e implantar uma aplicação em um único fluxo de trabalho automatizado.
Como funciona
A implantação encadeia três recursos do Terraform:
alicloud_cs_managed_kubernetes-- Crie um cluster Kubernetes gerenciado no ACK.alicloud_edas_k8s_cluster-- Importa o cluster ACK para o EDAS.alicloud_edas_k8s_application-- Implanta uma aplicação no cluster gerenciado pelo EDAS.
Interfaces do Terraform
Data sources
|
Data source |
Descrição |
|
Consulta aplicações do EDAS, incluindo as do Elastic Compute Service (ECS) e do ACK |
|
|
Consulta clusters do EDAS, incluindo os de ECS e ACK |
Resources
|
Resource |
Descrição |
|
Importa um cluster ACK para o EDAS |
|
|
Crie e implante uma aplicação em um cluster ACK gerenciado pelo EDAS |
Exemplo de configuração
Este exemplo cria um cluster Kubernetes gerenciado no ACK, importa-o para o EDAS e implanta uma aplicação baseada em contêiner. Modifique os parâmetros de configuração conforme necessário.
O Terraform oferece suporte a vários tipos de cluster ACK. Este exemplo utiliza um cluster Kubernetes gerenciado.
Este exemplo pressupõe que você já definiu recursos de VPC e vSwitch (por exemplo, alicloud_vpc e alicloud_vswitch) e um data source alicloud_instance_types na configuração. Para obter detalhes, consulte a documentação do provedor Terraform da Alibaba Cloud.
Etapa 1: Criar um cluster Kubernetes gerenciado
resource "alicloud_cs_managed_kubernetes" "default" {
name = var.name
worker_instance_types = [data.alicloud_instance_types.default.instance_types.0.id]
worker_vswitch_ids = [alicloud_vswitch.default.id]
worker_number = "1"
password = "Test12345"
pod_cidr = "172.20.0.0/16"
service_cidr = "172.21.0.0/20"
worker_disk_size = "50"
worker_disk_category = "cloud_ssd"
worker_data_disk_size = "20"
worker_data_disk_category = "cloud_ssd"
worker_instance_charge_type = "PostPaid"
slb_internet_enabled = "true"
}
A tabela a seguir descreve os principais parâmetros:
|
Parâmetro |
Descrição |
Exemplo |
|
|
Nome do cluster |
Referenciado de uma variável |
|
|
Tipo de instância ECS para nós de trabalho |
|
|
|
ID do vSwitch para nós de trabalho |
Referenciado de um recurso |
|
|
Senha de login SSH para nós de trabalho |
|
|
|
Bloco CIDR para endereços IP dos pods. Não deve se sobrepor aos intervalos CIDR da VPC ou do serviço. |
|
|
|
Bloco CIDR para endereços IP do serviço. Não deve se sobrepor aos intervalos CIDR da VPC ou dos pods. |
|
Etapa 2: Importar o cluster para o EDAS
resource "alicloud_edas_k8s_cluster" "default" {
cs_cluster_id = "xxxx-xxx-xxx"
}
Esse recurso importa o cluster ACK criado na Etapa 1 para o EDAS. Após a importação, o EDAS pode gerenciar as implantações de aplicações nesse cluster.
Etapa 3: Implantar uma aplicação
resource "alicloud_edas_k8s_application" "default" {
application_name = "shesheng-test-k8s"
cluster_id = "45bc8232-3233-46be-ab20-6d4a9b506d5c"
replicas = 1
package_type = "Image"
image_url = "cr.registry.cloud.ste2.com/test/gw-provider:1028"
command = "/bin/sh"
command_args = ["-c", "while true; do echo hello; sleep 1000;done"]
}
A tabela a seguir descreve os principais parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome da aplicação no EDAS |
|
|
ID do cluster gerenciado pelo EDAS da Etapa 2 |
|
|
Número de réplicas de pods |
|
|
Tipo de pacote de implantação. Defina como |
|
|
URL completa da imagem do contêiner |
|
|
Comando de ponto de entrada do contêiner |
|
|
Argumentos passados ao comando de ponto de entrada |
Implantar a infraestrutura
Execute os comandos a seguir para inicializar e aplicar a configuração do Terraform:
-
Inicialize o diretório de trabalho do Terraform.
terraform initSaída esperada:
Initializing provider plugins... - Installing aliyun/alicloud... Terraform has been successfully initialized! -
Visualize as alterações.
terraform plan -
Aplique a configuração para criar todos os recursos.
terraform applyQuando solicitado, digite
yespara confirmar. A criação do cluster geralmente leva de 10 a 15 minutos.Saída esperada:
Apply complete! Resources: X added, 0 changed, 0 destroyed.
Limpar recursos
Para evitar cobranças contínuas, destrua todos os recursos criados por esta configuração quando não forem mais necessários:
terraform destroy
Quando solicitado, digite yes para confirmar. Essa ação remove a aplicação do EDAS, a importação do cluster no EDAS e o cluster ACK.
O comando terraform destroy exclui permanentemente todos os recursos gerenciados por esta configuração. Faça backup de quaisquer dados importantes antes de executar esse comando.
Informações relacionadas
Referência do recurso de cluster K8s do EDAS no Terraform Registry
Referência do recurso de aplicação K8s do EDAS no Terraform Registry