Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Gerencie clusters registrados com o onectl

Última atualização: Jun 27, 2026

Crie clusters registrados, instale add-ons e configure permissões de usuário RAM pelo terminal.

O onectl é compatível com macOS e Linux.

Pré-requisitos

Verifique se você tem:

  • Um terminal com macOS ou Linux

  • Um cluster Kubernetes externo com um arquivo kubeconfig válido (caminho padrão: ~/.kube/config)

  • Um usuário RAM com as seguintes políticas de sistema anexadas:

    • AliyunCSFullAccess: permissões de administrador do ACK

    • AliyunRamFullAccess: permissões de administrador do RAM

    • AliyunVPCReadOnlyAccess: permissões de somente leitura da VPC

  • O AccessKey ID e o AccessKey Secret desse usuário RAM

O usuário RAM do onectl e os usuários RAM dos componentes são distintos. O onectl usa esse usuário RAM para chamar as APIs da Alibaba Cloud.

Como funciona

Comunicação com o cluster externo

O onectl implanta um agente do ACK One no cluster externo e obtém o kubeconfig das seguintes fontes, nesta ordem:

  1. Parâmetro --kubeconfig. Exemplo:

    onectl cluster connect --cluster-id <cluster-id> --kubeconfig ~/.kube/config
  2. Variável de ambiente KUBECONFIG.

  3. Parâmetro Kubeconfig Path em ~/.onectl/config.json (configurado via onectl configure).

  4. Arquivo ~/.kube/config como fallback padrão.

Conexão com um cluster registrado

O comando onectl cluster connect executa duas etapas:

  1. Recupera as informações de conexão do cluster registrado e as salva em agent.yaml.

  2. Implanta o agente do ACK One no cluster externo usando essas informações.

Usuários RAM para componentes do cluster

Os componentes de um cluster registrado usam o par de AccessKey de um usuário RAM para acessar recursos da Alibaba Cloud. Por exemplo, o logtail-ds requer acesso a recursos do Simple Log Service (SLS), como projetos e Logstores. O par de AccessKey fica armazenado em um Secret chamado alibaba-addon-secret no namespace kube-system.

  • Se o Secret existir, o onectl usará o par de AccessKey contido nele.

  • Se o Secret não existir, o onectl criará um usuário RAM chamado ack-one-user-<cluster-id-prefix> e armazenará o novo par de AccessKey no Secret.

Instalação de add-ons do cluster

Instalar um componente exige permissões de administrador no cluster registrado. O onectl verifica se a conta de serviço do agente do ACK One tem essas permissões:

  • Se tiver, o onectl instala o componente diretamente.

  • Se não tiver, o onectl cria um ClusterRole temporário (ack-admin-tmp) e um ClusterRoleBinding (ack-admin-binding-tmp), concede permissões de administrador, instala o componente e exclui a função e o binding temporários.

Definições do ClusterRole e ClusterRoleBinding temporários:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-admin-tmp
  labels:
    ack/creator: "ack"
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ack-admin-binding-tmp
  namespace: kube-system
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: ack-admin-tmp
  apiGroup: rbac.authorization.k8s.io

Etapa 1: Instale o onectl

  1. Instale o onectl:

    curl https://ack-one.oss-cn-hangzhou.aliyuncs.com/onectl/get-onectl.sh | bash
  2. Verifique a instalação:

    onectl version

    Saída esperada:

    onectl: v1.0.0+774dea0
    BuildDate: 2023-07-12T06:10:27Z
    GitCommit: 774dea0f768569821e101dc44d1cb09cef192fe8
    GitTreeState: clean
    GoVersion: go1.20.4
    Compiler: gc
    Platform: darwin/amd64

Etapa 2: Configure as credenciais do onectl

Configure o par de AccessKey e o caminho padrão do kubeconfig:

onectl configure

Saída esperada:

Configuring profile default ...
Access Key Id [*********************f7x]:
Access Key Secret [***************************mft]:
Default Kubeconfig Path (default is ~/.kube/config) []:
Saving profile[default] ...
Done.

Parâmetro

Descrição

Access Key Id

AccessKey ID do usuário RAM do onectl.

Access Key Secret

AccessKey Secret do usuário RAM do onectl.

Kubeconfig Path

Caminho para o arquivo kubeconfig do cluster externo. Padrão: ~/.kube/config

Etapa 3: Defina o kubeconfig do cluster externo

O onectl usa o arquivo kubeconfig especificado na variável de ambiente KUBECONFIG. Se KUBECONFIG não estiver definida, ele recorre a ~/.kube/config.

Se o arquivo kubeconfig estiver em um caminho diferente do padrão, defina a variável de ambiente:

export KUBECONFIG=/path/to/your/kubeconfig

Próximas etapas

Substitua os valores de espaço reservado pelos seus dados antes de executar cada comando.

Gerencie clusters

Substitua <cluster-id> pelo ID do seu cluster registrado. Substitua também <region-id>, <vpc-id>, <vswitch-id> e <cluster-name> pelos valores do seu ambiente.

  • Crie um cluster registrado e conecte um cluster externo. Consulte Usar o onectl para criar um cluster registrado.

    onectl cluster create --region <region-id> --vpc <vpc-id> --vswitch <vswitch-id> --name <cluster-name> --eip true
    onectl cluster connect --cluster-id <cluster-id>

    Saída esperada para cluster connect:

    Agent information saved as agent.yaml.
    Installing ACK One agent using kubeconfig file **** to connect to registered cluster ****.
    Confirm? [Y/n]: y
    ACK One agent deployed successfully.
    Check the running status of deployment ack-cluster-agent to confirm the connection status of registered cluster ****.
  • Verifique o status de um cluster registrado:

    onectl cluster describe --cluster-id <cluster-id>
  • Liste todos os clusters registrados:

    onectl cluster list
  • Exclua um cluster registrado:

    onectl cluster delete --cluster-id <cluster-id>

Gerencie componentes

Substitua <component-name> pelo nome do componente.

  • Instale um componente. Se o agente do ACK One não tiver permissões de administrador, o onectl as concederá temporariamente e depois as revogará.

    onectl addon install <component-name>

    Exemplo de saída com permissões temporárias:

    Cluster role ack-admin-tmp created.
    Cluster role binding ack-admin-binding-tmp created.
    Addon logtail-ds, version **** installed.
    Cluster role ack-admin-tmp deleted.
    Cluster role binding ack-admin-binding-tmp deleted.
  • Atualize um componente:

    onectl addon upgrade <component-name>
  • Liste os componentes instalados:

    onectl addon list
  • Liste os componentes disponíveis:

    onectl addon catalog
  • Desinstale um componente:

    onectl addon uninstall <component-name>

Gerencie usuários RAM para componentes

Alguns componentes exigem permissões RAM específicas para acessar recursos da Alibaba Cloud. Conceda as permissões antes de instalar esses componentes.

Substitua <component-name> pelo nome do componente.

  • Conceda permissões RAM para um componente. Se o Secret alibaba-addon-secret não existir, o onectl criará um novo usuário RAM e Secret.

    onectl ram-user grant --addon <component-name>

    Exemplo de saída com um novo usuário RAM:

    Ram user ack-one-user-ce313528c3 created successfully.
    Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.
    Secret alibaba-addon-secret created under namespace kube-system in the cluster, it stores the access key and secret of ram user ack-one-user-ce313528c3.
  • Verifique as permissões do usuário RAM:

    onectl ram-user describe --detail
  • Atualize as permissões do usuário RAM:

    onectl ram-user update --addon <component-name>
  • Revogue as permissões do usuário RAM:

    onectl ram-user revoke --addon <component-name>

Referências