Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use Terraform to manage add-ons

Última atualização: Oct 15, 2026

Container Service for Kubernetes (ACK) oferece add-ons que ampliam as capacidades do cluster. Especifique-os durante a criação do cluster e gerencie seu ciclo de vida posteriormente com o Terraform.

Tipos de add-ons

Os add-ons do ACK dividem-se em add-ons de sistema e add-ons opcionais. Consulte Add-ons.

Add-ons de sistema

Add-ons de sistema são serviços fundamentais instalados por padrão na criação do cluster.

Exemplos:

  • kube-apiserver

  • kube-controller-manager

  • cloud-controller-manager

  • kube-proxy

  • CoreDNS

Add-ons opcionais

Add-ons opcionais não são obrigatórios, mas estendem as funcionalidades do cluster quando instalados. Eles se organizam nas seguintes categorias:

  • Gerenciamento de aplicações

  • Logs e monitoramento

  • Armazenamento

  • Rede

  • Segurança

Gere parâmetros de configuração do Terraform pelo console

O console do ACK gera automaticamente a configuração do Terraform para gerenciar add-ons do cluster.

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .

  3. Na página Add-ons, localize o add-on desejado e clique em Install ou Configuration.

  4. Na caixa de diálogo, clique em Console-to-Code. Clique na aba Terraform e copie a configuração exibida.

Melhores práticas para gerenciamento de add-ons

Especifique os add-ons na criação do cluster e gerencie seu ciclo de vida posteriormente. As seções a seguir abordam o gerenciamento do ciclo de vida e as melhores práticas para diferentes cenários.

Especifique add-ons na criação do cluster

Os recursos do Terraform abaixo correspondem aos diferentes tipos de cluster:

  • Cluster gerenciado ACK: alicloud_cs_managed_kubernetes

  • Cluster dedicado ACK: alicloud_cs_kubernetes

  • Cluster ACK Edge: alicloud_cs_edge_kubernetes

  • Cluster ACK Serverless: alicloud_cs_serverless_kubernetes

Defina o objeto addons no Resource para especificar os add-ons. O bloco de código a seguir mostra os atributos do objeto addons:

# This example uses an ACK managed cluster. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  # The addons object is a list. You can set the addons object in a Resource to specify the add-ons to be installed when the system creates the cluster. 
  addons {
    # The name of the add-on. You can query the name of an add-on by using alicloud_cs_kubernetes_addons of Data Source. 
    # The add-ons that are already installed and can be installed in the cluster and the versions of the add-ons. 
    name = "XXX"

    # Custom add-on parameters. You can set this attribute for cluster add-ons that support custom parameters. For more information, see the Modify the custom parameters of a cluster add-on section. 
    config = jsonencode(
      {
        ....
      }
    )

    # The value is of Boolean type and the default is false. By default, ACK automatically installs specific add-ons for you to manage the cluster. If you do not want ACK to install add-ons when ACK creates the cluster, set disabled=true. 
    disabled = XXX
  }
}
Importante

O objeto addons aplica-se apenas à criação do cluster. Não é possível modificá-lo posteriormente para atualizar, desinstalar ou reconfigurar add-ons. Consulte Manage add-ons after cluster creation.

A tabela a seguir lista os add-ons configuráveis com o Terraform.

Add-on

Tipo de add-on

Descrição

Como configurar com o Terraform

appcenter

Gerenciamento de aplicações

Gerencia centralmente implantações e ciclos de vida de aplicações em vários clusters.

addon { name = "appcenter" }

progressive-delivery-tool

Gerenciamento de aplicações

Permite liberações graduais de aplicações.

addon { name = "progressive-delivery-tool" }

alicloud-monitor-controller

Logs e monitoramento

Habilita a integração com o CloudMonitor.

addon { name = "alicloud-monitor-controller" }

metrics-server

Logs e monitoramento

Coleta métricas de recursos com base no Metrics Server open source. Fornece a Metrics API e suporta Horizontal Pod Autoscaler (HPA).

addon { name = "metrics-server" }

ack-node-problem-detector

Logs e monitoramento

Monitora a integridade dos nós com base no Node Problem Detector (NPD) open source. Conecta-se a plataformas de monitoramento de terceiros.

addons { name = "ack-node-problem-detector" }

ags-metrics-collector

Logs e monitoramento

Monitora o uso de recursos por nó em fluxos de trabalho do Alibaba Cloud Genomics Service (AGS).

