Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Create an ARM node pool and schedule workloads to ARM nodes

Última atualização: Jun 27, 2026

Por padrão, o ACK agenda todos os workloads em nós de trabalho x86. Em um cluster misto com nós ARM e não ARM, use as configurações de agendamento do Kubernetes para executar workloads exclusivos para ARM em nós ARM ou agendar preferencialmente imagens multiarquitetura nesses nós.

Pré-requisitos

Notas de uso

Se o cluster ACK contiver nós ARM e x86, adicione o taint kubernetes.io/arch=arm64:NoSchedule aos nós ARM. Essa configuração impede o agendamento incorreto de aplicações e componentes sem suporte à arquitetura ARM nesses nós. Para clusters com versão anterior ao Kubernetes v1.24, declare também uma tolerância ao taint kubernetes.io/arch=arm64:NoSchedule ao usar nodeSelector ou nodeAffinity para agendar aplicações em nós ARM. Adicione a chave tolerations correspondente ao taint kubernetes.io/arch=arm64:NoSchedule. Em clusters com Kubernetes v1.24 ou posterior, o scheduler reconhece automaticamente esse taint nos nós ARM, dispensando a toleration.

Faturamento

Tipos de instância ECS baseados em ARM e preços:

Crie um cluster ou node pool ARM

Adicione nós ARM durante a criação do cluster ou inclua um node pool ARM em um cluster existente.

Durante a criação do cluster

Na seção Instance Type, defina Architecture como Arm, selecione um tipo de instância da família de uso geral g8m e configure os demais parâmetros. Consulte Criar um cluster gerenciado ACK.image.png

Nota

Acesse Tipos de instância ECS disponíveis por região para verificar a disponibilidade de instâncias por região.

Em um cluster existente

Na seção Instance Type, defina Architecture como Arm, selecione um tipo de instância e configure os demais parâmetros. Consulte Criar e gerenciar um node pool.

Nota

Acesse Tipos de instância ECS disponíveis por região para verificar a disponibilidade de instâncias por região.

Agende workloads exclusivos para ARM em nós ARM

Em clusters de arquitetura mista, agende aplicações exclusivas para ARM em nós ARM para evitar falhas de pods em nós incompatíveis. Todos os nós ARM possuem o rótulo kubernetes.io/arch=arm64. Use nodeSelector ou nodeAffinity para direcioná-los.

nodeSelector

Adicione o seguinte nodeSelector à spec do pod. Essa configuração direciona os nós rotulados com kubernetes.io/arch: arm64, aplicável a todos os nós ARM em um cluster ACK.

nodeSelector:
  kubernetes.io/arch: arm64 # Specify an ARM node.

Exemplo de YAML para implantar uma aplicação stateless em um nó ARM:

Example YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: only-arm
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        kubernetes.io/arch: arm64 # Specify an ARM node.
      containers:
      - name: nginx
        image: nginx

nodeAffinity

Use afinidade de nó para agendar pods exclusivamente em nós ARM. A regra a seguir direciona nós rotulados com kubernetes.io/arch=arm64.

Com essa regra, o scheduler adiciona automaticamente uma tolerância ao taint kubernetes.io/arch=arm64:NoSchedule.

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/arch
          operator: In
          values:
          - arm64

Exemplo de YAML para implantar uma aplicação stateless em um nó ARM:

Example YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: only-arm
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/arch
                operator: In
                values:
                - arm64
      containers:
      - name: nginx
        image: nginx

Agende workloads multiarquitetura em nós ARM

Por padrão, o ACK agenda workloads em nós x86 e aguarda recursos desses nós mesmo quando há nós ARM disponíveis. Para imagens multiarquitetura, configure preferências de agendamento para utilizar ambas as arquiteturas.

Por exemplo, configure a afinidade de nó para preferir nós ARM ou x86 e recorra à outra arquitetura quando os nós preferidos não tiverem recursos suficientes.

      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: kubernetes.io/arch
                operator: In
                values:
                - arm64

Preferir nós ARM

Example YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: arm-prefer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
# Preferentially schedule the workload to an ARM node.
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: kubernetes.io/arch
                operator: In
                values:
                - arm64
      containers:
      - name: my-container
        image: nginx

Preferir nós x86

Example YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: amd-prefer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
# Preferentially schedule the workload to an x86 node.
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: kubernetes.io/arch
                operator: In
                values:
                - amd64
      containers:
      - name: my-container
        image: nginx

Perguntas frequentes

Posso usar instâncias preemptíveis baseadas em ARM?

Instâncias preemptíveis baseadas em ARM estão disponíveis. Consulte Usar instâncias preemptíveis.

Limitações dos nós ARM

Atualmente, apenas as seguintes categorias de Add-ons têm suporte para ARM:

  • Core Components

  • Logs e Monitoramento

  • Armazenamento

  • Rede

Componentes do Marketplace não têm suporte para ARM.

Referências