Pular para o conteúdo

Comandos no dispositivo

Dois conjuntos de comandos distintos alcançam um Customer Edge, e nenhum contém o outro.

  • No dispositivo, a CLI do Site tem 6 comandos de nível superior e 82 subcomandos execcli.
  • Pela rede, a API de depuração possui seu próprio catálogo de 34.

A maior parte da superfície no dispositivo não possui equivalente na API: todo o plano de controle Vega, os wrappers do Envoy, a captura de pacotes, o conjunto de parâmetros do kubelet, os arquivos edit-* e o par auxiliar de acesso root são acessíveis apenas pelo dispositivo.

Para acessá-los, é necessário SSH ou o console serial, além de algo que não está documentado em nenhum lugar:

Como isso foi medido e como os conjuntos se sobrepõem

Seção intitulada “Como isso foi medido e como os conjuntos se sobrepõem”

O conjunto abaixo não foi transcrito de um documento do fornecedor. Ele foi lido de nós ativos com scripts/sitecli_ssh_harvest.py e registrado em sitecli/exec-catalog.json com sua procedência. Três execuções, em três estados de registro:

Medido emNível superiorexeccli
site_state: PROVISIONING682
site_state: PROVISIONED682
site_state: ONLINE682

As três retornaram conjuntos idênticos — os mesmos nomes, não apenas os mesmos totais, e a última foi uma implantação diferente com nomes de site e recursos distintos. Portanto, a superfície de comandos não muda com o estado de registro, e um comando ausente está genuinamente ausente, não apenas ainda não disponível.

Em comparação com os 34 da API de depuração, isso gera dois números que vale manter claros:

  • 51 subcomandos execcli não possuem equivalente na API.
  • 55 é o mesmo número contado em toda a superfície no dispositivo, pois também inclui os quatro comandos configure*, que residem no nível superior em vez de sob execcli.

Ambos estão corretos; um leitor que recalcule um e encontre o outro não cometeu um erro. Todos os números aqui derivam de sitecli/catalog.json e sitecli/exec-catalog.json.

O que está documentado e o que está apenas listado

Seção intitulada “O que está documentado e o que está apenas listado”

Um Customer Edge executa Linux e diversos daemons de terceiros. Documentar seus comandos duplicaria suas próprias referências e implicaria que a F5 os possui, portanto a regra é: documentar o software da F5 e, para todo o restante, documentar apenas o que é específico de um CE.

Três categorias, porque “nosso” e “deles” não é uma divisão clara. A divisão está registrada em sitecli/command-classification.json.

CategoriaTratamento
Software F5Documentação completa — propósito, sintaxe, argumentos, saída capturada, o que observar. Argo, Vega, vpm, vifdump, configure*, o conjunto edit-*, parâmetros do kubelet, acesso root.
Interpretação específica do CEUma ferramenta de terceiros cuja saída tem um significado particular em um CE. A leitura específica do CE é documentada e a semântica própria da ferramenta é deixada para o upstream.
PassthroughLinux simples ou terceiros sem nada específico do CE a dizer. Listado como disponível, com indicação para o upstream. Sem prosa.

Essa distinção decide se uma página existe ou não, e é o que evita que esta documentação se deteriore em uma cópia pior das páginas de manual.

Disponíveis no dispositivo e não documentados aqui — são o sistema operacional e os daemons de terceiros, não o software da F5, e suas próprias referências são melhores do que qualquer coisa que esta página pudesse reproduzir.

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-confOs arquivos são do sistema operacional
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 um desses interrompe as cargas de trabalho no nó

Dois destes valem ser conhecidos mesmo sem receberem uma página própria. files realiza operações de arquivo e só escreve em /tmp. E todo systemctl-restart-* é disruptivo por definição — reiniciar crio ou kubelet interrompe as cargas de trabalho naquele nó.