Jak używać balansu obciążenia Kubernetes?

Jak używać balansu obciążenia Kubernetes?
Równoważenie obciążenia ma kluczowe znaczenie dla utrzymywania funkcjonowania i bezpieczeństwa klastrów Kubernetes na dużą skalę. Podczas gdy wielu równowagi obciążenia jest niezwykle skuteczne w kontrolowaniu wielu z tych obaw, bardzo ważne jest poprawne skonfigurowanie środowiska Kubernetes, aby jak najlepiej wykorzystać usługi, które zapewniają te wyważające wyniki obciążenia. Ten artykuł zagłębia się w ten temat.

Co to jest równoważenie obciążenia Kubernetes?

Rabancy obciążeni dystrybuują przychodzący ruch na grupie hostów, aby zagwarantować optymalne obciążenia i wysoką dostępność. Ze względu na jego podstawowy projekt, rozproszona architektura Kubernetes Cluster opiera się na wielu przypadkach usług, co stanowi wyzwania przy braku odpowiedniego przydziału obciążenia.

Balancer obciążenia jest kontrolerem ruchu, który prowadzi żądania klienta do węzłów, które mogą do nich serwować niezwłocznie i wydajnie. Balancer obciążenia redystrybuuje obciążenie pracą przez pozostałe węzły, gdy jeden z hostów zawiedzie. Z drugiej strony, gdy nowy węzeł wchodzi do klastra, usługa automatycznie zaczyna wysyłać żądania do powiązanych z nim kapsuł.

Usługa równoważenia obciążenia w klastrze Kubernetes wykonuje następujące czynności:

  • Dystrybucja obciążeń sieciowych i żądań serwisowych w wielu przypadkach w opłacalny sposób
  • Umożliwianie autyspalizacji w odpowiedzi na fluktuacje popytu.

Jak dodać równoważenie obciążenia do klastra Kubernetes?

Balancer obciążenia można dodać do klastra Kubernetes na dwa sposoby:

Za pomocą pliku konfiguracyjnego:
Balancer obciążenia jest włączony, określając LoadBalancer w polu typu pliku konfiguracji usługi. Dostawca usług w chmurze zarządza i prowadzi ten równoważenie obciążenia, który wysyła ruch do zasad zaplecza. Plik konfiguracji usługi powinien przypominać następujące czynności:

APIVERSION: V1
rodzaj: serwis
metadane:
Nazwa: nowa obsługa
Spec:
selektor:
Aplikacja: NEWAPP
Porty:
- Port: 5678
Targetport: 8456
Typ: LoadBalancer

Użytkownicy mogą być w stanie przypisać adres IP do balansu obciążenia w zależności od dostawcy chmur. Do skonfigurowania tego można użyć tagu LoadBalanCerip, który można użyć. Jeśli użytkownik nie podaje adresu IP, równoważenie obciążenia jest przydzielone efemerycznym adresie IP. Jeśli użytkownik określa adres IP, którego dostawca w chmurze nie obsługuje, jest pominięty.

.status.Należy użyć właściwości LoadBalancer, jeśli użytkownik chce dodać więcej informacji do usługi balansu obciążenia. Zobacz poniższy obraz, aby ustawić adres IP INGRESS.

status:
LOADBALANCER:
ingres:
- IP: 192.154.0.1

Za pomocą Kubectl:
-Type = loadBalancer: Parametr może być również użyty do konstruowania modułu równoważenia obciążenia za pomocą polecenia Kubectl Expose.

$ Kubectl Expose Po new --port = 5678--cel-port = 8456 \
--name = new-serviceone-Type = loadbalancer

Powyższe polecenie tworzy nową usługę i łączy nowy POD z określonym portem.

Czym jest zbieranie bilansów obciążenia?

Po zniszczeniu usługi typu loadbalancer, powiązane zasoby równoważenia obciążenia w dostawcy chmury powinny zostać jak najszybciej wyczyszczone. Jednak dobrze wiadomo, że zasoby w chmurze mogą zostać osierocone, jeśli powiązana usługa zostanie usunięta w różnych sytuacjach. Aby temu zapobiec, opracowano ochronę finalizatora dla serwisu Balalancers.

