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 bei | Oberste Ebene | execcli |
|---|---|---|
site_state: PROVISIONING | 6 | 82 |
site_state: PROVISIONED | 6 | 82 |
site_state: ONLINE | 6 | 82 |
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 unterexeccliangesiedelt 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.
Was dokumentiert ist und was nur aufgeführt wird
Abschnitt betitelt „Was dokumentiert ist und was nur aufgeführt wird“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.
| Stufe | Behandlung |
|---|---|
| F5-Software | Vollstä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 Interpretation | Ein 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. |
| Passthrough | Reines 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.
F5-Software
Abschnitt betitelt „F5-Software“vegactl commands: configuration objects, introspection tables, trace buffers, and which node holds the primary role.vifdump commands. Documented, never run here: they write capture files onto the node.edit-* commands that open F5-owned files on the node.xuser root account. Support-directed, and it leaves the node modified.configure* commands at the Site CLI top level.Passthrough
Abschnitt betitelt „Passthrough“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.
| Befehle | Upstream |
|---|---|
ping, netstat, lsof, ip, ip-link-show, nmcli, tracepath | iproute2, NetworkManager |
top, check-mem, sysctl, load-sysctl-conf, journalctl, files, rpm-ostree, chronyc-sources | coreutils, procps, systemd, rpm-ostree, chrony |
edit-etc-hosts, edit-sysctl-conf | Die Dateien gehören zum Betriebssystem |
systemctl-status-crio, systemctl-status-docker, systemctl-status-kubelet, systemctl-status-iscsid, systemctl-status-multipathd | systemd |
systemctl-restart-crio, systemctl-restart-docker, systemctl-restart-kubelet, systemctl-restart-iscsid, systemctl-restart-multipathd | systemd – 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.