Zum Inhalt springen

On-Box-Befehle

Zwei separate Befehlssätze erreichen einen Customer Edge, und keiner enthält den anderen.

  • Auf dem Gerät verfügt die Site CLI über 6 übergeordnete Befehle und 82 execcli-Unterbefehle.
  • Über das Netzwerk besitzt die Debug-API einen eigenen Katalog mit 34 Befehlen.

Der größte Teil der On-Box-Oberfläche hat kein API-Äquivalent: Die gesamte Vega-Steuerungsebene, die Envoy-Wrapper, die Paketerfassung, der kubelet-Parametersatz, die edit-*-Dateien und das ergänzende Root-Zugriffspaar sind nur vom Gerät aus erreichbar.

Der Zugang erfordert SSH oder die serielle Konsole, sowie eine Sache, die nirgendwo dokumentiert ist:

Wie dies gemessen wurde und wie sich die Sätze überschneiden

Abschnitt betitelt „Wie dies gemessen wurde und wie sich die Sätze überschneiden“

Der nachfolgende Satz wurde nicht aus einem Herstellerdokument übertragen. Er wurde von Live-Knoten mit scripts/sitecli_ssh_harvest.py ausgelesen und mit seiner Herkunft in sitecli/exec-catalog.json übernommen. Drei Durchläufe in drei Registrierungszuständen:

Gemessen beiOberste Ebeneexeccli
site_state: PROVISIONING682
site_state: PROVISIONED682
site_state: ONLINE682

Alle drei lieferten identische Sätze zurück – dieselben Namen, nicht nur dieselben Gesamtzahlen, und der letzte war eine andere Bereitstellung mit anderen Site- und Ressourcennamen. Der Befehlsumfang ändert sich daher nicht mit dem Registrierungszustand, und ein fehlender Befehl ist tatsächlich nicht vorhanden, anstatt nur noch nicht angeboten zu werden.

Gegenüber den 34 Befehlen der Debug-API ergibt das zwei Zahlen, die es auseinanderzuhalten gilt:

  • 51 execcli-Unterbefehle haben kein API-Äquivalent.
  • 55 ist dieselbe Zahl, über die gesamte On-Box-Oberfläche gezählt, da sie auch die vier configure*-Befehle umfasst, die auf der obersten Ebene statt unter execcli angesiedelt sind.

Beide sind korrekt; ein Leser, der den einen neu berechnet und den anderen findet, hat keinen Fehler gemacht. Jede Zahl hier leitet sich aus sitecli/catalog.json und sitecli/exec-catalog.json ab.

Ein Customer Edge betreibt Linux und eine Reihe von Drittanbieter-Daemons. Deren Befehle zu dokumentieren würde ihre eigenen Referenzen duplizieren und implizieren, dass F5 sie besitzt. Daher gilt folgende Regel: F5-Software dokumentieren, und für alles andere nur das dokumentieren, was für einen CE spezifisch ist.

Drei Stufen, da „unsere” und „ihre” keine saubere Trennung ist. Die Aufteilung ist in sitecli/command-classification.json erfasst.

StufeBehandlung
F5-SoftwareVollständige Dokumentation – Zweck, Syntax, Argumente, erfasste Ausgabe, worauf zu achten ist. Argo, Vega, vpm, vifdump, configure*, der edit-*-Satz, kubelet-Parameter, Root-Zugriff.
CE-spezifische InterpretationEin Drittanbieter-Werkzeug, dessen Ausgabe auf einem CE eine besondere Bedeutung hat. Die CE-spezifische Lesart wird dokumentiert, die eigene Semantik des Werkzeugs bleibt beim Upstream.
PassthroughReines Linux oder Drittanbieter ohne CE-spezifische Aussage. Als verfügbar aufgeführt, mit einem Verweis zum Upstream. Kein Fließtext.

Diese Unterscheidung entscheidet darüber, ob eine Seite überhaupt existiert, und sie verhindert, dass diese Dokumentation zu einer schlechteren Kopie der Man-Pages verkommt.

Auf dem Gerät verfügbar und hier nicht dokumentiert – dies sind das Betriebssystem und Drittanbieter-Daemons, nicht F5-Software, und ihre eigenen Referenzen sind besser als alles, was diese Seite wiederholen könnte.

BefehleUpstream
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-confDie Dateien gehören zum Betriebssystem
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 – jeder dieser Befehle unterbricht Workloads auf dem Knoten

Zwei davon sind es wert, bekannt zu sein, auch wenn sie keine eigene Seite erhalten. files führt Dateioperationen durch und schreibt ausschließlich unterhalb von /tmp. Und jeder systemctl-restart-*-Befehl ist per Definition störend – ein Neustart von crio oder kubelet unterbricht die Workloads auf diesem Knoten.