Aller au contenu

Commandes embarquées

Deux jeux de commandes distincts atteignent un Customer Edge, et aucun ne contient l’autre.

  • Sur l’équipement, la CLI du site dispose de 6 commandes de premier niveau et de 82 sous-commandes execcli.
  • Par le réseau, l’API debug possède son propre catalogue de 34.

La majeure partie de la surface embarquée n’a pas d’équivalent API : l’intégralité du plan de contrôle Vega, les wrappers Envoy, la capture de paquets, le jeu de paramètres kubelet, les fichiers edit-* et la paire d’accès root auxiliaire ne sont accessibles que depuis l’équipement.

Y accéder nécessite SSH ou la console série, ainsi qu’un élément non documenté nulle part :

Comment cela a été mesuré, et comment les jeux se recoupent

Section intitulée « Comment cela a été mesuré, et comment les jeux se recoupent »

Le jeu ci-dessous n’a pas été transcrit depuis un document fournisseur. Il a été lu sur des nœuds actifs avec scripts/sitecli_ssh_harvest.py et engagé dans sitecli/exec-catalog.json avec sa provenance. Trois exécutions, dans trois états d’enregistrement :

Mesuré àNiveau supérieurexeccli
site_state: PROVISIONING682
site_state: PROVISIONED682
site_state: ONLINE682

Les trois ont retourné des jeux identiques — les mêmes noms, et pas seulement les mêmes totaux, et la dernière exécution concernait un déploiement différent avec des noms de site et de ressources différents. La surface de commandes ne change donc pas avec l’état d’enregistrement, et une commande absente est genuinement absente plutôt que simplement pas encore proposée.

Par rapport aux 34 commandes de l’API debug, cela donne deux chiffres qu’il convient de distinguer :

  • 51 sous-commandes execcli n’ont pas d’équivalent API.
  • 55 est le même chiffre calculé sur l’ensemble de la surface embarquée, car il inclut également les quatre commandes configure*, qui se trouvent au premier niveau plutôt que sous execcli.

Les deux sont corrects ; un lecteur qui recalcule l’un et trouve l’autre n’a pas fait d’erreur. Chaque chiffre ici dérive de sitecli/catalog.json et sitecli/exec-catalog.json.

Ce qui est documenté, et ce qui est seulement listé

Section intitulée « Ce qui est documenté, et ce qui est seulement listé »

Un Customer Edge exécute Linux et un certain nombre de démons tiers. Documenter leurs commandes reviendrait à dupliquer leurs propres références et laisserait entendre que F5 en est propriétaire. La règle est donc : documenter les logiciels F5, et pour tout le reste ne documenter que ce qui est spécifique à un CE.

Trois niveaux, car la distinction « à nous » et « à eux » n’est pas nette. Cette distinction est enregistrée dans sitecli/command-classification.json.

NiveauTraitement
Logiciel F5Documentation complète — objectif, syntaxe, arguments, sortie capturée, ce qu’il faut observer. Argo, Vega, vpm, vifdump, configure*, le jeu edit-*, paramètres kubelet, accès root.
Interprétation spécifique au CEUn outil tiers dont la sortie a une signification particulière sur un CE. La lecture propre au CE est documentée et la sémantique de l’outil lui-même est laissée en amont.
PassthroughLinux ordinaire ou tiers sans rien de spécifique au CE à dire. Listé comme disponible, avec un pointeur vers l’amont. Aucune prose.

Cette distinction détermine si une page existe ou non, et c’est ce qui empêche cette documentation de dépérir en une copie dégradée des pages de manuel.

Disponibles sur l’équipement et non documentées ici — il s’agit du système d’exploitation et des démons tiers, et non du logiciel F5 ; leurs propres références sont meilleures que tout ce que cette page pourrait reformuler.

CommandesEn amont
ping, netstat, lsof, ip, ip-link-show, nmcli, tracepathiproute2, NetworkManager
top, check-mem, sysctl, load-sysctl-conf, journalctl, files, rpm-ostree, chronyc-sourcescoreutils, procps, systemd, rpm-ostree, chrony
edit-etc-hosts, edit-sysctl-confLes fichiers appartiennent au système d’exploitation
systemctl-status-crio, systemctl-status-docker, systemctl-status-kubelet, systemctl-status-iscsid, systemctl-status-multipathdsystemd
systemctl-restart-crio, systemctl-restart-docker, systemctl-restart-kubelet, systemctl-restart-iscsid, systemctl-restart-multipathdsystemd — chacune de ces commandes interrompt les charges de travail sur le nœud

Deux d’entre elles méritent d’être connues même si elles ne font pas l’objet d’une page. files effectue des opérations sur les fichiers et n’écrira que sous /tmp. Et chaque systemctl-restart-* est par définition perturbatrice — redémarrer crio ou kubelet interrompt les charges de travail sur ce nœud.