Ir al contenido

Comandos en la caja

Dos conjuntos de comandos separados llegan a un Customer Edge, y ninguno contiene al otro.

  • En la caja, la CLI del Sitio tiene 6 comandos de nivel superior y 82 subcomandos execcli.
  • A través de la red, la API de depuración tiene su propio catálogo de 34.

La mayor parte de la superficie en la caja no tiene equivalente en la API: todo el plano de control Vega, los wrappers de Envoy, la captura de paquetes, el conjunto de parámetros de kubelet, los archivos edit-* y el par de acceso root auxiliar solo son accesibles desde la caja.

Para acceder a ellos se necesita SSH o la consola serie, y algo que no está documentado en ningún lugar:

Cómo se midió esto y cómo se superponen los conjuntos

Sección titulada «Cómo se midió esto y cómo se superponen los conjuntos»

El conjunto que aparece a continuación no fue transcrito de un documento del proveedor. Se leyó de nodos en producción con scripts/sitecli_ssh_harvest.py y se confirmó en sitecli/exec-catalog.json con su procedencia. Tres ejecuciones, en tres estados de registro:

Medido enNivel superiorexeccli
site_state: PROVISIONING682
site_state: PROVISIONED682
site_state: ONLINE682

Las tres devolvieron conjuntos idénticos — los mismos nombres, no solo los mismos totales, y la última fue un despliegue diferente con nombres de sitio y recursos distintos. Por lo tanto, la superficie de comandos no cambia con el estado de registro, y un comando que está ausente realmente está ausente en lugar de no estar disponible aún.

En comparación con los 34 de la API de depuración, esto da dos cifras que conviene tener claras:

  • 51 subcomandos execcli no tienen equivalente en la API.
  • 55 es la misma cifra contada sobre toda la superficie en la caja, porque también incluye los cuatro comandos configure*, que se encuentran en el nivel superior en lugar de bajo execcli.

Ambas son correctas; un lector que recalcule una y encuentre la otra no ha cometido un error. Todas las cifras aquí se derivan de sitecli/catalog.json y sitecli/exec-catalog.json.

Un Customer Edge ejecuta Linux y varios daemons de terceros. Documentar sus comandos duplicaría sus propias referencias e implicaría que F5 es propietario de ellos, por lo que la regla es: documentar el software de F5, y para todo lo demás documentar solo lo que es específico de un CE.

Tres niveles, porque “nuestro” y “de ellos” no es una división limpia. La división está registrada en sitecli/command-classification.json.

NivelTratamiento
Software de F5Documentación completa — propósito, sintaxis, argumentos, salida capturada, qué buscar. Argo, Vega, vpm, vifdump, configure*, el conjunto edit-*, parámetros de kubelet, acceso root.
Interpretación específica del CEUna herramienta de terceros cuya salida tiene un significado particular en un CE. Se documenta la lectura específica del CE y la semántica propia de la herramienta se deja en el upstream.
PassthroughLinux simple o de terceros sin nada específico del CE que mencionar. Se lista como disponible, con un puntero al upstream. Sin prosa.

Esa distinción decide si existe una página en absoluto, y es lo que evita que esta documentación se deteriore hasta convertirse en una copia peor de las páginas del manual.

Disponibles en la caja y no documentados aquí — estos son el sistema operativo y los daemons de terceros, no el software de F5, y sus propias referencias son mejores que cualquier cosa que esta página pudiera replicar.

ComandosUpstream
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-confLos archivos son del 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 — cada uno de estos interrumpe las cargas de trabajo en el nodo

Dos de estos merecen conocerse aunque no tengan página propia. files realiza operaciones con archivos y solo escribirá en /tmp. Y cada systemctl-restart-* es disruptivo por definición — reiniciar crio o kubelet interrumpe las cargas de trabajo en ese nodo.