addons { name = "ags-metrics-collector" }

ack-arms-prometheus

Logs e monitoramento

Monitora clusters ACK usando o Managed Service for Prometheus.

addons { name = "arms-prometheus" }

loongcollector

Logs e monitoramento

Coleta logs de contêineres usando o Log Service.

addons { name = "loongcollector" }

csi-plugin

Armazenamento

Monta e desmonta volumes. Instalado automaticamente quando o CSI é selecionado na criação do cluster.

addons { name = "csi-plugin" }

csi-provisioner

Armazenamento

Automatiza o provisionamento de volumes. Instalado automaticamente quando o CSI é selecionado na criação do cluster.

addons { name = "csi-plugin" }

storage-operator

Armazenamento

Gerencia o ciclo de vida dos add-ons de volume.

addons { name = "storage-operator" }

alicloud-disk-controller

Armazenamento

Automatiza o provisionamento de volumes de disco.

addons { name = "alicloud-disk-controller" }

flexvolume

Armazenamento

Mecanismo inicial de extensão de volumes de armazenamento desenvolvido pela comunidade Kubernetes. Monta e desmonta volumes. Instalado automaticamente quando o FlexVolume é selecionado na criação do cluster.

addons { name = "flexvolume" }

nginx-ingress-controller

Rede

Analisa regras de roteamento de Ingress e encaminha requisições correspondentes para Services de backend.

addons { name = "nginx-ingress-controller" }

terway-eniip

Rede

Add-on CNI da Alibaba Cloud compatível com VPC e políticas de rede padrão do Kubernetes. Estabelece conectividade de rede dentro dos clusters. Instalado automaticamente quando o Terway é selecionado na criação do cluster.

addons { name = "terway-eniip" }

ack-node-local-dns

Rede

Solução de cache de DNS local desenvolvida com base no projeto open source NodeLocal DNSCache.

addons { name = "ack-node-local-dns" }

aliyun-acr-credential-helper

Segurança

Faz pull de imagens privadas sem senha do Container Registry Enterprise Edition e Personal Edition.

addons { name = "aliyun-acr-credential-helper" }

gatekeeper

Segurança

Gerencia e aplica políticas OPA em clusters ACK e administra rótulos de namespace.

addons { name = "gatekeeper" }

kritis-validation-hook

Segurança

Verifica assinaturas de imagens.

addons { name = "kritis-validation-hook" }

security-inspector

Segurança

Executa inspeções de segurança.

addons { name = "security-inspector" }

ack-kubernetes-webhook-injector

Segurança

Gerencia dinamicamente endereços IP de pods nas listas de permissões de serviços da Alibaba Cloud.

addons { name = "ack-kubernetes-webhook-injector" }

ack-arena

Outros

Instala o Arena open source no console do ACK.

addons { name = "ack-arena" }

ack-cost-exporter

Outros

Habilita o processamento de dados para análise de custos.

addons { name = "ack-cost-exporter" }

ack-kubernetes-cronhpa-controller

Outros

Dimensiona workloads conforme uma programação.

addons { name = "ack-kubernetes-cronhpa-controller" }

ack-virtual-node

Outros

Baseado no Virtual Kubelet open source com suporte ao Aliyun Provider. Permite integração perfeita entre Kubernetes e Elastic Container Instance.

addons { name = "ack-virtual-node" }

aesm

Outros

Add-on de sistema Intel SGX que fornece suporte de lançamento para SGX Enclave, incluindo serviços como provisionamento de chaves e atestação remota.

addons { name = "aesm" }

aliyun-acr-acceleration-suite

Outros

Habilita o carregamento de imagens sob demanda. Implantado como DaemonSet nos nós worker.

addons { name = "aliyun-acr-acceleration-suite" }

migrate-controller

Outros

Migra aplicações Kubernetes com base no Velero open source.

addons { name = "migrate-controller" }

resource-controller

Outros

Controla dinamicamente recursos de pods. Necessário para agendamento de CPU com reconhecimento de topologia em clusters ACK Pro.

addons { name = "resource-controller" }

sandboxed-container-controller

Outros

Aprimora e estende recursos de contêineres sandbox no runtime Sandboxed-Container.

addons { name = "sandboxed-container-controller" }

sandboxed-container-helper

Outros

Executa verificações de integridade e operações de O&M em contêineres sandbox.

addons { name = "sandboxed-container-helper" }

sgx-device-plugin

