AMC est l'outil en ligne de commande d'ACK One Fleet. Cette rubrique présente le téléchargement et l'installation, les principales fonctionnalités ainsi que l'accès à l'aide en ligne de commande.
AMC est un plug-in kubectl pour la plateforme distribuée de conteneurs Kubernetes (ACK One). Avec AMC, vous pouvez :
Utiliser AMC comme kubectl
Gérer les déploiements, les services et les Ingresses sur les clusters gérés par Fleet
Interroger l'état des ressources Kubernetes (Pods, Services) dans un ou tous les clusters gérés
Consulter les journaux des tâches pour les charges de travail planifiées sur un cluster géré
Inspecter la topologie des applications et l'état des ressources entre les clusters
Prérequis
Assurez-vous de disposer des éléments suivants :
Une instance ACK One Fleet avec au moins un cluster associé
Le fichier kubeconfig de l'instance Fleet
wget(Linux) oucurl(macOS) installé
Installer AMC
Téléchargez le binaire AMC, rendez-le exécutable et déplacez-le vers /usr/local/bin.
Linux
| Architecture | Commande |
|---|---|
| amd64 | wget http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-linux-amd64 && chmod +x kubectl-amc-linux-amd64 && mv kubectl-amc-linux-amd64 /usr/local/bin/kubectl-amc |
| arm64 | wget http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-linux-arm64 && chmod +x kubectl-amc-linux-arm64 && mv kubectl-amc-linux-arm64 /usr/local/bin/kubectl-amc |
macOS
| Architecture | Commande |
|---|---|
| amd64 | curl -LO http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-mac-amd64 && chmod +x kubectl-amc-mac-amd64 && mv kubectl-amc-mac-amd64 /usr/local/bin/kubectl-amc |
| arm64 | curl -LO http://ack-one.oss-cn-hangzhou.aliyuncs.com/kubectl-amc-mac-arm64 && chmod +x kubectl-amc-mac-arm64 && mv kubectl-amc-mac-arm64 /usr/local/bin/kubectl-amc |
Vérifier l'installation
Exécutez kubectl amc -h pour vérifier qu'AMC est installé :
kubectl amc -h
Lister les clusters gérés et leurs alias
Exécutez kubectl amc get managedcluster pour lister tous les clusters et leurs alias :
kubectl amc get managedcluster
Résultat attendu :
Name Alias HubAccepted
managedcluster-c**** cluster1 true
managedcluster-c**** cluster2 true
managedcluster-c**** cluster3 true
Les clusters précédemment associés à ACK One affichent none dans la colonne Alias.
Définir un alias de cluster
Pour définir un alias de cluster :
kubectl annotate managedcluster <managedcluster name> ackone.aliyun.com/cluster-alias=<cluster-alias>
Pour mettre à jour un alias, ajoutez l'option --overwrite :
kubectl annotate managedcluster <managedcluster name> ackone.aliyun.com/cluster-alias=<cluster-alias> --overwrite
Interroger les ressources dans un cluster géré
Utilisez l'option -m pour cibler un cluster spécifique, ou -m all pour interroger tous les clusters.
| Option | Description |
|---|---|
-n <namespace> |
Namespace à interroger |
-m <cluster-name> |
Nom du cluster géré. Utilisez all pour tous les clusters. |
Interroger un cluster spécifique
kubectl amc get deployment -n demo -m managedcluster-c****
Remplacez managedcluster-c**** par le nom de votre cluster.
Résultat attendu :
Run on ManagedCluster managedcluster-c**** (cluster-alias-****)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 1/1 1 1 42h
Interroger tous les clusters
kubectl amc get deployment -n demo -m all
Résultat attendu :
Run on ManagedCluster managedcluster-c**** (cluster1)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 1/1 1 1 42h
Run on ManagedCluster managedcluster-c**** (cluster2)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 3/3 3 3 42h
Run on ManagedCluster managedcluster-c**** (cluster3)
NAME READY UP-TO-DATE AVAILABLE AGE
web-demo 5/5 5 5 42h
Inspecter la topologie des applications
Utilisez la commande appstatus avec les options --tree et --detail pour afficher la topologie d'une application et l'état des ressources entre les clusters.
| Option | Description |
|---|---|
--tree |
Afficher les ressources sous forme d'arborescence avec les relations parent-enfant |
--detail |
Afficher l'état détaillé de chaque ressource |
kubectl amc appstatus demo -n demo --tree --detail
Résultat attendu :
CLUSTER NAMESPACE RESOURCE STATUS APPLY_TIME DETAIL
managedcluster-c****─── demo ─┬─ Deployment/demo updated 2022-05-27 06:48:13 Ready: 4/4 Up-to-date: 4 Available: 4 Age: 8m2s
├─ Ingress/demo updated 2022-05-27 06:48:13 Class: <none> Hosts: app.demo.example.com Address:
│ Ports: 80 Age: 8m2s
├─ ConfigMap/demo updated 2022-05-27 14:48:13 Data: 4 Age: 8m2s
└─ Service/demo updated 2022-05-27 06:48:13 Type: ClusterIP Cluster-IP: 192.168.9.178
External-IP: <none> Port(s): 82/TCP Age: 8m2s
managedcluster-c****─── demo ─┬─ Deployment/demo updated 2022-05-27 06:48:16 Ready: 2/2 Up-to-date: 2 Available: 2 Age: 7m59s
├─ Ingress/demo updated 2022-05-27 06:48:15 Class: <none> Hosts: app.demo.example.com Address:
│ Ports: 80 Age: 7m59s
├─ ConfigMap/demo updated 2022-05-27 14:48:17 Data: 4 Age: 7m58s
└─ Service/demo updated 2022-05-27 06:48:15 Type: ClusterIP Cluster-IP: 192.168.199.111
External-IP: <none> Port(s): 82/TCP Age: 7m59s