0Pricing
DevOps Bootcamp · Lekcja

Ingress i routing zewnętrzny

Udostępniaj wiele usług na zewnątrz przez jeden punkt wejścia, korzystając z zasobów Ingress, routingu na podstawie hosta i ścieżki oraz kontrolera Ingress.

Ingress i routing zewnętrzny to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co dalej po NodePort i LoadBalancer

Obiekt Service może udostępniać aplikację, ale przydzielanie każdej aplikacji osobnego zewnętrznego adresu IP jest kosztowne i szybko prowadzi do bałaganu. Ingress zapewnia jeden inteligentny punkt wejścia HTTP, który kieruje ruch do wielu usług.

Czym jest Ingress?

Ingress to obiekt Kubernetes opisujący reguły routingu HTTP/HTTPS: określa, który host lub ścieżka URL wskazuje na który obiekt Service.

Potrzebny jest kontroler

Obiekt Ingress zawiera tylko reguły. Kontroler Ingress (nginx, Traefik, HAProxy) obserwuje te reguły i faktycznie wykonuje routing. Bez kontrolera nie ma żadnego efektu.

kubectl get pods -n ingress-nginx

Podstawowy Ingress

Ten obiekt Ingress kieruje cały ruch do pojedynczego backendowego obiektu Service na porcie 80.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web
            port:
              number: 80

Routing na podstawie hosta

Dodaj host, aby kierować ruch na podstawie nazwy domeny — api.example.com do jednej usługi, a shop.example.com do innej, korzystając z tego samego adresu IP.

rules:
- host: api.example.com
  http:
    paths:
    - path: /
      pathType: Prefix
      backend:
        service:
          name: api
          port:
            number: 8080

Routing na podstawie ścieżki

Można też kierować ruch na podstawie ścieżki URL w obrębie jednego hosta: /api do usługi API, a / do webowego frontendu.

paths:
- path: /api
  pathType: Prefix
  backend:
    service:
      name: api
      port:
        number: 8080
- path: /
  pathType: Prefix
  backend:
    service:
      name: web
      port:
        number: 80

Kończenie TLS

Ingress może zakończyć połączenie HTTPS za pomocą sekretu TLS, dzięki czemu usługi otrzymują zwykły ruch HTTP, a użytkownicy korzystają z szyfrowania.

spec:
  tls:
  - hosts:
    - shop.example.com
    secretName: shop-tls

Adnotacje dostosowują działanie

Adnotacje specyficzne dla kontrolera konfigurują przepisywanie adresów, limity czasu, limity szybkości i wiele innych ustawień. Są przechowywane w metadanych obiektu Ingress.

metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /

IngressClass

Gdy istnieje wiele kontrolerów, właściwość ingressClassName wskazuje Kubernetes, który z nich powinien obsługiwać ten obiekt Ingress.

spec:
  ingressClassName: nginx

Inspekcja obiektu Ingress

Sprawdź reguły i przypisany adres za pomocą kubectl get ingress, a zdarzenia — za pomocą describe.

kubectl describe ingress web-ingress

Nowoczesna alternatywa: Gateway API

Kubernetes zmierza w kierunku Gateway API — bardziej wyrazistego następcy Ingress. Ingress jest nadal powszechnie używany i stanowi właściwy punkt wyjścia.

Szybkie sprawdzenie

Dlaczego potrzebny jest kontroler Ingress?

Podsumowanie

Można już w przejrzysty sposób udostępniać aplikacje:

  • Ingress definiuje reguły routingu HTTP, a kontroler Ingress je egzekwuje
  • Można kierować ruch na podstawie hosta lub ścieżki przez jeden punkt wejścia
  • Można kończyć połączenia TLS i dostosowywać działanie za pomocą adnotacji
  • ingressClassName wybiera kontroler

Jeden adres IP, wiele usług i inteligentny routing.

Często zadawane pytania

Czy lekcja „Ingress i routing zewnętrzny” jest bezpłatna?

Tak — pełny tekst „Ingress i routing zewnętrzny” 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Ingress i routing zewnętrzny”?

Udostępniaj wiele usług na zewnątrz przez jeden punkt wejścia, korzystając z zasobów Ingress, routingu na podstawie hosta i ścieżki oraz kontrolera Ingress. Ćwiczysz DevOps Bootcamp 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ąć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 4 z 4.

Ile czasu zajmuje lekcja „Ingress i routing zewnętrzny”?

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 DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp 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. Deployments dla aplikacji bezstanowych
  2. Services zapewniające dostęp sieciowy
  3. ConfigMaps i Secrets
  4. Ingress i routing zewnętrzny
← Powrót do DevOps Bootcamp