Outros

Simplifica o uso do Intel SGX em contêineres. Desenvolvido pela equipe do ACK e Ant Group.

addons { name = "sgx-device-plugin" }

Gerencie add-ons após a criação do cluster

Certifique-se de ter um cluster ACK antes de gerenciar o ciclo de vida dos add-ons.

Use o recurso alicloud_cs_kubernetes_addon para instalar, atualizar, desinstalar e configurar add-ons. O bloco de código a seguir exibe os atributos do alicloud_cs_kubernetes_addon:

resource "alicloud_cs_kubernetes_addon" "addon-example" {
  # The ID of the cluster. 
  cluster_id = "XXXX"

  # The name of the add-on. You can query the add-ons that are already installed and can be installed and their versions by using alicloud_cs_kubernetes_addons of Data Source. 
  name = "XXXX"

  # The version of the add-on. 
  version = "XXXX"

  # Custom add-on parameters in a JSON string. You can use the jsonencode method of Terraform to specify the parameters or directly specify the parameters in a JSON string. Pay attention to character escaping if you directly specify the parameters in a JSON string. You can set this attribute for cluster add-ons that support custom parameters. For more information, see the Modify the custom parameters of a cluster add-on section. 
  config = jsonencode(
    {
      ....
    }
  )
}

Você também pode especificar parâmetros personalizados diretamente em uma string JSON. Atenção ao escape de caracteres. Por exemplo, configure o nginx-ingress-controller usando qualquer um dos métodos:

  • Use jsonencode para configurar parâmetros personalizados:

    config = jsonencode(   
      {       
        IngressSlbNetworkType="internet"       
        IngressSlbSpec="slb.s2.small"     
      }  
    )
  • Especifique os parâmetros personalizados diretamente em uma string JSON:

    config = "{\"IngressSlbNetworkType\":\"internet\",\"IngressSlbSpec\":\"slb.s2.small\"}"

Importe add-ons instalados para o Terraform

Use terraform import para importar add-ons do cluster para gerenciamento via Terraform. O exemplo a seguir usa o nginx-ingress-controller.

  1. Crie um arquivo .tf e defina um Resource. Se já tiver um arquivo .tf, defina o Resource nele.

    O recurso alicloud_cs_kubernetes_addon gerencia os add-ons do cluster. Deixe-o vazio inicialmente.

    resource "alicloud_cs_kubernetes_addon" "nginx-ingress-controller" {
    }
  2. Importe o nginx-ingress-controller:

    O Terraform extrai a configuração do nginx-ingress-controller do cluster para o arquivo .state.

    terraform import alicloud_cs_kubernetes_addon.nginx-ingress-controller <cluster_id>:nginx-ingress-controller
  3. Execute terraform plan. A saída mostra a diferença de configuração entre o nginx-ingress-controller e o Resource.

    Atualize o Resource da Step 1 com base no diff e no arquivo .state. Quando o terraform plan não mostrar diferenças, a importação estará concluída.

    resource "alicloud_cs_kubernetes_addon" "nginx-ingress-controller" {
      cluster_id = "XXXXX"
      name = "nginx-ingress-controller"
      version = "v1.2.1-aliyun.1"
      config = jsonencode(
        {
          IngressSlbNetworkType = "internet"
          IngressSlbSpec        = "slb.s2.small"
        }
      )
    }

Instale add-ons de cluster

