2015-10-28 22 views
6

Chciałbym, aby liczba rdzeni w moim klastrze GKE była mniejsza niż 3. Staje się to znacznie bardziej realistyczne, jeśli ograniczenia procesorów kontrolerów i modułów replikacji K8 są zmniejszone z 100 do maksymalnie 50 metrów. W przeciwnym razie same kapsułki K8s zajmują 70% jednego rdzenia.Jak zmniejszyć ograniczenia procesora dla zasobów systemu kubernetes?

Zdecydowałem się nie zwiększać mocy procesora w węźle. Byłoby to moim zdaniem pojęciowo błędne, ponieważ limit procesora definiuje się jako mierzony w rdzeniach. Zamiast tego, zrobiłem co następuje:

  • zastępując limitranges/limity w wersji z „50” jako domyślny limit CPU (nie jest to konieczne, ale moim zdaniem czystsze)
  • łatanie cały regulator replikacji w Kube-system nazw używać 50m dla wszystkich kontenerów
  • usuwanie ich pods
  • zastąpienie wszystkich non-RC strąków w przestrzeni nazw Kube-system z wersjami, które używają 50m dla wszystkich kontenerów

jest to dużo pracy i prawdopodobnie kruche. Wszelkie dalsze zmiany w nadchodzących wersjach K8 lub zmiany w konfiguracji GKE mogą je przerwać.

Czy istnieje lepszy sposób?

Odpowiedz

3

Zmiana domyślnego limitu obszaru nazw LimitRange spec.limits.defaultRequest.cpu powinna być uzasadnionym rozwiązaniem w przypadku zmiany domyślnej dla nowych kapsuł. Zwróć uwagę, że obiekty LimitRange mają nazwy, więc jeśli korzystasz z dodatkowych przestrzeni nazw, prawdopodobnie powinieneś pomyśleć o tym, co jest dla nich normalne.

Jak zaznaczysz, nie wpłynie to na istniejące obiekty lub obiekty w przestrzeni nazw systemu Kube.

Obiekty w przestrzeni nazw systemu Kube były w większości wymiarowane empirycznie - na podstawie obserwowanych wartości. Zmiana tych może mieć szkodliwe skutki, ale może nie, jeśli klastra jest bardzo mała.

Mamy otwarty numer (https://github.com/kubernetes/kubernetes/issues/13048), aby dostosować żądania systemu Kube na podstawie całkowitego rozmiaru klastra, ale to nie jest jeszcze zaimplementowane. Mamy kolejny otwarty numer (https://github.com/kubernetes/kubernetes/issues/13695), aby być może użyć niższego QoS dla niektórych zasobów systemu Kube, ale znowu - jeszcze nie zaimplementowany.

Spośród nich, myślę, że # 13048 to właściwy sposób na wdrożenie tego, o co prosisz. Na razie odpowiedź na "jest lepszy sposób" jest niestety "nie". Wybraliśmy domyślne ustawienia dla średnich klastrów - w przypadku bardzo małych klastrów prawdopodobnie musisz robić to, co robisz.