Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Manage registered clusters with onectl

Dernière mise à jour :Aug 11, 2026

Créez des clusters enregistrés, installez des modules complémentaires et configurez les autorisations des utilisateurs RAM depuis le terminal.

onectl est compatible avec macOS et Linux.

Prérequis

Assurez-vous de disposer des éléments suivants :

  • Un terminal sous macOS ou Linux

  • Un cluster Kubernetes externe avec un fichier kubeconfig valide (chemin par défaut : ~/.kube/config)

  • Un utilisateur RAM auquel sont attachées les stratégies système suivantes :

    • AliyunCSFullAccess — Autorisations d'administrateur ACK

    • AliyunRamFullAccess — Autorisations d'administrateur RAM

    • AliyunVPCReadOnlyAccess — Autorisations en lecture seule VPC

  • L'ID AccessKey et la clé secrète AccessKey de cet utilisateur RAM

L'utilisateur RAM pour onectl et les utilisateurs RAM pour les composants sont distincts. onectl utilise cet utilisateur RAM pour appeler les API Alibaba Cloud.

Fonctionnement

Communication avec le cluster externe

onectl déploie un agent ACK One dans le cluster externe et résout le kubeconfig à partir des sources suivantes, dans l'ordre indiqué :

  1. Le paramètre --kubeconfig. Par exemple :

    onectl cluster connect --cluster-id <cluster-id> --kubeconfig ~/.kube/config
  2. La variable d'environnement KUBECONFIG.

  3. Le paramètre Kubeconfig Path dans ~/.onectl/config.json (configuré via onectl configure).

  4. ~/.kube/config comme solution de repli par défaut.

Connexion à un cluster enregistré

La commande onectl cluster connect effectue deux étapes :

  1. Récupère les informations de connexion du cluster enregistré et les enregistre dans agent.yaml.

  2. Déploie l'agent ACK One dans le cluster externe à l'aide de ces informations.

Utilisateurs RAM pour les composants du cluster

Les composants d'un cluster enregistré utilisent une paire de clés AccessKey d'un utilisateur RAM pour accéder aux ressources Alibaba Cloud. Par exemple, logtail-ds requiert un accès aux ressources Simple Log Service (SLS), telles que les projets et les Logstores. La paire de clés AccessKey est stockée dans un Secret nommé alibaba-addon-secret dans le namespace kube-system.

  • Si le Secret existe, onectl utilise la paire de clés AccessKey qu'il contient.

  • Si le Secret n'existe pas, onectl crée un utilisateur RAM nommé ack-one-user-<cluster-id-prefix> et stocke la nouvelle paire de clés AccessKey dans le Secret.

Installation des modules complémentaires du cluster

L'installation d'un composant nécessite des autorisations d'administrateur sur le cluster enregistré. onectl vérifie si le compte de service de l'agent ACK One dispose de ces autorisations :

  • Si c'est le cas, onectl installe directement le composant.

  • Sinon, onectl crée un ClusterRole temporaire (ack-admin-tmp) et un ClusterRoleBinding temporaire (ack-admin-binding-tmp), accorde les autorisations d'administrateur, installe le composant, puis supprime le rôle et le binding temporaires.

Définitions du ClusterRole et du ClusterRoleBinding temporaires :

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

Étape 1 : Installer onectl

  1. Installez onectl :

    curl https://ack-one.oss-cn-hangzhou.aliyuncs.com/onectl/get-onectl.sh | bash
  2. Vérifiez l'installation :

    onectl version

    Résultat attendu :

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

Étape 2 : Configurer les identifiants onectl

Configurez la paire de clés AccessKey et le chemin kubeconfig par défaut :

onectl configure

Résultat attendu :

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

Paramètre

Description

Access Key Id

ID AccessKey de l'utilisateur RAM onectl.

Access Key Secret

Clé secrète AccessKey de l'utilisateur RAM onectl.

Kubeconfig Path

Chemin d'accès au fichier kubeconfig du cluster externe. Par défaut : ~/.kube/config

Étape 3 : Définir le kubeconfig pour votre cluster externe

onectl utilise le fichier kubeconfig spécifié dans la variable d'environnement KUBECONFIG. Si KUBECONFIG n'est pas définie, il utilise par défaut ~/.kube/config.

Si votre fichier kubeconfig se trouve à un emplacement non standard, définissez la variable d'environnement :

export KUBECONFIG=/path/to/your/kubeconfig

Étapes suivantes

Remplacez les valeurs d'espace réservé par vos propres valeurs avant d'exécuter chaque commande.

Gérer les clusters

Remplacez <cluster-id> par l'ID de votre cluster enregistré, ainsi que <region-id>, <vpc-id>, <vswitch-id> et <cluster-name> par les valeurs correspondant à votre environnement.

  • Créez un cluster enregistré et connectez un cluster externe. Consultez la rubrique Utiliser onectl pour créer un cluster enregistré.

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

    Résultat attendu pour 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 ****.
  • Vérifiez l'état d'un cluster enregistré :

    onectl cluster describe --cluster-id <cluster-id>
  • Répertoriez tous les clusters enregistrés :

    onectl cluster list
  • Supprimez un cluster enregistré :

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

Gérer les composants

Remplacez <component-name> par le nom du composant.

  • Installez un composant. Si l'agent ACK One ne dispose pas des autorisations d'administrateur, onectl les accorde temporairement, puis les révoque.

    onectl addon install <component-name>

    Exemple de résultat avec des autorisations temporaires :

    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.
  • Mettez à jour un composant :

    onectl addon upgrade <component-name>
  • Répertoriez les composants installés :

    onectl addon list
  • Répertoriez les composants disponibles :

    onectl addon catalog
  • Désinstallez un composant :

    onectl addon uninstall <component-name>

Gérer les utilisateurs RAM pour les composants

Certains composants nécessitent des autorisations RAM spécifiques pour accéder aux ressources Alibaba Cloud. Accordez les autorisations avant d'installer ces composants.

Remplacez <component-name> par le nom du composant.

  • Accordez des autorisations RAM pour un composant. Si le Secret alibaba-addon-secret n'existe pas, onectl crée un nouvel utilisateur RAM et un nouveau Secret.

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

    Exemple de résultat avec un nouvel utilisateur 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.
  • Vérifiez les autorisations de l'utilisateur RAM :

    onectl ram-user describe --detail
  • Mettez à jour les autorisations de l'utilisateur RAM :

    onectl ram-user update --addon <component-name>
  • Révoquez les autorisations de l'utilisateur RAM :

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

Références