Use o recurso alicloud_cs_kubernetes_addon para instalar add-ons. O exemplo a seguir usa o Gatekeeper.

  1. Especifique o add-on no seu arquivo .tf:

    • ID do cluster.

    • Nome e versão do add-on:

      Consulte add-ons e versões instaláveis com o Data Source alicloud_cs_kubernetes_addons. Apenas a versão mais recente é exibida; para versões anteriores, verifique as notas de lançamento do add-on.

    • (Opcional) Configuração personalizada do add-on:

      Personalize o campo config com jsonencode. Consulte os parâmetros suportados com o Data Source alicloud_cs_kubernetes_addon_metadata. Consulte Customize add-on parameters.

    Clique para ver detalhes

    resource "alicloud_cs_kubernetes_addon" "gatekeeper" {
      cluster_id = "ce36b7c61e126430b8b245730ca6d****"
      name = "gatekeeper"
      version = "v3.8.1.113-geb7947ef-aliyun"
      config = jsonencode(
        {
          AdmissionPodCpuLimit      = "1000m"
          AdmissionPodCpuRequest    = "100m"
          AdmissionPodMemoryLimit   = "512Mi"
          AdmissionPodMemoryRequest = "256Mi"
          AdmissionPodNumber        = 3
          AuditInterval             = 1800
          AuditPodCpuLimit          = "1000m"
          AuditPodCpuRequest        = "100m"
          AuditPodMemoryLimit       = "512Mi"
          AuditPodMemoryRequest     = "256Mi"
          EnableAuditPod            = false
          EnableMutatingWebhook     = false
        }
      )
    }
  2. Instale o add-on:

    terraform apply

    Saída esperada:

    Plan: 1 to add, 0 to change, 0 to destroy.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    alicloud_cs_kubernetes_addon.gatekeeper: Creating...
    alicloud_cs_kubernetes_addon.gatekeeper: Still creating... [10s elapsed]
    alicloud_cs_kubernetes_addon.gatekeeper: Creation complete after 16s [id=XXXXX:gatekeeper]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

    Quando Apply complete! aparecer, o add-on estará instalado.

Atualize add-ons de cluster

Consulte as versões disponíveis com o Data Source alicloud_cs_kubernetes_addons e altere o número da versão para atualizar. O exemplo a seguir usa o Gatekeeper.

Clique para ver detalhes

resource "alicloud_cs_kubernetes_addon" "gatekeeper" {
  cluster_id = "ce36b7c61e126430b8b245730ca6d****"
  name = "gatekeeper"

  # Change version to the version number that you want to use. 
  version = "XXXXXXXXX"
  config = jsonencode(
    {
      AdmissionPodCpuLimit      = "1000m"
      AdmissionPodCpuRequest    = "100m"
      AdmissionPodMemoryLimit   = "512Mi"
      AdmissionPodMemoryRequest = "256Mi"
      AdmissionPodNumber        = 3
      AuditInterval             = 1800
      AuditPodCpuLimit          = "1000m"
      AuditPodCpuRequest        = "100m"
      AuditPodMemoryLimit       = "512Mi"
      AuditPodMemoryRequest     = "256Mi"
      EnableAuditPod            = false
      EnableMutatingWebhook     = false
    }
  )
}

Execute terraform apply para atualizar o add-on. A mensagem Apply complete! indica que a atualização foi bem-sucedida.

Personalize parâmetros de add-ons

Modifique o campo config em alicloud_cs_kubernetes_addons para personalizar a configuração do add-on. O exemplo a seguir usa o Gatekeeper.

Clique para ver detalhes

resource "alicloud_cs_kubernetes_addon" "gatekeeper" {
  cluster_id = "ce36b7c61e126430b8b245730ca6d****"
  name = "gatekeeper"
  version = "v3.8.1.113-geb7947ef-aliyun"

  # You can modify and apply the attributes in Config to customize the configuration of a cluster add-on. 

}

Consulte os parâmetros personalizados suportados com o Data Source alicloud_cs_kubernetes_addon_metadata, que retorna um schema JSON. Por exemplo, para consultar os parâmetros do Gatekeeper, adicione o seguinte ao seu arquivo .tf:

# Define Data Source to obtain the schema that includes the custom parameters supported by the Gatekeeper add-on. 
data "alicloud_cs_kubernetes_addon_metadata" "default" {
  cluster_id = "ce36b7c61e126430b8b245730ca6d****"
  name       = "gatekeeper"
  version    = "v3.8.1.113-geb7947ef-aliyun"
}

# Output the schema. 
output "addon_config_schema" {
  value = data.alicloud_cs_kubernetes_addon_metadata.default.config_schema
}

Execute terraform apply. O resultado é um schema JSON em que o atributo properties lista todos os parâmetros personalizados suportados:

  • default: o valor padrão.

  • Description: a descrição do parâmetro.

  • pattern: uma expressão regular para valores válidos.

  • type: o tipo de dado.

Clique para ver detalhes

addon_config_schema = <<EOT
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "AdmissionPodCpuLimit": {
      "default": "1000m",
      "description": "cpu limit for gatekeeper",
      "pattern": "^(|[1-9][0-9]*(m|\\.\\d+)?)$",
      "type": "string"
    },
    "AdmissionPodCpuRequest": {
      "default": "100m",
      "description": "cpu request for gatekeeper",
      "pattern": "^[1-9][0-9]*(m|\\.\\d+)?$",
      "type": "string"
    },
    "AdmissionPodMemoryLimit": {
      "default": "512Mi",
      "description": "memory limit for gatekeeper",
      "pattern": "^(|[1-9][0-9]*(\\.\\d+)?(K|Ki|M|Mi|G|Gi|T|Ti)?)$",
      "type": "string"
    },

    ......
  },
  "title": "Config",
  "type": "object"
}
EOT

