Am câteva VM (care funcționează ca server web) în spatele unui grup de instanțe pe GCloud-ul meu.
Ca de obicei întreținerea am actualizat (apt dist-upgrade
) "vm-source-image" mea, a creat un nou șablon și adaugă-l în grupul meu.
Noii membri care folosesc acest șablon nu primesc niciodată nicio cerere de lucru reală de la echilibrator de încărcare și este în funcțiune dar şomerii.
Patch temporar
Fac doar o actualizare parțială (the cele de securitate) de:
sudo nesupravegheat-upgrade -d
Iată lista pachetelor rămase care creează problema:
Lista de # apt --upgradable
cloud-init/bionic-updates 21.3-1-g6803368d-0ubuntu1~18.04.4 toate [upgradabil de la: 21.2-3-g899bfaa9-0ubuntu2~18.04.1]
dnsmasq-base/bionic-updates 2.79-1ubuntu0.5 amd64 [actualizat de la: 2.79-1ubuntu0.4]
gce-compute-image-packages/bionic-updates 20210629.00-0ubuntu1~18.04.0 toate [upgradabil de la: 20201222.00-0ubuntu2~18.04.0]
google-compute-engine/bionic-updates 20210629.00-0ubuntu1~18.04.0 toate [upgradabil de la: 20201222.00-0ubuntu2~18.04.0]
google-compute-engine-oslogin/bionic-updates 20210728.00-0ubuntu1~18.04.0 amd64 [actualizat de la: 20210429.00-0ubuntu1~18.04.0]
google-guest-agent/bionic-updates 20210629.00-0ubuntu1~18.04.1 amd64 [upgradabil de la: 20210414.00-0ubuntu1~18.04.0]
libgnutls30/bionic-updates 3.5.18-1ubuntu1.5 amd64 [actualizat de la: 3.5.18-1ubuntu1.4]
libnetplan0/bionic-updates 0.99-0ubuntu3~18.04.5 amd64 [actualizat de la: 0.99-0ubuntu3~18.04.4]
libpcre2-8-0/bionic 10.39-1+ubuntu18.04.1+deb.sury.org+1 amd64 [upgradabil de la: 10.36-2+ubuntu18.04.1+deb.sury.org+2]
netplan.io/bionic-updates 0.99-0ubuntu3~18.04.5 amd64 [upgradabil de la: 0.99-0ubuntu3~18.04.4]
nplan/bionic-updates 0.99-0ubuntu3~18.04.5 toate [upgradabil de la: 0.99-0ubuntu3~18.04.4]
snapd/bionic-updates 2.51.1+18.04 amd64 [actualizat de la: 2.49.2+18.04]
ubuntu-advantage-tools/bionic-updates 27.3~18.04.1 amd64 [actualizat de la: 27.2.2~18.04.1]
O SOLUȚIE ADEVĂRATĂ
Deoarece nu am niciun pachet „personalizat” pe mașină și originea acestei probleme vine de la o actualizare a sistemului, nu văd nicio soluție, cu excepția semnalării problemei prin această postare.
Desigur, monitorizez noile actualizări în speranța că o nouă versiune a acestor pachete rezolvă problema, dar este posibil să nu existe opțiuni mai bune?
Mai multe informatii
- Grupul este backend-ul unui „echilibrator de încărcare TCP intern”.
- Adresa IP frontală a echilibratorului de încărcare este 10.0.0.116
- Adresa IP veche (și funcțională) a membrului este 10.0.0.48 (se pot vedea jurnalele)
- Adresa IP a noului membru (și șomerului) este 10.0.0.54 (se pot vedea jurnalele)
- Echilibratorul de încărcare are o simplă verificare de sănătate HTTP cunoscută ca HTTPHC1.
- Grupul de instanțe are o altă verificare simplă a sănătății HTTP cunoscută ca HTTPHC2.
Compararea jurnalului de acces al unui membru vechi (și funcțional) cu cel nou:
Jurnalul unui vechi membru VM
35.191.1.148 „/” - - - [04/Nov/2021:10:34:59 +0000] 10.0.0.48 „GET /?id=HTTPHC2 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.144 „/” - - - [04/Nov/2021:10:35:00 +0000] 10.0.0.48 „GET /?id=HTTPHC2 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.154 „/” - - - [04/Nov/2021:10:35:00 +0000] 10.0.0.48 „GET /?id=HTTPHC2 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.147 „/” - - - [04/Nov/2021:10:35:01 +0000] 10.0.0.48 „GET /?id=HTTPHC1 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.145 „/” - - - [04/Nov/2021:10:35:01 +0000] 10.0.0.48 „GET /?id=HTTPHC1 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.151 „/” - - - [04/Nov/2021:10:35:02 +0000] 10.0.0.48 „GET /?id=HTTPHC1 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.153 „/” - - - [04/Nov/2021:10:35:02 +0000] 10.0.0.48 „GET /?id=HTTPHC1 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
Jurnalul unui nou membru VM
35.191.1.152 „/” - - - [04/Nov/2021:10:31:01 +0000] 10.0.0.54 „GET /?id=HTTPHC2 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.154 „/” - - - [04/Nov/2021:10:31:02 +0000] 10.0.0.54 „GET /?id=HTTPHC2 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
35.191.1.148 „/” - - - [04/Nov/2021:10:31:02 +0000] 10.0.0.54 „GET /?id=HTTPHC2 HTTP/1.1” 200 612 „-” „GoogleHC/1.0”
Diferența arată lipsa buștenilor de HTTPHC1.
Deci noul nou nu răspunde la verificarea de sănătate a load-balancer (HTTPHC1) și nu primește solicitări și asta este problema.
Alte defecțiuni
Noua mașină este, de asemenea, inaccesibilă prin browser-window-SSH
ADAUGĂ tcpdump
Între HTTPHC1 verificator de sănătate și membru șomer:
# tcpdump -n gazdă 35.191.1.151
tcpdump: ieșirea verbosă a fost suprimată, utilizați -v sau -vv pentru decodarea completă a protocolului
ascultare pe ens4, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
11:30:35.109469 IP 35.191.1.151.61838 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
11:30:36.119470 IP 35.191.1.151.61838 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
11:30:38.167436 IP 35.191.1.151.61838 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
11:30:40.110784 IP 35.191.1.151.59900 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
11:30:41.111176 IP 35.191.1.151.59900 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
11:30:43.159164 IP 35.191.1.151.59900 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
11:30:45.112162 IP 35.191.1.151.36064 > 10.0.0.116.80: steaguri [S], win 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
Rețineți că destinația este IP-ul frontal al echilibrului de încărcare: 10.0.0.116 și, desigur, sunt doar pachete de sincronizare.
Între HTTPHC2 verificator de sănătate și membru șomer:
# tcpdump -n gazdă 35.191.1.148
tcpdump: ieșirea verbosă a fost suprimată, utilizați -v sau -vv pentru decodarea completă a protocolului
ascultare pe ens4, tip link EN10MB (Ethernet), dimensiunea capturii 262144 octeți
10:46:12.475724 IP 35.191.1.148.64638 > 10.0.0.54.80: steaguri [S], câștig 65535, opțiuni [mss 1420,sackOK,TS ecr 0,nop,wscale 08]
10:46:12.475788 IP 10.0.0.54.80 > 35.191.1.148.64638: steaguri [S.], câștig 64768, opțiuni [mss 1420,sackOK,TS,nop,wscale 7], lungime 0
10:46:12.476239 IP 35.191.1.148.64638 > 10.0.0.54.80: steaguri [.], confirmare 1, câștig 256, opțiuni [nop,nop,TS], lungime 0
10:46:12.476239 IP 35.191.1.148.64638 > 10.0.0.54.80: Flags [P.], seq 1:117, ack 1, win 256, options [nop,nop,TS], lungime 116: HTTP: /?id=HTTPHC2 HTTP/1.1
10:46:12.476301 IP 10.0.0.54.80 > 35.191.1.148.64638: Flags [.], ack 117, win 506, options [nop,nop,TS], lungime 0
10:46:12.476546 IP 10.0.0.54.80 > 35.191.1.148.64638: Flags [P.], seq 1:867, ack 117, win 506, options [nop,nop,TS]: HTTP: HTTP 866 /1,1 200 OK
10:46:12.476659 IP 35.191.1.148.64638 > 10.0.0.54.80: Flags [.], ack 867, win 267, options [nop,nop,TS], lungime 0
10:46:12.476679 IP 35.191.1.148.64638 > 10.0.0.54.80: Flags [F.], secv 117, ack 867, win 267, options [nop,nop,TS], lungime 0
10:46:12.476707 IP 10.0.0.54.80 > 35.191.1.148.64638: Flags [F.], secv 867, ack 118, win 506, options [nop,nop,TS], lungime 0
10:46:12.476879 IP 35.191.1.148.64638 > 10.0.0.54.80: Flags [.], ack 868, win 267, options [nop,nop,TS], lungime 0
Aici totul este bine.
ADAUGĂ 2021-11-16
După câteva cercetări, am găsit un alias IP lipsă în local tabel, nu este surprinzător să văd că aceasta este adresa IP a echilibrului de încărcare frontală, vizibilă ca gazdă DST în tcpdump
!
Aici mașina de lucru:
# ip route show dev ens4 table local
local 10.0.0.48 proto kernel scope host src 10.0.0.48
gazdă locală 10.0.0.116 proto 66
# uname -r
5.4.0-1056-gcp
Și aici mașina complet actualizată:
# ip route show dev ens4 table local
local 10.0.0.54 proto kernel scope host src 10.0.0.54
# uname -r
5.4.0-1057-gcp
ADAUGĂ 2021-11-20
Acum a devenit o problemă cunoscută: [Rețea în cloud] Problemă potențială cu serviciul: Investigare
Echilibratoarele de încărcare proxy Google Cloud Global TCP ar putea să nu poată fi difuzate
trafic peste regulile de redirecționare configurate cu IP-uri în 34.111.0.0/17
gamă. O remediere permanentă pentru intervalul IP este în curs