Sovellusten julkaiseminen Serviceillä
Tutustu Kubernetes Servicen eri tyyppeihin (ClusterIP, NodePort ja LoadBalancer), joilla sovellukset tehdään saavutettaviksi.
Sovellusten julkaiseminen Serviceillä on ilmainen Docker ja Kubernetes kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Docker ja Kubernetes kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.
Mitä K8s Services -resurssit ovat?
Kun otatte sovelluksia käyttöön Kubernetesissa, Podit voivat syntyä ja poistua. Ne saavat uusia IP-osoitteita, niiden määrää voidaan kasvattaa tai vähentää, ja ne voivat jopa kaatua ja käynnistyä uudelleen.
Tämä aiheuttaa haasteen: miten sovelluksen muut osat tai ulkoiset käyttäjät löytävät nämä jatkuvasti muuttuvat Podit ja viestivät niiden kanssa luotettavasti?
Servicet: vakaa yhteyspiste
Kubernetes Services ratkaisevat tämän ongelman tarjoamalla vakaan verkkokerroksen Pod-joukon päälle. Ajatelkaa Serviceä sovelluksen yhtenä muuttumattomana IP-osoitteena ja DNS-nimenä.
- Servicet toimivat kuormantasaajina ja jakavat liikenteen terveiden Podien kesken.
- Ne varmistavat, että sovellus pysyy tavoitettavana, vaikka yksittäiset Podit muuttuisivat tai vikaantuisivat.
Miten Servicet löytävät Podit
Servicet eivät hallitse Podien elinkaarta suoraan. Sen sijaan ne käyttävät tunnisteita ja valitsimia löytääkseen Podit, joihin niiden tulee reitittää liikenne. Kun Pod vastaa Servicen valitsinta, siitä tulee kyseisen Servicen päätepiste.
- Tunnisteet: objekteihin, kuten Podeihin, liitettyjä avain-arvo-pareja tunnistamista varten.
- Valitsimet: Servicessä määritettyjä sääntöjä, joilla Podien tunnisteet täsmäytetään.
ClusterIP: vain sisäinen käyttö
ClusterIP on oletusarvoinen Service-tyyppi. Se julkaisee Servicen klusterin sisäisessä IP-osoitteessa. Tämä tarkoittaa, että Serviceen pääsee vain klusterin sisältä.
Se sopii erinomaisesti sovelluksen eri palveluiden väliseen sisäiseen viestintään, esimerkiksi käyttöliittymän ja taustalla olevan tietokannan välille.
Esimerkki ClusterIP-servicestä
Tässä on ClusterIP-servicen YAML-määritys. Se kohdistuu Podeihin, joiden tunniste on app: my-app, ja julkaisee portin 80 reitittäen liikenteen kontin porttiin 8080.
Ottakaa se käyttöön komennolla kubectl apply -f service.yaml.
apiVersion: v1
kind: Service
metadata:
name: my-app-clusterip
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPNodePort: ulkoinen yhteys solmun IP-osoitteen kautta
NodePort-Service avaa tietyn portin kaikissa klusterin worker-solmuissa. Ulkoinen liikenne voi saavuttaa Servicen ottamalla yhteyden minkä tahansa solmun IP-osoitteeseen kyseisessä portissa (esim. NodeIP:NodePort).
Tämä on hyödyllistä, kun palveluita halutaan julkaista ulkomaailmaan erityisesti pienissä ympäristöissä tai kehityksessä ilman pilvipalvelun kuormantasaajaa.
Esimerkki NodePort-servicestä
Tämä NodePort-Service julkaisee sovelluksen portin 80 korkeassa portissa (yleensä välillä 30000–32767) jokaisessa solmussa. Voitte määrittää nodePort-arvon tai antaa Kubernetesin määrittää sen.
Kun Service on otettu käyttöön, etsikää määritetty portti komennolla kubectl get svc.
apiVersion: v1
kind: Service
metadata:
name: my-app-nodeport
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30007 # Optional: K8s assigns if omitted
type: NodePortLoadBalancer: pilvi-integraatio
LoadBalancer-Serviceä käytetään ensisijaisesti, kun Kubernetesia ajetaan pilvipalveluntarjoajan, kuten AWS:n, GCP:n tai Azuren, ympäristössä. Se luo automaattisesti ulkoisen pilvipalvelun kuormantasaajan.
Tämä tarjoaa sovellukselle erillisen, vakaan ulkoisen IP-osoitteen ja integroituu usein pilvipalvelukohtaisiin ominaisuuksiin, kuten SSL:n päätökseen ja edistyneeseen reititykseen.
Esimerkki LoadBalancer-servicestä
Kun tämä Service otetaan käyttöön pilvipalveluntarjoajan ympäristössä, se luo ja määrittää automaattisesti ulkoisen kuormantasaajan ja antaa sille ulkoisen IP-osoitteen.
Ulkoinen IP-osoite näkyy komennolla kubectl get svc, kun kuormantasaaja on luotu.
apiVersion: v1
kind: Service
metadata:
name: my-app-loadbalancer
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancerService-tyyppien yleiskatsaus
Verrataan nopeasti tärkeimpiä Service-tyyppejä:
- ClusterIP: vain sisäinen käyttö klusterin sisällä.
- NodePort: ulkoinen käyttö kussakin solmussa olevan tietyn portin kautta.
- LoadBalancer: ulkoinen käyttö pilvipalveluntarjoajan kuormantasaajan kautta sekä vakaa ulkoinen IP-osoite.
Oikea tyyppi riippuu siitä, tarvitseeko sovelluksen olla käytettävissä sisäisesti vai ulkoisesti, sekä käyttöönottosi ympäristöstä.
Service-tyyppien tietovisa
Mitkä Kubernetes Servicen tyypit tarjoavat suoran tavan välittää ulkoista liikennettä klusterin sisällä toimiville sovelluksille?
Kertaus: sovellusten julkaiseminen
Hienoa työtä! Olette oppineet, miten Kubernetes Servicet abstrahoivat verkkoyhteyden Podien käyttöön ja tekevät sovelluksista tavoitettavia. Tutustuimme kolmeen päätyyppiin:
- ClusterIP: vain klusterin sisäiseen viestintään.
- NodePort: julkaisee Servicet ulkoista käyttöä varten staattisessa portissa kaikissa solmuissa.
- LoadBalancer: integroituu pilvipalveluntarjoajiin ja luo ulkoisen kuormantasaajan, joka tarjoaa vakaan ulkoisen IP-osoitteen.
Näiden Service-tyyppien ymmärtäminen on olennaista, kun Kubernetesissa suunnitellaan saavutettavia ja vikasietoisia sovelluksia.
Opi Docker ja Kubernetes kehittäjille 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 ”Sovellusten julkaiseminen Serviceillä” ilmainen?
Kyllä – oppitunnin ”Sovellusten julkaiseminen Serviceillä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Docker ja Kubernetes kehittäjille-kurssin, päivitä CoddyKit PROhon. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Sovellusten julkaiseminen Serviceillä”?
Tutustu Kubernetes Servicen eri tyyppeihin (ClusterIP, NodePort ja LoadBalancer), joilla sovellukset tehdään saavutettaviksi. Harjoittelet Docker ja Kubernetes kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Docker ja Kubernetes kehittäjille-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Docker ja Kubernetes kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Sovellusten julkaiseminen Serviceillä”-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ä Docker ja Kubernetes kehittäjille-oppitunnilla?
Kyllä. Jokainen Docker ja Kubernetes kehittäjille-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
- Kubernetes Deploymentien ymmärtäminen
- Sovellusten julkaiseminen Serviceillä
- Sovellusten skaalaus ja itsekorjautuvuus
- Asteittaiset päivitykset ja palautukset