DPC 19.10-opgradering viser brugergrænsefladen "Kunne ikke oprette forbindelse til localhost"
Summary: Efter opgradering til DPC 19.10 viser DPC-brugergrænsefladen "Kunne ikke oprette forbindelse til localhost/127.0.0.1:8143".
Symptoms
Efter opgradering til DPC 19.10 kan du ikke få adgang til DPC-brugergrænsefladen.
Når du kontrollerer filen /var/log/dpc/elg/elg.log, vises følgende fejl:
2024-05-09 13:34:54,911 DEBUG reactor-http-epoll-4 c.d.i.i.k.c.IAMCliRunner Received error during execution: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:8143; nested exception is io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:8143
Kørsel af docker ps kommando vise, at Keycloak-beholderen har 'EXITED':
/data01/docker/volumes/keycloak-postgres-db/_data # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 05dd8ebc74e8 dpd/dpc/iam-service:latest "java -cp iam:iam/li…" 52 minutes ago Up 48 minutes 127.0.0.1:8870->8870/tcp, ::1:8870->8870/tcp iam-service 34a6b3c4c5c4 dpd/dpc/dp-keycloak:2.3.0-2 "/opt/keycloak/bin/k…" 52 minutes ago Exited (127) 10 minutes ago iam-provider df560f07da93 dpd/dpc/postgres-db:2.3.0-2 "docker-entrypoint.s…" 52 minutes ago Up 49 minutes (healthy) 5432/tcp postgres-db
Når du kontrollerer docker-logfilerne, får du følgende fejl:
/data01/docker/volumes/keycloak-postgres-db/_data # docker logs --tail 100 34a6b3c4c5c4 Fatal glibc error: CPU does not support x86-64-v2
Cause
Keycloak-versionen, der bruges i DPC 19.10 (Keycloak 21), kræver en CPU-type x86-64-v2 eller derover.
Den VM, der blev bygget til DPC, har ikke den type CPU, så Keycloak-containeren afsluttes og kører ikke.
Resolution
Dette problem kan skyldes et par problemer.
- ESXi-værten understøtter ikke x86-64-v2, og de fleste processorer, der er fremstillet efter 2008, understøtter denne mikroarkitektur.
- VM'en kan være bygget uden denne mikroarkitekturunderstøttelse.
Du kan løse dette problem ved at finde ud af, om din vært understøtter x86-64-v2.
- Hvis det er tilfældet, kan du udrulle en ny VM med den pågældende mikroarkitektur konfigureret og derefter udrulle DPC på den pågældende VM.
- Hvis den ikke understøtter den, skal du finde en vært, der understøtter denne mikroarkitektur, og flytte DPC VM'en til den pågældende vært.
Hvis du vil kontrollere, om din VM understøtter dette, skal du oprette et cpuinfo.sh script på Linux VM med følgende:
#!/usr/bin/awk -f
BEGIN {
while (!/flags/) if (getline < "/proc/cpuinfo" != 1) exit 1
if (/lm/&&/cmov/&&/cx8/&&/fpu/&&/fxsr/&&/mmx/&&/syscall/&&/sse2/) level = 1
if (level == 1 && /cx16/&&/lahf/&&/popcnt/&&/sse4_1/&&/sse4_2/&&/ssse3/) level = 2
if (level == 2 && /avx/&&/avx2/&&/bmi1/&&/bmi2/&&/f16c/&&/fma/&&/abm/&&/movbe/&&/xsave/) level = 3
if (level == 3 && /avx512f/&&/avx512bw/&&/avx512cd/&&/avx512dq/&&/avx512vl/) level = 4
if (level > 0) { print "CPU supports x86-64-v" level; exit level + 1 }
exit 1
}
Derefter chmod +x denne scriptfil, og kør den derefter med følgende kommando:
./cpuinfo.sh
Hvis du får følgende output, understøttes det:
./cpu-type.sh CPU supports x86-64-v2