Configure add-ons de rede

Clusters ACK usam o Terway para rede de contêineres. Consulte Overview.

O exemplo a seguir configura um add-on de rede com o Terraform:

Clique para ver detalhes

# Configure the Terway network add-on and enable the Assign One ENI to Each Pod mode. This is the default mode. 
# In this mode, the number of pods on a node is limited by the elastic network interface (ENI) quota of Elastic Compute Service (ECS) instances. 

resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name = "terway-eniip"
  }
}

# Configure the Terway network add-on and enable the IPVLAN mode. 
# You can use only the Alibaba Cloud Linux 2 operating system because the One ENI for Multi-Pod mode uses the IPVLAN + eBPF virtualization technology. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name   =  "terway-eniip"
    config = "{\"IPVlan\":\"true\",\"NetworkPolicy\":\"false\"}"
  }
}

# Configure the Terway network add-on and enable Kubernetes network policies in IPVLAN mode. 
# You can use only the Alibaba Cloud Linux 2 operating system because the One ENI for Multi-Pod mode uses the IPVLAN + eBPF virtualization technology. 
# The IPVLAN mode provides network access control based on Kubernetes network policies. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name   =  "terway-eniip"
    config = "{\"IPVlan\":\"true\",\"NetworkPolicy\":\"true\"}"
  }
}

Configure add-ons de volume

O ACK fornece add-ons de volume FlexVolume e CSI. O FlexVolume foi descontinuado; use o CSI. Se nenhum add-on de armazenamento for especificado na criação do cluster, o CSI será instalado por padrão.

Clique para ver detalhes

# The CSI volume add-on consists of csi-plugin and csi-provisioner. If you use the CSI add-on and want ACK to create a default NAS file system and CNFS file system for dynamically provisioned volumes, you must also install the storage-operator add-on. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name = "csi-plugin"
  }
  addons {
    name = "csi-provisioner"
  }
  addons {
    name   = "storage-operator"
    config = "{\"CnfsOssEnable\":\"false\",\"CnfsNasEnable\":\"true\"}"
  }
}

Configure add-ons de log

O add-on de coleta de logs do ACK armazena logs no Simple Log Service (SLS) usando um dos dois métodos:

  • Use um projeto SLS existente.

  • Permita que o ACK crie automaticamente um projeto SLS durante a criação do cluster.

O exemplo a seguir configura o loongcollector com o Terraform com base na sua escolha de projeto do Log Service:

Clique para ver detalhes

# Use the automatically created SLS project. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name = "loongcollector"
  }
}

# Use the automatically created SLS project. Enable the automatically created Ingress dashboard. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name = "loongcollector"
    config = "{\"IngressDashboardEnabled\":\"true\"}"
  }
}

# Use an existing SLS project. Enable the automatically created Ingress dashboard. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name = "loongcollector"
    config = "{\"IngressDashboardEnabled\":\"true\",\"sls_project_name\":\"k8s-log-c55c35ff493df47b88783bea48827****\"}"
  }
}

# Install and configure node-problem-detector. 
# Configure node-problem-detector to use the automatically created SLS project to store events. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name   = "ack-node-problem-detector"
    config = "{\"sls_project_name\":\"\"}"
  }
}

# Install and configure node-problem-detector. 
# Configure node-problem-detector to use an existing SLS project to store events. node-problem-detector can share the Logstore used by loongcollector. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name   = "ack-node-problem-detector"
    config = "{\"sls_project_name\":\"k8s-log-c55c35ff493df47b88783bea48827****\"}"
  }
}

Configure add-ons de monitoramento

O ACK oferece o agente do CloudMonitor para nós ECS e o add-on Managed Service for Prometheus. Configure o parâmetro install_cloud_monitor com o Terraform para instalar o agente do CloudMonitor.

Clique para ver detalhes

# Install the Managed Service for Prometheus. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters.
  # ...
  addons {
    name = "arms-prometheus"
  }
}
# Install the CloudMonitor agent on ECS nodes. 
resource "alicloud_cs_kubernetes_node_pool" "default" {
  # Other parameters.
  # ...
  install_cloud_monitor = true
}

