Czym jest Gateway API w Kubernetes?¶
Jest to oficjalny projekt stworzony przez Kubernetes do zarządzania ruchem (routowania) na warstwie 4 (transportowej) oraz 7 (aplikacji).
Zapewnia on obsługę ruchu typu: HTTP(S), TCP, UDP, GRPC, itd... W przeciwieństwie do Ingressa zapewnia on większą rozszerzalność oraz zdefiniowany standard dla każdego z Controllerów (np. nginx-gateway-controller).
Jest to oficjalny standard do definicji Ingressa, LoadBalancingu oraz Service Mesh API.
Zapewnia on dobry podział na teamy, kto za dany zasób jest odpowiedzialny.
Podział GatewayAPI¶
GatewayClass¶
Jest to definicja kontrolera obsługującego wchodzący ruch, mówimy, że ten Gateway będzie obsługiwany przez ten konkretny kontroler. Tworzony jest przez Cluster Admina
Zawiera tylko informację o kontrolerze, brak innych szczegółów.
Odpowiednik IngressClass.
W skrócie: określa jaki kontroler będzie wykorzystany
Gateway¶
To definicja na którym porcie, na jakim protokole następuje nasłuchiwanie, jak następuje wejście do klastra. Gateway definiuje: - port - protokół - obsługę TLS - jak attachowane są route'y
Tworzony jest jako podział na Platform/Infra team.
W skrócie: wystawia porty i protokoły.
Routes¶
Odpowiada na pytanie, jak ruch ma być kierowany, przypomina trochę Ingress.
Istnieją różne typy Routes:
| Typ | Protokół |
|---|---|
HTTPRoute |
HTTP / HTTPS |
TCPRoute |
TCP |
UDPRoute |
UDP |
TLSRoute |
TLS passthrough |
| W skrócie: definiuje reguły ruchu (HTTP/TCP/UDP). |