0Pricing
Kubernetes Basics · Lekcja

Żądania zasobów i limity

Definiuj żądania zasobów CPU i pamięci oraz ich limity dla Podów, aby zapewnić efektywny przydział zasobów i zapobiegać ich wyczerpaniu.

Żądania zasobów i limity to bezpłatna lekcja Kubernetes Basics na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kubernetes Basics, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.

Zapotrzebowanie na zasoby w Kubernetes

Tak jak każda aplikacja, Pody potrzebują zasobów do działania. Kubernetes pomaga efektywnie nimi zarządzać za pomocą żądań zasobów i limitów zasobów.

Ustawienia te informują Kubernetes, ile procesora i pamięci potrzebują Pody oraz ile mogą maksymalnie wykorzystać, zapewniając sprawiedliwy podział zasobów.

Żądania CPU: gwarantowanie procesora

Żądanie CPU informuje Kubernetes o minimalnej ilości procesora potrzebnej Podowi do komfortowego działania. To gwarancja!

  • Kubernetes używa żądań do planowania Podów na węzłach z wystarczającą ilością dostępnych zasobów.
  • Jeśli węzeł nie ma wystarczającej ilości CPU na spełnienie żądania, Pod nie zostanie na nim zaplanowany.
  • Pomaga to zapobiegać wyczerpywaniu zasobów potrzebnych aplikacjom o kluczowym znaczeniu.

Jednostki CPU i przykład żądania

CPU mierzy się w „rdzeniach” lub „millicores” (m). 1000m odpowiada 1 rdzeniowi CPU. Zatem 500m to połowa rdzenia.

Oto sposób zażądania 0,5 rdzenia CPU w definicji Poda:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "500m"

Limity CPU: zapobieganie nadmiernemu użyciu

Limit CPU określa maksymalną ilość procesora, jaką może wykorzystać Pod. To górne ograniczenie.

  • Jeśli Pod spróbuje użyć większej ilości CPU niż określona w limicie, Kubernetes go ograniczy.
  • Oznacza to, że użycie CPU przez Poda zostanie ograniczone, co zapobiegnie przejęciu zasobów innych Podów na tym samym węźle.

Limit CPU w praktyce

Oto przykład ustawienia limitu CPU. Jeśli ten Pod spróbuje użyć więcej niż 1 rdzenia CPU, zostanie ograniczony, co oznacza spadek jego wydajności.

apiVersion: v1
kind: Pod
metadata:
  name: cpu-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        cpu: "1"

Żądania pamięci: gwarantowanie RAM

Podobnie jak CPU, żądanie pamięci określa minimalną ilość pamięci RAM potrzebną Podowi do działania.

  • Kubernetes używa tej wartości, aby znaleźć węzeł z wystarczającą ilością wolnej pamięci dla Poda.
  • Gdy w węźle zabraknie pamięci, Pody bez określonych żądań często są jako pierwsze kończone (usuwane z węzła), aby zwolnić miejsce.

Jednostki pamięci i przykład żądania

Pamięć jest mierzona w bajtach. Typowe jednostki to Mi (mebibajty) i Gi (gibibajty).

100Mi oznacza 100 mebibajtów. Oto jak zażądać 256 MiB pamięci:

apiVersion: v1
kind: Pod
metadata:
  name: mem-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        memory: "256Mi"

Limity pamięci: unikanie OOM

Limit pamięci określa maksymalną ilość pamięci, jaką może zużyć Pod.

  • Jeśli Pod przekroczy limit pamięci, system operacyjny natychmiast go zakończy, zgłaszając błąd „Out Of Memory” (OOM). Często jest to widoczne jako „OOMKilled”.
  • Zapobiega to sytuacji, w której pojedynczy niekontrolowany Pod zużywa całą pamięć węzła i powoduje awarię całego węzła.

Limit pamięci w praktyce

Ten Pod ma limit pamięci wynoszący 512 MiB. Jeśli spróbuje użyć większej ilości, zostanie zakończony (OOMKilled), aby chronić inne obciążenia i węzeł.

apiVersion: v1
kind: Pod
metadata:
  name: mem-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        memory: "512Mi"

Dobre praktyki: żądania i limity

Dobrą praktyką jest definiowanie zarówno żądań, jak i limitów dla wszystkich Podów. Zapewnia to stabilność i przewidywalność klastra.

  • Żądania gwarantują Podom minimalne zasoby potrzebne do planowania.
  • Limity zapobiegają pozbawieniu innych Podów i samego węzła dostępu do zasobów.

Oto kompletny przykład:

apiVersion: v1
kind: Pod
metadata:
  name: full-resource-pod
spec:
  containers:
  - name: my-app
    image: my-registry/my-app:1.0
    resources:
      requests:
        cpu: "200m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"

Sprawdzanie zasobów

Zdefiniowano Pod z żądaniem CPU o wartości 200m oraz limitem CPU o wartości 1 (czyli 1000m).

Co się stanie, jeśli ten Pod spróbuje użyć 1.5 rdzenia CPU?

Podsumowanie: zarządzanie zasobami

W tej lekcji omówiliśmy żądania zasobów i limity zasobów w Kubernetes.

  • Żądania (CPU i pamięć) gwarantują minimalne zasoby potrzebne do planowania Podów.
  • Limity (CPU i pamięć) ograniczają maksymalne użycie, aby zapobiegać rywalizacji o zasoby.
  • Przekroczenie limitów CPU prowadzi do ograniczania przepustowości, a przekroczenie limitów pamięci — do zakończenia Poda (OOMKilled).
  • Zawsze definiuj zarówno żądania, jak i limity, aby zapewnić stabilne i przewidywalne działanie aplikacji!

Często zadawane pytania

Czy lekcja „Żądania zasobów i limity” jest bezpłatna?

Tak — pełny tekst „Żądania zasobów i limity” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kubernetes Basics, przejdź na CoddyKit PRO. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.

Co nauczysz się w „Żądania zasobów i limity”?

Definiuj żądania zasobów CPU i pamięci oraz ich limity dla Podów, aby zapewnić efektywny przydział zasobów i zapobiegać ich wyczerpaniu. Ćwiczysz Kubernetes Basics z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kubernetes Basics?

Nie wymagamy żadnego doświadczenia. Kubernetes Basics w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Żądania zasobów i limity”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kubernetes Basics?

Tak. Każda lekcja Kubernetes Basics zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Żądania zasobów i limity
  2. Selektory węzłów i powinowactwo
  3. Skażenia i tolerancje
  4. Priorytet Podów i wywłaszczanie
← Powrót do Kubernetes Basics