- Início
- Rede multi-cloud
- Customer Edge diagnostics
- Command reference
- On-box commands
- Comandos em builds mais recentes
Comandos em builds mais recentes
A superfície de comandos da CLI do Site cresce entre as builds. Sete comandos execcli existem em uma
build mais recente do que a que esta frota executa, portanto um operador que leia o restante desta seção
não os encontrará — e alguém que leia a documentação mais recente da F5 pode esperá-los.
A superfície é um superconjunto, não uma reorganização: 89 comandos execcli na build mais recente
contra 82 nesta frota, com esses sete adicionados e nada removido.
O que cada um faz
Seção intitulada “O que cada um faz”As descrições são do próprio appliance, extraídas do menu de autocompletar.
| Comando | Descrição do appliance |
|---|---|
collect-database-stats | collect database statistics |
iptables-lv | show iptables -L -v -n |
marker-exists-crio | check if crio restart marker exists |
marker-exists-kubelet | check if kubelet restart marker exists |
marker-exists-NetworkManager | check if NetworkManager restart marker exists |
systemctl-restart-NetworkManager | restart NetworkManager service |
systemctl-start-crio-prune | start crio image prune service |
Lidos como um conjunto, a maioria descreve um único fluxo de trabalho em vez de sete ferramentas não relacionadas: três comandos verificam se um serviço foi marcado para reinicialização, e dois realizam a reinicialização ou a limpeza. A verificação de marcador é a metade segura de um par cuja outra metade é destrutiva.
Quatro dos sete apenas leem. Três alteram o nó — e um desses três não é o que você esperaria, que é o assunto de sua própria seção abaixo.
marker-exists-crio
Seção intitulada “marker-exists-crio”Informa se existe um arquivo de marcador de reinicialização para o crio.
execcli marker-exists-crioCapture policy: never execute through the APImarker-exists-kubelet
Seção intitulada “marker-exists-kubelet”execcli marker-exists-kubeletCapture policy: never execute through the APImarker-exists-NetworkManager
Seção intitulada “marker-exists-NetworkManager”execcli marker-exists-NetworkManagerCapture policy: never execute through the APIOs três responderam missing, indicando que nenhuma reinicialização estava pendente para esse serviço.
iptables-lv
Seção intitulada “iptables-lv”Executa iptables -L -v -n e retorna a saída inalterada, portanto é uma visão com contagem de pacotes e bytes
das tabelas de filtro do nó, e não uma abstração da F5.
execcli iptables-lvChain INPUT (policy ACCEPT 2582K packets, 7365M bytes) pkts bytes target prot opt in out source destination53804 4167K KUBE-PROXY-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes load balancer firewall */2389K 5628M KUBE-NODEPORTS all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes health check service ports */53804 4167K KUBE-EXTERNAL-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */2582K 7365M KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 KUBE-PROXY-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes load balancer firewall */ 0 0 KUBE-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ 0 0 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */ 0 0 KUBE-EXTERNAL-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes externally-visible service portals */ 0 0 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 1964K packets, 1248M bytes) pkts bytes target prot opt in out source destination54822 5298K KUBE-PROXY-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes load balancer firewall */54822 5298K KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes service portals */1964K 1248M KUBE-FIREWALL all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- !docker0 docker0 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-BRIDGE (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-CT (1 references) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
Chain DOCKER-FORWARD (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER-CT all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-INTERNAL all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-BRIDGE all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DROP all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-INTERNAL (1 references) pkts bytes target prot opt in out source destination
Chain DOCKER-USER (1 references) pkts bytes target prot opt in out source destination
Chain KUBE-EXTERNAL-SERVICES (2 references) pkts bytes target prot opt in out source destination
Chain KUBE-FIREWALL (2 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * !127.0.0.0/8 127.0.0.0/8 /* block incoming localnet connections */ ! ctstate RELATED,ESTABLISHED,DNAT
Chain KUBE-FORWARD (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding rules */ mark match 0x4000/0x4000 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes forwarding conntrack rule */ ctstate RELATED,ESTABLISHED
... [capture trimmed: first 60 of 79 lines]A maior parte do que imprime é do Kubernetes: as cadeias KUBE- são as regras de serviço, nodeport
e firewall do kube-proxy, e DOCKER-USER pertence ao runtime de contêineres. A primeira linha merece atenção em vez de ser ignorada —
# Warning: iptables-legacy tables present, use iptables-legacy to see them— pois indica que esta visão está incompleta. As regras nas tabelas legadas não são exibidas aqui, e a CLI do Site não oferece nenhum comando que as leia.
collect-database-stats escreve no nó, apesar do nome
Seção intitulada “collect-database-stats escreve no nó, apesar do nome”Este é uma armadilha, e a armadilha é o nome. “collect database statistics” e a
própria descrição do appliance soam como observacionais. O comando começa assim — o
limite de arquivos abertos, quantos descritores e conexões o etcd mantém, uma listagem do lsof e
df para o sistema de arquivos do etcd — e então executa um benchmark de escrita aleatória de quinze segundos com fio:
Checking if fio disk performance test can run safely...
Running fio disk performance test (15 seconds)...etcd-test: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B ...etcd-test: Laying out IO file (1 file / 250MiB)Ele cria um arquivo de 250 MiB e escreveu 10,6 MiB de I/O aleatório na execução abaixo, em um sistema de arquivos que tinha 3,5 GiB livres. Ele verifica previamente se pode ser executado com segurança, portanto não é imprudente — mas não é uma leitura.
execcli collect-database-statsCurrent ulimit for open files:1024
Open FDs for etcd process:75
Open connections count (via ss):67
List open connections with lsof (if available):COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEetcd 1928 etcd-member cwd DIR 8,2 253 58407916 /etcd 1928 etcd-member rtd DIR 8,2 253 58407916 /etcd 1928 etcd-member txt REG 8,2 38599880 572772 /var/opt/bin/etcdetcd 1928 etcd-member mem-W REG 8,2 16801792 34215070 /var/lib/etcd/member/snap/dbetcd 1928 etcd-member mem REG 8,2 2549360 52803074 /usr/lib64/libc.so.6etcd 1928 etcd-member mem REG 8,2 70520 56912400 /usr/lib64/libresolv.so.2etcd 1928 etcd-member mem REG 8,2 938792 54504007 /usr/lib64/ld-linux-x86-64.so.2etcd 1928 etcd-member 0r CHR 1,3 0t0 4 /dev/nulletcd 1928 etcd-member 1u unix 0xffff892ac0fb0500 0t0 31273 type=STREAM (CONNECTED)etcd 1928 etcd-member 2u unix 0xffff892ac0fb0500 0t0 31273 type=STREAM (CONNECTED)etcd 1928 etcd-member 3u IPv6 19211 0t0 TCP *:23801 (LISTEN)etcd 1928 etcd-member 4u a_inode 0,15 0 2078 [eventpoll:3,5,6,11,13,14,15,17,18,19,29,36,42,44,45,46,47,48,50,52,55,56,57,62,63,65,66,67,68,69,73,74...]etcd 1928 etcd-member 5u a_inode 0,15 0 2078 [eventfd:19]etcd 1928 etcd-member 6u IPv6 1005 0t0 TCP *:23791 (LISTEN)etcd 1928 etcd-member 7uW REG 8,2 16801792 34215070 /var/lib/etcd/member/snap/dbetcd 1928 etcd-member 8u REG 8,2 64000000 50887796 /var/lib/etcd/member/wal/0000000000000000-0000000000000000.waletcd 1928 etcd-member 9r DIR 8,2 64 50887794 /var/lib/etcd/member/waletcd 1928 etcd-member 10w REG 8,2 64000000 50887804 /var/lib/etcd/member/wal/0.tmpetcd 1928 etcd-member 11u IPv6 34289 0t0 TCP ce0179-exp-01:23791->ce0179-exp-01:49464 (ESTABLISHED)
Etcd data directory disk usage:Filesystem Size Used Avail Use% Mounted on/dev/sda2 29G 25G 3.5G 88% /var
Etcd data directory location and usage:total 4.0Kdrwxr-xr-x 3 etcd-member etcd-member 20 Jul 29 01:27 .drwxr-xr-x. 45 root root 4.0K Jul 29 01:41 ..drwx------ 4 etcd-member etcd-member 29 Jul 29 01:27 member
Disk space for etcd:Filesystem Size Used Avail Use% Mounted on/dev/sda2 29G 25G 3.5G 88% /var
Checking if fio disk performance test can run safely...
Running fio disk performance test (15 seconds)...etcd-test: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1fio-3.35Starting 1 processetcd-test: Laying out IO file (1 file / 250MiB)Jobs: 1 (f=1)Jobs: 1 (f=1)Jobs: 1 (f=1): [w(1)][20.0%][w=720KiB/s][w=180 IOPS][eta 00m:12s]Jobs: 1 (f=1): [w(1)][26.7%][w=724KiB/s][w=181 IOPS][eta 00m:11s]Jobs: 1 (f=1): [w(1)][33.3%][w=732KiB/s][w=183 IOPS][eta 00m:10s]Jobs: 1 (f=1): [w(1)][40.0%][w=744KiB/s][w=186 IOPS][eta 00m:09s]Jobs: 1 (f=1): [w(1)][46.7%][w=740KiB/s][w=185 IOPS][eta 00m:08s]Jobs: 1 (f=1): [w(1)][53.3%][w=716KiB/s][w=179 IOPS][eta 00m:07s]Jobs: 1 (f=1): [w(1)][60.0%][w=720KiB/s][w=180 IOPS][eta 00m:06s]Jobs: 1 (f=1): [w(1)][66.7%][w=728KiB/s][w=182 IOPS][eta 00m:05s]Jobs: 1 (f=1): [w(1)][73.3%][w=772KiB/s][w=193 IOPS][eta 00m:04s]Jobs: 1 (f=1): [w(1)][80.0%][w=752KiB/s][w=188 IOPS][eta 00m:03s]Jobs: 1 (f=1): [w(1)][86.7%][w=752KiB/s][w=188 IOPS][eta 00m:02s]Jobs: 1 (f=1): [w(1)][93.3%][w=728KiB/s][w=182 IOPS][eta 00m:01s]Jobs: 1 (f=1): [w(1)][100.0%][w=728KiB/s][w=182 IOPS][eta 00m:00s]
etcd-test: (groupid=0, jobs=1): err= 0: pid=60246: Wed Jul 29 02:46:28 2026 write: IOPS=180, BW=722KiB/s (739kB/s)(10.6MiB/15002msec); 0 zone resets clat (usec): min=8, max=270, avg=21.24, stdev=11.09 lat (usec): min=8, max=270, avg=21.68, stdev=11.14 clat percentiles (usec): | 1.00th=[ 12], 5.00th=[ 16], 10.00th=[ 18], 20.00th=[ 19], | 30.00th=[ 19], 40.00th=[ 20], 50.00th=[ 20], 60.00th=[ 20], | 70.00th=[ 21], 80.00th=[ 22], 90.00th=[ 24], 95.00th=[ 40], | 99.00th=[ 47], 99.50th=[ 60], 99.90th=[ 212], 99.95th=[ 212], | 99.99th=[ 269] bw ( KiB/s): min= 320, max= 792, per=100.00%, avg=723.03, stdev=80.72, samples=29 iops : min= 80, max= 198, avg=180.76, stdev=20.18, samples=29 lat (usec) : 10=0.33%, 20=64.34%, 50=34.59%, 100=0.41%, 250=0.30% lat (usec) : 500=0.04% fsync/fdatasync/sync_file_range: sync (msec): min=4, max=206, avg= 5.51, stdev= 4.38 sync percentiles (msec): | 1.00th=[ 5], 5.00th=[ 5], 10.00th=[ 5], 20.00th=[ 5], | 30.00th=[ 5], 40.00th=[ 5], 50.00th=[ 6], 60.00th=[ 6], | 70.00th=[ 6], 80.00th=[ 6], 90.00th=[ 6], 95.00th=[ 8], | 99.00th=[ 17], 99.50th=[ 18], 99.90th=[ 23], 99.95th=[ 57], | 99.99th=[ 207] cpu : usr=0.17%, sys=1.41%, ctx=8134, majf=0, minf=10 IO depths : 1=200.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=0,2706,0,0 short=2706,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs): WRITE: bw=722KiB/s (739kB/s), 722KiB/s-722KiB/s (739kB/s-739kB/s), io=10.6MiB (11.1MB), run=15002-15002msec
Disk stats (read/write): sda: ios=0/5758, merge=0/5, ticks=0/23665, in_queue=30845, util=94.00%
NOTE: Pay attention to the 99th percentile latency (clat percentiles) Healthy etcd disks should have p99 < 10ms
Systemctl status etcd-member:● etcd-member.service - etcd server for kubernetes Loaded: loaded (/etc/systemd/system/etcd-member.service; enabled; preset: disabled) Active: active (running) since Wed 2026-07-29 01:27:40 UTC; 1h 18min ago Docs: https://github.com/coreos/etcd Main PID: 1927 (etcd-member-wra) Tasks: 17 (limit: 204894) Memory: 121.7M (peak: 133.5M) CPU: 1min 9.639s CGroup: /system.slice/etcd-member.service ├─ 1927 /bin/bash /opt/bin/etcd-member-wrapper.sh ├─ 1928 /opt/bin/etcd └─60311 sleep 10
Jul 29 02:32:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:32:45.049479Z","caller":"mvcc/index.go:194","msg":"compact tree index","revision":8048}Jul 29 02:32:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:32:45.074183Z","caller":"mvcc/kvstore_compaction.go:70","msg":"finished scheduled compaction","compact-revision":8048,"took":"23.934135ms","hash":1757010509,"current-db-size-bytes":11337728,"current-db-size":"11 MB","current-db-size-in-use-bytes":4833280,"current-db-size-in-use":"4.8 MB"}Jul 29 02:32:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:32:45.074238Z","caller":"mvcc/hash.go:157","msg":"storing new hash","hash":1757010509,"revision":8048,"compact-revision":7750}Jul 29 02:37:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:37:45.063095Z","caller":"mvcc/index.go:194","msg":"compact tree index","revision":8465}Jul 29 02:37:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:37:45.133419Z","caller":"mvcc/kvstore_compaction.go:70","msg":"finished scheduled compaction","compact-revision":8465,"took":"69.493344ms","hash":942406775,"current-db-size-bytes":11337728,"current-db-size":"11 MB","current-db-size-in-use-bytes":4464640,"current-db-size-in-use":"4.5 MB"}Jul 29 02:37:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:37:45.133480Z","caller":"mvcc/hash.go:157","msg":"storing new hash","hash":942406775,"revision":8465,"compact-revision":8048}Jul 29 02:42:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:42:45.076782Z","caller":"mvcc/index.go:194","msg":"compact tree index","revision":8769}Jul 29 02:42:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:42:45.106096Z","caller":"mvcc/kvstore_compaction.go:70","msg":"finished scheduled compaction","compact-revision":8769,"took":"28.595158ms","hash":696184126,"current-db-size-bytes":11337728,"current-db-size":"11 MB","current-db-size-in-use-bytes":4640768,"current-db-size-in-use":"4.6 MB"}Jul 29 02:42:45 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:42:45.106156Z","caller":"mvcc/hash.go:157","msg":"storing new hash","hash":696184126,"revision":8769,"compact-revision":8465}Jul 29 02:46:13 ce0179-exp-01 etcd-member-wrapper.sh[1928]: {"level":"info","ts":"2026-07-29T02:46:13.681521Z","caller":"traceutil/trace.go:172","msg":"trace[669642079] transaction","detail":"{read_only:false; response_revision:9395; number_of_response:1; }","duration":"126.62976ms","start":"2026-07-29T02:46:13.554875Z","end":"2026-07-29T02:46:13.681505Z","steps":["trace[669642079] 'process raft request' (duration: 126.508857ms)"],"step_count":1}Lendo a saída: o ulimit de arquivos abertos comparado à contagem de descritores é o par que um engenheiro de suporte
solicita quando se suspeita que o etcd está esgotando seu limite, e os percentis clat são o
objetivo do benchmark. O util=94.00% na linha de estatísticas de disco indica o quão ocupado o dispositivo estava
durante o teste — não é um indicador de quanto o sistema de arquivos está cheio, e os dois são fáceis de confundir.
Os dois que nunca foram executados
Seção intitulada “Os dois que nunca foram executados”systemctl-restart-NetworkManager e systemctl-start-crio-prune estão documentados pelo nome e
não possuem saída capturada.
execcli systemctl-restart-NetworkManagerexeccli systemctl-start-crio-pruneReiniciar o NetworkManager interrompe a rede do nó, e o serviço de limpeza exclui
imagens de contêiner. Ambos alteram o nó, portanto nenhum foi executado — nem mesmo em um descartável.