C'è una richiesta di memoria predefinita e \ o limiti per pod \ contenitori in k8s \ openshift?

Jan 24 2021

Ciao amici DevOps,

Sto cercando di capire se è una richiesta di base e \ o un limite per pod \ container in k8s o Openshift come sono oggi o se sei a conoscenza di un cambiamento in futuro in merito.

Ho visto questa risposta: qual è la memoria predefinita allocata per un pod che afferma che non ce n'è, almeno per l'implementazione di Google di k8s e mi piacerebbe saperlo con certezza anche per lo stato attuale di k8s e Openshift nelle distribuzioni in sede.

attualmente esegue il cluster enterprise openshift 3.11.16 e verrà presto trasferito alla 4.6.4, quindi la mia domanda riguarda anche l'implementazione di RedHat della creazione di k8s predefiniti (Openshift).

Esistono richieste di base o valori limite per un container \ pod?

EDIT: C'è anche un modo in cui k8s o openshift potrebbero prevedere la richiesta di memoria del contenitore dal linguaggio di sviluppo dell'applicazione o dalle variabili di ambiente impostate per la distribuzione (come dal comando RUN del contenitore java o env: JVM_OPTS -Xms1G -Xmx1G)?

Risposte

2 VasiliAngapov Jan 24 2021 at 01:15

Per impostazione predefinita non ci sono richieste di risorse o limiti, il che significa che ogni pod viene creato utilizzando BestEffort QoS . Se desideri configurare valori predefiniti per richieste e limiti, dovresti utilizzare LimitRange .

I pod BestEffort per definizione sono "affinché a un pod venga assegnata una classe QoS di BestEffort, i contenitori nel pod non devono avere limiti o richieste di memoria o CPU". I pod BestEffort hanno la priorità più bassa per l'utilità di pianificazione Kubernetes e possono essere rimossi in caso di conflitto di risorse

Tutto quanto detto sopra è vero per tutte le distribuzioni Kubernetes incluso OpenShift.

1 StavBernaz Feb 04 2021 at 05:31

Non esiste un limite o una richiesta predefinita. Per configurare le risorse predefinite è necessario creare una risorsa LimitRange come descritto qui:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

Se desideri che ogni nuovo progetto venga creato con determinati limiti di risorse, puoi modificare il modello di progetto predefinito come descritto qui: https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

Questo non cambia anche nella 4.6, solo l'implementazione di come modificare il LimitRange o il modello di progetto predefinito. (La metodologia è esattamente la stessa)

Per quanto riguarda la tua domanda sulla previsione delle risorse delle applicazioni, ci sono alcuni giocatori attorno a questo problema. Ho solo sentito parlare di turbonomico che può persino modificare automaticamente le risorse di distribuzione tramite l'utilizzo e forse anche alcune metriche personalizzate.