Automatizační platforma Dell: Kontejnery založené na Javě "OOMKilled" počínaje jádrem 6.12

Summary: Kontejnerizované aplikace založené na jazyce Java (například Keycloak) mohou při spuštění v jádře Linux Kernel 6.12 nebo novějším zaznamenat neočekávané ukončení kvůli chybám OOM (nedostatek paměti). Tento problém pramení ze změn v tom, jak jádro zveřejňuje limity paměti "cgroup". Tyto změny mají vliv na schopnost prostředí Java Virtual Machine (JVM) správně detekovat a respektovat omezení paměti kontejneru. ...

Acest articol se aplică pentru Acest articol nu se aplică pentru Acest articol nu este legat de un produs specific. Acest articol nu acoperă toate versiunile de produs existente.

Symptoms

V případě automatizační platformy Dell NativeEdge keycloak je stále více OOMKilled během inicializace. Může k tomu dojít například během instalace kormidla, kdy keycloak Pod se blíží.

Protokoly uvnitř keycloak Ukončit:

Appending additional Java properties to JAVA_OPTS
Changes detected in configuration. Updating the server image.
Updating the configuration and installing your custom providers, if any. Please wait.

Popis kontejneru zobrazuje:

State: Waiting
  Reason: CrashLoopBackOff
Last State: Terminated
  Reason: OOMKilled

V jiných prostředích to může být:

  • Systém ukončí kontejnery Java (například keycloak, Kafka, Elasticsearch) s OOMKilled stav.
  • Prostředí JVM hlásí neočekávaně vysoké odhady velikosti haldy, které často odpovídají paměti hostitele, nikoli limitům kontejnerů.
  • Příznaky ladění paměti jako -XX:MaxRAMPercentage se jeví jako neúčinné.
  • V protokolech se mohou zobrazovat zprávy jako:
    • [debug][os,container] controller memory is not enabled
    • [debug][os,container] One or more required controllers disabled at kernel level

Cause

Počínaje linuxovým jádrem 6.12 již jádro nezpřístupňuje cgroup Informace o řadiči podle /proc/cgroups, na který se JVM dříve spoléhal při zjišťování limitů paměti kontejneru. Tato změna přeruší rozpoznávání kontejnerů v ovlivněných verzích prostředí JVM, což způsobí, že budou předpokládat, že mají přístup k úplné paměti hostitele. V důsledku toho JVM přiděluje více paměti, než umožňuje kontejner, a aktivuje tak proces jádra OOMkiller.

V opensourcových projektech existuje několik problémů:

Systém Ubuntu 24.04.3 ve výchozím nastavení nepoužívá jádro 6.12. Některé image jsou ale aktualizované už na verze 6.12, 6.13, 6.14 (například v knihovně imagí AWS).

Resolution

Existují dvě možná rychlá zástupná řešení.

  • Dočasně zvyšte limity paměti pro kontejner. Zde jsou například kroky, jak pokračovat v instalaci automatizační platformy Dell Automation Platform, která zdvojnásobí limit paměti pro keycloak kontejner.
Chcete-li tak učinit, musíte spustit následující příkaz (zkontrolujte jmenný prostor nástroje Orchestrator, například níže: dapo je výchozí obor názvů nástroje Orchestrator:
kubectl edit sts keycloak -n dapo
Najděte limity paměti a požadavky a zdvojnásobte je. keycloak V přípravném kroku spotřebovává velké množství paměti. Toto zvýšení nám umožnilo projít tímto inicializačním krokem.
  • Explicitní nastavení limitů paměti JVM

K ručnímu omezení využití paměti použijte příznaky při spuštění:

extraEnvVars:
  - name: JAVA_OPTS_KC_HEAP
    value: "-XX:MaxRAMPercentage=70 -XX:MinRAMPercentage=70 -XX:InitialRAMPercentage=50 -XX:MaxRAM=1G"

Produse afectate

Dell Automation Platform, NativeEdge Solutions, Dell Automation Platform Components, NativeEdge
Proprietăți articol
Article Number: 000369678
Article Type: Solution
Ultima modificare: 16 Oct 2025
Version:  2
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.