Jeśli usługa jest typu loadBalancer, kontroler usług doda finalizator o nazwie usługa.Kubernetes.IO/LOAD-BALANCER CLEARUP. Finalizator zostanie wymazany po wyczyszczeniu zasobu równoważenia obciążenia. Nawet w skrajnych przypadkach, na przykład gdy kontroler serwisowy zawiesza.

Różne sposoby konfigurowania równoważenia obciążenia w Kubernetes

W celu obsługi ruchu zewnętrznego do POD, dostępne są metody równoważenia i algorytmów obciążenia Kubernetes.

Round Robin
Okrągłe podejście Robin rozpowszechnia nowe połączenia z wykwalifikowanymi serwerami w kolejności sekwencyjnej. Ta technika jest statyczna, co oznacza, że ​​nie bierze pod uwagę określonych prędkości serwera lub obaw związanych z wydajnością, dlatego powolny serwer i serwer lepiej wydajny otrzymają tę samą liczbę połączeń. W rezultacie okrągłe równoważenie obciążenia Robin nie zawsze jest najlepszym wyborem dla ruchu produkcyjnego i lepiej nadaje się do prostych testów obciążenia.

Round Robin Kube-Proxy L4
Kube-Proxy zbiera i prowadzi wszystkie żądania dostarczone do usługi Kubernetes.

Ponieważ jest to proces, a nie proxy, używa wirtualnego adresu IP dla usługi. Następnie dodaje architekturę, a także złożoność routingu. Każde żądanie zwiększa opóźnienie, a problem pogarsza się wraz ze wzrostem liczby usług.

L7 Round Robin
Czasami routing ruchu bezpośrednio do PODSUNE Unikaj kube-proxy. Można to osiągnąć dzięki bramie Kubernetes API, która wykorzystuje proxy L7 do obsługi żądań wśród dostępnych kapsuł Kubernetes.

Spójny hasztom/hasz
Balancer obciążenia Kubernetes używa skrótu na podstawie zdefiniowanego klucza do rozpowszechniania nowych połączeń na serwerach za pomocą spójnych technik mieszania. Ta strategia jest najlepsza do obsługi dużych serwerów pamięci podręcznej z dynamiczną zawartością.

Ponieważ kompletna tabela skrótów nie musi być ponownie obliczana za każdym razem, gdy serwer jest dodawany lub wycofany, takie podejście jest spójne.

Najmniej serwerów
Zamiast alokować wszystkie żądania wśród wszystkich serwerów, technika najmniejszej liczby serwerów klasyfikuje najmniejszą ilość serwerów, aby spełnić obecne obciążenie klienta. Nadmierne serwery można na razie odrzucić lub usunąć.

Ta technika działa poprzez śledzenie zmian w opóźnieniu odpowiedzi, gdy obciążenie zmienia się w zależności od serwera.

Najmniej połączenia
Ten algorytm równoważenia obciążenia w Kubernetes prowadzi żądania klienta do serwera aplikacji z najmniejszą aktywnymi połączeniami w momencie żądania. Ta metoda wykorzystuje aktywne obciążenie połączenia z kontem, ponieważ serwer aplikacji może być przeciążony ze względu na dłuższe połączenia, jeśli serwery aplikacji mają równe wymagania.

Wniosek

Ten artykuł miał na celu zapewnienie czytelnikom kompleksowego zrozumienia równoważenia obciążenia Kubernetes, obejmującego jego architekturę i liczne metody udostępniania klastra Kubernetes. Równoważenie obciążenia jest ważną częścią uruchamiania skutecznego klastra Kubernetes i jest jednym z głównych zadań administratora Kubernetes. Zadania mogą być skutecznie zaplanowane na strąkach i węzłach klastrów za pomocą optymalnie dostarczonego balansu obciążenia, umożliwiając wysoką dostępność, szybkie odzyskiwanie i niskie opóźnienia dla aplikacji kontenerowych działających na Kubernetes.