Puncte:1

Setarea limitelor de resurse pe kube-apiserver

drapel vn
rvs

Managementul resurselor pentru capsule și containere descrie modul de setare a cererilor de resurse și a limitelor pentru podurile „obișnuite” în Kubernetes. Există o modalitate acceptată/recomandată de a seta aceste limite pentru componentele planului de control, cum ar fi kube-apiserver?

Lucruri pe care le-am considerat:

  • Modificarea manifestelor statice, de ex. în /etc/kubernetes/manifests/kube-apiserver.yaml. Acest lucru ar putea funcționa, dar va fi suprascris de kubeadm în timpul următorului upgrade.
  • Setare kube-rezervat sau sistem rezervat steaguri. Totuși, acest lucru ar putea funcționa și din nou - sunt definite într-o singură ConfigMap (de ex. kubelet-config-1.21) și va fi suprascris de kubeadm în timpul actualizării nodului. Aceleași limite se vor aplica nodurilor planului de control și nodurilor lucrătoare și nu vreau asta.

Pot depăși acest lucru cu ceva de genul ansible, dar apoi ansible va fi „fiting” cu kubeadm și aș dori să evit asta.

Ce problemă încerc să rezolv?

Am o mică instalare homelab kubernetes. Aș dori să permit rularea podurilor obișnuite pe nodurile planului de control, dar aș dori să pot rezerva unele resurse (în primul rând memorie) pentru componentele planului de control. i.e. Aș dori să pot seta cereri pe lucruri precum kube-apiserver, astfel încât planificatorul să știe să nu pună alte capsule (vor avea, de asemenea, cereri) in locul lui.

Mikołaj Głodziak avatar
drapel id
Cum anume ți-ai configurat clusterul? Ce înseamnă „Am o mică instalare homelab kubernetes.”? Ai folosit Minikube?
rvs avatar
drapel vn
rvs
@MikoÅajGÅodziak nu, cluster „regulat” pe 3 noduri construite de kubeadm.
Puncte:1
drapel id

Există o modalitate acceptată/recomandată de a seta aceste limite pentru componentele planului de control, cum ar fi kube-apiserver?

Da, poți folosi kubeadm init cu petice steag linie de comandă. Uita-te la această pagină github. The documentație de chestia asta ar putea fi de asemenea interesat. Vezi și documentația oficială: Personalizarea planului de control cu ​​patch-uri:

Kubeadm vă permite să transmiteți un director cu fișiere de corecție InitConfiguration și JoinConfiguration pe noduri individuale. Aceste patch-uri pot fi utilizate ca ultimul pas de personalizare înainte ca manifestele componentei planului de control să fie scrise pe disc.

Puteți transmite acest fișier către kubeadm init cu --config <CONFIG YAML DVS.>:

apiVersion: kubeadm.k8s.io/v1beta3
fel: InitConfiguration
plasturi:
  director: /home/user/somedir

Iată un exemplu despre cum să setați resurse pe kube-apiserver:

Crea kube-apiserver.yaml fișier într-un director (de ex. /home/user/patch-uri) cu următorul cuprins:

specificație:
  containere:
    - nume: kube-apiserver
      resurse:
        cereri:
          memorie: 512 Mi
        limite:
          memorie: 1024Mi

Apoi utilizați --patches flag de fiecare dată în timpul actualizării nodului: use nod de actualizare kubeadm --patches /home/user/patches/ sau se aplică upgrade kubeadm v1.22.4 --patches /home/user/patches/


Cealaltă opțiune va fi furnizarea de steaguri suplimentare pentru componentele planului de control. Pentru aceasta, consultați acest ghid: Personalizarea planului de control cu ​​steaguri în ClusterConfiguration:

Kubeadm ClusterConfiguration obiectul expune o modalitate pentru utilizatori de a suprascrie steagurile implicite transmise componentelor planului de control, cum ar fi APIServer, ControllerManager, Scheduler și Etcd. Componentele sunt definite folosind următoarele structuri:

  • apiServer
  • controllerManager
  • programator
  • etcd
rvs avatar
drapel vn
rvs
Mulțumesc, traseul patch-urilor funcționează. Ți-am actualizat răspunsul cu un exemplu mai specific despre cum am făcut asta. Acum pot folosi ansible pentru a menține diferite fișiere în directorul de patch-uri (dacă este necesar) și nu uitați să folosesc --patches flag când fac init sau upgrade.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.