Configure add-ons de Ingress

O ACK disponibiliza o nginx-ingress-controller e o alb-ingress-controller para rotear tráfego para aplicações.

O exemplo a seguir configura add-ons de Ingress com o Terraform:

Clique para ver detalhes

# Configure nginx-ingress-controller. 
# If you use an Internet-facing Server Load Balancer (SLB) instance, you must set the IngressSlbNetworkType parameter to internet in the Config. 
# If you use an internal-facing SLB instance, you must set the IngressSlbNetworkType parameter to intranet in the Config. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name   =  "nginx-ingress-controller"
    config = "{\"IngressSlbNetworkType\":\"internet\",\"IngressSlbSpec\":\"slb.s2.small\"}"
  }
}

# Configure alb-ingress-controller. 
resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name   = "alb-ingress-controller"
    config = "{\"albIngress\":{\"CreateDefaultALBConfig\":false}}"  # Not created right now.
#   config = "{\"albIngress\":{\"LoadBalancerId\":\"alb-vl8uiXXXXXxdr\",\"CreateDefaultALBConfig\":true}}" # Specify an existing ALB instance.
#   config = "{\"albIngress\":{\"AddressType\":\"Internet\",\"ZoneMappings\":{\"cn-hangzhou-l\":[\"vsw-uf6XXXXXoyb4qe\"],\"cn-hangzhou-m\":[\"vsw-uf6XXXX0rlkiq\"]},\"CreateDefaultALBConfig\":true}}" # Create a new ALB instance. You must specify at least two available zones.
 
  }
}

Desative a instalação padrão de add-ons

O ACK instala add-ons padrão durante a criação do cluster. Para impedir a instalação de um add-on específico, defina disabled = true. O exemplo a seguir desativa o nginx-ingress-controller:

# Disable the system to install the nginx-ingress-controller add-on. 

resource "alicloud_cs_managed_kubernetes" "default" {
  # Other parameters. 
  # ...

  addons {
    name     =  "nginx-ingress-controller"
    disabled = true
  }
}

Add-ons instalados por padrão

Sem uma configuração explícita de addons, o sistema instala os seguintes add-ons:

Tipo de cluster

Tipo de add-on

Nome do add-on padrão instalado

Descrição

Cluster ACK

Add-ons de sistema

kube-scheduler

Agenda recursos do cluster.

cloud-controller-manager

Cria instâncias SLB e gerencia entradas de rota de nós.

kube-apiserver

Barramento e gateway de Ingress de um cluster ACK.

kube-controller-manager

Gerenciador interno de recursos do cluster.

Add-ons de logs e monitoramento

alicloud-monitor-controller

Monitora ciclos de vida e status de contêineres.

metrics-server

Coleta métricas de recursos de contêineres para dimensionamento automático.

Add-ons de volume

csi-plugin

Gerencia o ciclo de vida de volumes. Este add-on é recomendado.

csi-provisioner

Cria e exclui volumes. Este add-on é recomendado.

storage-operator

Gerencia o ciclo de vida dos add-ons de armazenamento. Este add-on é recomendado.

Add-ons de rede

CoreDNS

Atua como servidor DNS para um cluster Kubernetes.

Gateway API

Modelo de recurso de gateway.

terway-eniip

Add-on de rede Terway.

nginx-ingress-controller (a edição Pro é instalada por padrão)

Analisa regras de encaminhamento de tráfego NGINX Ingress.

Cluster ACK Serverless

Add-ons de sistema

kube-scheduler

Agenda recursos do cluster.

ack-virtual-node

Dimensiona recursos com nós virtuais e elastic container instances.

cloud-controller-manager

Cria instâncias SLB e gerencia entradas de rota de nós.

kube-apiserver

Barramento e gateway de Ingress de um cluster ACK.

kube-controller-manager

Gerenciador interno de recursos do cluster.

Add-ons de rede

CoreDNS

Atua como servidor DNS para um cluster Kubernetes.

Cluster ACK Edge

Add-ons de sistema

kube-scheduler

Agenda recursos do cluster.

cloud-controller-manager

Cria instâncias SLB e gerencia entradas de rota de nós.

kube-apiserver

Barramento e gateway de Ingress de um cluster ACK.

kube-controller-manager

Gerenciador interno de recursos do cluster.

Add-ons de logs e monitoramento

