DevOps-bootcamp · Oppitunti

Ingress ja ulkoinen reititys

Julkaiskaa useita palveluita ulkomaailmaan yhden sisääntulopisteen kautta käyttämällä Ingress-resursseja, isäntä- ja polkureititystä sekä Ingress-ohjainta.

Oppitunti 4/413 vaihetta

Ingress ja ulkoinen reititys on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 4/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 DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

NodePortin ja LoadBalancerin tuolle puolen

Service voi asettaa sovelluksen saataville, mutta jokaisen sovelluksen varustaminen omalla ulkoisella IP-osoitteella tulee kalliiksi ja tekee kokonaisuudesta sekavan. Ingress tarjoaa yhden älykkään HTTP-liityntäpisteen, joka reitittää liikenteen moniin Serviceihin.

Mikä on Ingress?

Ingress on Kubernetes-objekti, joka kuvaa HTTP/HTTPS-reitityssäännöt: mikä isäntä tai URL-polku yhdistetään mihinkin Serviceen.

Tarvitsette controllerin

Ingress-objekti sisältää vain säännöt. Ingress controller (nginx, Traefik, HAProxy) seuraa näitä sääntöjä ja huolehtii varsinaisesta reitityksestä. Ilman controlleria Ingress ei vaikuta mihinkään.

kubectl get pods -n ingress-nginx

Perusmuotoinen Ingress

Tämä Ingress ohjaa kaiken liikenteen yhteen taustajärjestelmän Serviceen portissa 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

Isäntään perustuva reititys

Lisäämällä host-kentän voitte reitittää verkkotunnuksen perusteella: api.example.com yhteen Serviceen ja shop.example.com toiseen, kaikki saman IP-osoitteen kautta.

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

Polkuun perustuva reititys

Voitte myös reitittää yhden isännän alla URL-polun perusteella: /api API-palveluun ja / web-käyttöliittymään.

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

TLS-terminointi

Ingress voi päättää HTTPS-yhteyden TLS-salaisuuden avulla, jolloin servicet vastaanottavat salaamatonta HTTP-liikennettä käyttäjien yhteyksien pysyessä salattuina.

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

Annotaatiot säätävät toimintaa

Controller-kohtaisilla annotaatioilla määritetään uudelleenkirjoitukset, aikakatkaisut, nopeusrajoitukset ja paljon muuta. Ne sijaitsevat Ingressin metadatassa.

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

IngressClass

Kun käytössä on useita controllereita, ingressClassName kertoo Kubernetesille, minkä niistä tulee käsitellä tämä Ingress.

spec:
  ingressClassName: nginx

Ingressin tarkasteleminen

Tarkistakaa säännöt ja määritetty osoite komennolla kubectl get ingress ja tarkastakaa tapahtumat komennolla describe.

kubectl describe ingress web-ingress

Nykyaikainen vaihtoehto: Gateway API

Kubernetes kehittyy kohti Gateway APIa, joka on Ingressin ilmaisuvoimaisempi seuraaja. Ingress on edelleen laajasti käytössä ja sopii hyvin aloituskohdaksi.

Pikatarkistus

Miksi Ingress controller tarvitaan?

Kertaus

Osaatte nyt asettaa sovelluksia siististi saataville:

  • Ingress määrittää HTTP-reitityssäännöt ja Ingress controller toteuttaa ne
  • Reitittäkää liikenne isännän tai polun perusteella yhden liityntäpisteen kautta
  • Päättäkää TLS-yhteydet ja säätäkää toimintaa annotaatioilla
  • ingressClassName valitsee controllerin

Yksi IP-osoite, monta Serviceä ja älykäs reititys.

Aloita maksutta

Opi DevOps-bootcamp 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
142
Oppitunnit
568

Usein kysytyt kysymykset

Onko oppitunti ”Ingress ja ulkoinen reititys” ilmainen?

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

Mitä opin oppitunnilla ”Ingress ja ulkoinen reititys”?

Julkaiskaa useita palveluita ulkomaailmaan yhden sisääntulopisteen kautta käyttämällä Ingress-resursseja, isäntä- ja polkureititystä sekä Ingress-ohjainta. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?

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

Kuinka kauan ”Ingress ja ulkoinen reititys”-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ä DevOps-bootcamp-oppitunnilla?

Kyllä. Jokainen DevOps-bootcamp-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. Deploymentit tilattomille sovelluksille
  2. Servicet verkkoyhteyksiä varten
  3. ConfigMapit ja Secretit
  4. Ingress ja ulkoinen reititys
← Takaisin: DevOps-bootcamp