0Pricing
Kubernetes Basics · Lekcja

Typy Service: ClusterIP, NodePort, LoadBalancer

Poznaj różne sposoby udostępniania usług wewnątrz klastra Kubernetes i poza nim.

Typy Service: ClusterIP, NodePort, LoadBalancer to bezpłatna lekcja Kubernetes Basics na CoddyKit. To lekcja 2 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.

Wymagania dotyczące udostępniania usług

W Kubernetes Pody są efemeryczne i mają dynamiczne adresy IP. Usługi zapewniają aplikacjom stabilny dostęp sieciowy. Jak jednak je udostępnić?

W zależności od tego, czy aplikacja ma być dostępna wewnątrz klastra, czy spoza niego, oraz w jaki sposób ma się to odbywać, Kubernetes oferuje różne typy usług. Przyjrzyjmy się trzem najważniejszym!

ClusterIP: dostęp wewnętrzny

ClusterIP to domyślny typ usługi. Nadaje usłudze stabilny wewnętrzny adres IP, dostępny wyłącznie z wnętrza klastra Kubernetes.

  • Pody mogą docierać do innych Podów za pomocą tych adresów ClusterIP i nazwy usługi.
  • To idealne rozwiązanie dla usług backendowych, które nie wymagają bezpośredniego udostępnienia na zewnątrz.
  • Można traktować je jak wewnętrzny load balancer dla Podów.

YAML usługi ClusterIP

Oto sposób definiowania usługi typu ClusterIP. Zwróć uwagę na pole type: ClusterIP, choć jest ono opcjonalne, ponieważ to typ domyślny.

apiVersion: v1
kind: Service
metadata:
  name: my-internal-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Uzyskiwanie dostępu do usług ClusterIP

Po wdrożeniu Kubernetes automatycznie przypisuje tej usłudze unikalny wewnętrzny adres IP (ClusterIP). Inne Pody mogą następnie używać nazwy usługi (np. my-internal-service) lub jej adresu IP, aby się z nią połączyć.

Usługa DNS Kubernetes tłumaczy nazwę usługi na jej adres ClusterIP, dzięki czemu komunikacja wewnętrzna jest łatwa i niezawodna.

NodePort: dostęp zewnętrzny

Co zrobić, jeśli aplikacja musi być dostępna spoza klastra? Właśnie do tego służy NodePort.

Usługa NodePort udostępnia aplikację na stałym porcie pod adresem IP każdego węzła w klastrze. Każdy ruch wysłany do NodeIP:NodePort jest kierowany do usługi.

  • Przydatne rozwiązanie na etapie tworzenia aplikacji i w małych wdrożeniach.
  • NodePort zwykle mieści się w zakresie 30000–32767.

YAML usługi NodePort

Aby utworzyć usługę NodePort, należy jawnie ustawić type: NodePort. Jeśli nie określisz portu, Kubernetes automatycznie wybierze dostępny port z zakresu NodePort.

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080 # Optional: K8s picks if omitted
  type: NodePort

Łączenie za pomocą NodePort

Po wdrożeniu usługi NodePort możesz uzyskać dostęp do aplikacji spoza klastra, używając adresu <AnyNodeIP>:<NodePort>.

Jeśli na przykład adres IP węzła to 192.168.1.100, a przypisany NodePort to 30080, aplikacja będzie dostępna pod adresem http://192.168.1.100:30080.

LoadBalancer: integracja z chmurą

W środowiskach produkcyjnych u dostawców chmurowych (AWS, GCP, Azure) często preferowany jest typ usługi LoadBalancer. Automatycznie tworzy on zewnętrzny chmurowy load balancer.

Ten load balancer otrzymuje publiczny adres IP i rozdziela ruch zewnętrzny między Pody usługi. Cała złożona logika routingu jest obsługiwana automatycznie.

YAML usługi LoadBalancer

Zdefiniowanie usługi LoadBalancer jest proste. Dostawca chmurowy zajmuje się utworzeniem zewnętrznego load balancera.

apiVersion: v1
kind: Service
metadata:
  name: my-loadbalancer-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

Dostęp zewnętrzny za pomocą LoadBalancer

Po wdrożeniu dostawca chmurowy utworzy dedykowany load balancer i przypisze mu zewnętrzny adres IP lub nazwę hosta. Następnie możesz użyć tego publicznego punktu końcowego, aby uzyskać dostęp do aplikacji.

Zapewnia to solidny, skalowalny i wysoce dostępny sposób udostępniania usług w internecie.

Szybkie sprawdzenie: typy usług

Które typy usług Kubernetes umożliwiają bezpośredni dostęp zewnętrzny do aplikacji spoza klastra?

Podsumowanie: wybór usługi

Poznałeś trzy główne typy usług Kubernetes:

  • ClusterIP: Dostęp wyłącznie wewnątrz klastra.
  • NodePort: Udostępnia usługi na stałym porcie pod adresem IP każdego węzła, umożliwiając dostęp zewnętrzny.
  • LoadBalancer: Integruje się z dostawcami chmurowymi, aby utworzyć zewnętrzny load balancer z publicznym adresem IP.

Wybierz właściwy typ na podstawie wymagań aplikacji dotyczących udostępniania oraz środowiska wdrożeniowego!

Często zadawane pytania

Czy lekcja „Typy Service: ClusterIP, NodePort, LoadBalancer” jest bezpłatna?

Tak — pełny tekst „Typy Service: ClusterIP, NodePort, LoadBalancer” 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 „Typy Service: ClusterIP, NodePort, LoadBalancer”?

Poznaj różne sposoby udostępniania usług wewnątrz klastra Kubernetes i poza nim. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Typy Service: ClusterIP, NodePort, LoadBalancer”?

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. Udostępnianie aplikacji za pomocą Services
  2. Typy Service: ClusterIP, NodePort, LoadBalancer
  3. Ingress zapewniający dostęp zewnętrzny
  4. DNS i wykrywanie usług
← Powrót do Kubernetes Basics