alicloud-monitor-controller

Monitora ciclos de vida e status de contêineres.

metrics-server

Coleta métricas de uso de recursos de contêineres para o mecanismo de dimensionamento automático.

Add-ons de rede

CoreDNS

Atua como servidor DNS para um cluster Kubernetes.

terway-eniip

Add-on de rede Terway.

Outros

edge-controller-manager

-

edge-tunnel-agent

Cria túneis reversos de O&M para colaboração cloud-edge usando arquitetura C/S.

edge-tunnel-server

Cria túneis reversos de O&M para colaboração cloud-edge usando arquitetura C/S.

yurt-app-manager

Fornece pools de nós e implantação baseada em células para clusters ACK Edge.

Exemplos comuns de configuração

Os exemplos a seguir abrangem configurações comuns de add-ons.

  • Use o Terway como add-on de rede.

  • Use CSI (recomendado) ou FlexVolume. O FlexVolume está descontinuado.

  • Escolha entre nginx-ingress-controller ou alb-ingress-controller conforme suas necessidades.

  • Selecione outros add-ons de acordo com seus requisitos.

Exemplo 1: Não instalar nenhum add-on

# Do not install any add-ons when you create the cluster. In this scenario, only the default add-ons are installed. 
# A simple template. Replace the variables with the desired values. 
resource "alicloud_cs_managed_kubernetes" "default" {
  name                         = var.name
  cluster_spec                 = "ack.pro.small"
  is_enterprise_security_group = true
  pod_cidr                     = "172.20.0.0/16"
  service_cidr                 = "172.21.0.0/20"
  worker_vswitch_ids           = [var.vswitch_id]
}

Exemplo 2: Instalar o Terway

# Create a cluster that has Terway installed. 
# Enable the Assign One ENI to Each Pod mode. 

resource "alicloud_cs_managed_kubernetes" "default" {
  name                         = var.name
  cluster_spec                 = "ack.pro.small"
  is_enterprise_security_group = true
  pod_vswitch_ids              = [var.vswitch_id]
  service_cidr                 = "172.21.0.0/20"
  worker_vswitch_ids           = [var.vswitch_id]

  addons {
    name = "terway-eni"
  }
}

# Create a cluster that has Terway installed. 
# Enable the IPVLAN mode and enable Kubernetes network policies. 
resource "alicloud_cs_managed_kubernetes" "default" {
  name                         = var.name
  cluster_spec                 = "ack.pro.small"
  is_enterprise_security_group = true
  service_cidr                 = "172.21.0.0/20"
  pod_vswitch_ids              = [var.vswitch_id]
  worker_vswitch_ids           = [var.vswitch_id]

  addons {
    name   =  "terway-eniip"
    config = "{\"IPVlan\":\"true\",\"NetworkPolicy\":\"true\"}"
  }
}

Exemplo 3: Instalar os add-ons Terway, CSI e nginx-ingress-controller

# A template for installing the Terway, CSI, and nginx-ingress-controller add-ons. 

resource "alicloud_cs_managed_kubernetes" "default" {
  name                         = var.name
  cluster_spec                 = "ack.pro.small"
  is_enterprise_security_group = true
  service_cidr                 = "172.21.0.0/20"
  pod_vswitch_ids              = [var.vswitch_id]
  worker_vswitch_ids           = [var.vswitch_id]

  addons {
    name = "terway-eniip"
    config = "{\"IPVlan\":\"true\",\"NetworkPolicy\":\"false\"}"
  }
  addons {
    name = "csi-plugin"
  }
  addons {
    name = "csi-provisioner"
  }
  addons {
    name = "storage-operator"
    config = "{\"CnfsOssEnable\":\"false\",\"CnfsNasEnable\":\"true\"}"
  }
  addons {
    name = "loongcollector"
    config = "{\"IngressDashboardEnabled\":\"true\"}"
  }
  addons {
    name = "ack-node-problem-detector"
    config = "{\"sls_project_name\":\"\"}"
  }
  addons {
    name = "nginx-ingress-controller"
    config = "{\"IngressSlbNetworkType\":\"internet\",\"IngressSlbSpec\":\"slb.s2.small\"}"
  }
  addons {
    name = "ack-node-local-dns"
  }
  addons {
    name = "arms-prometheus"
  }
  addons {
    name = "alicloud-monitor-controller"
    config = "{\"group_contact_ids\":\"[10619]\"}"
  }
}