Salta ai contenuti

Comandi on-box

Due set di comandi separati raggiungono un Customer Edge, e nessuno dei due contiene l’altro.

  • Sul dispositivo, la Site CLI dispone di 6 comandi di primo livello e 82 sottocomandi execcli.
  • Tramite rete, la debug API ha un proprio catalogo di 34.

La maggior parte della superficie on-box non ha un equivalente API: l’intero piano di controllo Vega, i wrapper Envoy, la cattura dei pacchetti, il set di parametri kubelet, i file edit-* e la coppia ausiliaria di accesso root sono raggiungibili solo dal dispositivo.

Per accedervi è necessario SSH o la console seriale, e una cosa che non è documentata da nessuna parte:

Come è stato misurato e come si sovrappongono i set

Sezione intitolata “Come è stato misurato e come si sovrappongono i set”

Il set riportato di seguito non è trascritto da un documento del fornitore. È stato letto da nodi attivi con scripts/sitecli_ssh_harvest.py e salvato in sitecli/exec-catalog.json con la relativa provenienza. Tre esecuzioni, in tre stati di registrazione:

Misurato inPrimo livelloexeccli
site_state: PROVISIONING682
site_state: PROVISIONED682
site_state: ONLINE682

Tutte e tre hanno restituito set identici — gli stessi nomi, non semplicemente gli stessi totali, e l’ultima era un deployment diverso con nomi di sito e risorse differenti. Pertanto la superficie dei comandi non cambia con lo stato di registrazione, e un comando assente è genuinamente assente piuttosto che non ancora disponibile.

Rispetto ai 34 dell’API di debug, si ottengono due valori da tenere distinti:

  • 51 sottocomandi execcli non hanno un equivalente API.
  • 55 è lo stesso valore conteggiato sull’intera superficie on-box, perché include anche i quattro comandi configure*, che si trovano al primo livello anziché sotto execcli.

Entrambi sono corretti; un lettore che ricalcola uno e trova l’altro non ha commesso un errore. Ogni valore qui deriva da sitecli/catalog.json e sitecli/exec-catalog.json.

Un Customer Edge esegue Linux e diversi demoni di terze parti. Documentare i loro comandi duplicherebbe i loro riferimenti e implicherebbe che F5 ne sia proprietaria, quindi la regola è: documentare il software F5, e per tutto il resto documentare solo ciò che è specifico di un CE.

Tre livelli, perché “nostro” e “altrui” non è una divisione netta. La divisione è registrata in sitecli/command-classification.json.

LivelloTrattamento
Software F5Documentazione completa — scopo, sintassi, argomenti, output acquisito, cosa cercare. Argo, Vega, vpm, vifdump, configure*, il set edit-*, parametri kubelet, accesso root.
Interpretazione specifica per CEUno strumento di terze parti il cui output ha un significato particolare su un CE. Viene documentata la lettura specifica per CE e la semantica propria dello strumento viene lasciata a monte.
PassthroughLinux puro o terze parti senza nulla di specifico per CE da segnalare. Elencato come disponibile, con un puntatore a monte. Nessun testo descrittivo.

Questa distinzione determina se una pagina esiste o meno, ed è ciò che impedisce a questa documentazione di degradarsi in una copia peggiore delle pagine man.

Disponibili sul dispositivo e non documentati qui — si tratta del sistema operativo e dei demoni di terze parti, non del software F5, e i loro riferimenti propri sono migliori di qualsiasi cosa questa pagina potrebbe riformulare.

ComandiA monte
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-confI file appartengono al sistema operativo
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 — ognuno di questi interrompe i workload sul nodo

Due di questi vale la pena conoscere anche se non hanno una pagina dedicata. files esegue operazioni sui file e scrive solo sotto /tmp. E ogni systemctl-restart-* è per definizione distruttivo — riavviare crio o kubelet interrompe i workload su quel nodo.