Kubernetesin perusteet · Oppitunti

Ingress ulkoista käyttöä varten

Määrittäkää Ingress hallinnoimaan ulkoista pääsyä Serviceihin sekä HTTP/S-reititystä ja kuormantasausta.

Oppitunti 3/411 vaihetta

Ingress ulkoista käyttöä varten on ilmainen Kubernetesin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kubernetesin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kubernetesin perusteet-kurssilla on yhteensä 4 oppituntia.

NodePortin ja LoadBalancerin jälkeen

Olemme tutustuneet Kubernetesin Service-tyyppeihin, kuten NodePort- ja LoadBalancer-tyyppeihin, joiden avulla sovelluksia voidaan asettaa ulkoisesti käytettäviksi.

Vaikka ne ovat hyödyllisiä, niiden hallinta voi muuttua hankalaksi monimutkaisissa ulkoisen käytön tarpeissa, erityisesti silloin, kun samalla IP-osoitteella täytyy isännöidä useita sovelluksia tai API-rajapintoja erityisten reitityssääntöjen avulla.

Tässä kohtaa Ingress tulee avuksi tehokkaampana ja joustavampana ratkaisuna.

Kubernetes Ingressin esittely

Ingress on Kubernetesin API-objekti, joka hallitsee klusterin Servicen ulkoista käyttöä pääasiassa HTTP- ja HTTPS-liikenteelle.

  • Se toimii ulkoisten pyyntöjen yhtenäisenä sisääntulopisteenä.
  • Se mahdollistaa HTTP/S-reitityksen isäntänimien tai URL-polkujen perusteella.
  • Se voi tarjota myös esimerkiksi SSL/TLS:n päättämisen ja kuormantasauksen.

Ajattele Ingressiä älykkäänä liikenteenohjaajana, joka ohjaa verkkoliikenteen oikeille sisäisille Serviceille.

Ingress Controller

Ingress-resurssi itsessään on vain sääntöjoukko, eikä se käsittele liikennettä suoraan. Jotta Ingress toimii, klusterissa täytyy olla käynnissä Ingress Controller.

Ingress Controller tarkkailee Ingress-resursseja ja määrittää ulkoisen kuormantasaajan tai käänteisvälityspalvelimen määritettyjen sääntöjen mukaisesti.

Suosittuja Ingress Controllereita ovat Nginx, Traefik sekä pilvipalvelukohtaiset ratkaisut, kuten Google Cloudin GCE Ingress tai AWS Load Balancer Controller.

Ingress-sääntöjen toiminta

Ingress määrittää säännöt, jotka yhdistävät saapuvat ulkoiset pyynnöt klusterin tiettyihin taustapalveluihin. Näissä säännöissä määritetään yleensä:

  • Host: Verkkotunnus, kuten www.my-app.com.
  • Path: URL-polku, kuten /api tai /blog.
  • Backend Service: Kubernetesin Service ja portti, johon liikenne välitetään.

Ingress Controller arvioi nämä säännöt jokaisen saapuvan pyynnön kohdalla määrittääkseen oikean kohteen.

Ingress YAML:n laatiminen

Muiden Kubernetes-resurssien tavoin Ingress määritetään YAML-manifestilla. Tässä on perusrakenne, joka havainnollistaa tärkeimmät kentät:

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

Yksinkertainen polkupohjainen Ingress

Luodaan Ingress-resurssi, joka reitittää kaikki myapp.example.com-osoitteen juuripolun (/) liikenteen portissa 80 olevalle Servicelle nimeltä my-web-service.

Varmista ennen tämän Ingressin käyttöönottoa, että klusterissasi on käynnissä Deployment ja Service nimeltä my-web-service.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: basic-app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-web-service
            port:
              number: 80

Ingressin käyttöönotto

Ota Ingress-resurssi käyttöön tallentamalla YAML tiedostoon, kuten basic-ingress.yaml, ja käyttämällä komentoa kubectl apply:

kubectl apply -f basic-ingress.yaml

Voit tarkistaa Ingressin tilan komennolla kubectl get ingress. Ingress Controller määrittää tämän jälkeen ulkoisen kuormantasaajan näiden sääntöjen perusteella.

Testaamista varten sinun on yleensä päivitettävä paikallinen /etc/hosts-tiedosto tai DNS-asetukset ohjaamaan myapp.example.com Ingress Controllerin ulkoiseen IP-osoitteeseen.

Isäntäpohjaisen reitityksen esimerkki

Ingress sopii erinomaisesti useiden sovellusten isännöintiin samalla ulkoisella IP-osoitteella eri isäntänimien avulla. Tässä app1.example.com reititetään palvelulle service-app1 ja app2.example.com palvelulle service-app2.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: host-routing-ingress
spec:
  rules:
  - host: app1.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service-app1
            port:
              number: 80
  - host: app2.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service-app2
            port:
              number: 80

Useita polkuja, yksi isäntä

Voit myös reitittää saman isäntänimen eri URL-polut eri taustapalveluihin. Tämä sopii erinomaisesti mikropalveluarkkitehtuureihin tai yhden sovelluksen eri osioihin.

Esimerkiksi osoitteeseen api.example.com/users tehdyt pyynnöt ohjataan palvelulle users-service, kun taas osoitteeseen api.example.com/products tehdyt pyynnöt ohjataan palvelulle products-service.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: path-routing-ingress
spec:
  rules:
  - host: api.example.com
    http:
      paths:
      - path: /users
        pathType: Prefix
        backend:
          service:
            name: users-service
            port:
              number: 80
      - path: /products
        pathType: Prefix
        backend:
          service:
            name: products-service
            port:
              number: 80

Ingressin tarkoituksen tarkistus

Mitkä seuraavista ovat Kubernetes Ingressin käytön tärkeimpiä hyötyjä?

Kertaus: Ingress älykkääseen reititykseen

Hienoa työtä! Olet oppinut Kubernetes Ingressistä, joka on keskeinen osa sovellusten ulkoisten käyttäjien toiminnan hallintaa.

  • Ingress tarjoaa joustavan HTTP/S-reitityksen isäntänimien ja URL-polkujen perusteella.
  • Se edellyttää Ingress Controlleria, kuten Nginxiä, tarkkailemaan Ingress-sääntöjä ja määrittämään reitityksen.
  • Se yksinkertaistaa useiden Servicen asettamista käytettäviksi yhden ulkoisen IP-osoitteen kautta, mikä tekee klusterista tehokkaamman ja helpommin hallittavan.

Ingressin hallitseminen on tärkeää vankkojen ja helposti käytettävien cloud-native-sovellusten rakentamisessa!

Aloita maksutta

Opi Kubernetesin perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Ingress ulkoista käyttöä varten” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kubernetesin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Ingress ulkoista käyttöä varten”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kubernetesin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ingress ulkoista käyttöä varten”?

Määrittäkää Ingress hallinnoimaan ulkoista pääsyä Serviceihin sekä HTTP/S-reititystä ja kuormantasausta. Harjoittelet Kubernetesin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kubernetesin perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kubernetesin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Ingress ulkoista käyttöä varten”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kubernetesin perusteet-oppitunnilla?

Kyllä. Jokainen Kubernetesin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Sovellusten julkaiseminen Serviceillä
  2. Service-tyypit: ClusterIP, NodePort, LoadBalancer
  3. Ingress ulkoista käyttöä varten
  4. DNS ja palveluiden etsintä
← Takaisin: Kubernetesin perusteet