
Domineeriv platvorm konteinerite juurutamiseks on kindlasti Kubernetes. See vÔimaldab hallata praktiliselt kÔike, kasutades oma API-sid ja kasutajahaardeid, mis laiendavad tema API-d kasutajate ressursside kaudu.
Kuid kasutaja peab ikkagi tegema pÔhjalikke otsuseid selle kohta, kuidas tÀpselt rakendusi juurutada, seadistada, hallata ja skaleerida. Rakenduse skaleerimise, kaitse ja liikluse haldamine jÀÀb kasutaja otsustada. Sellega erineb Kubernetes tavalisest "platvormist teenusena" (PaaS), nagu Cloud Foundry ja Heroku.
Platvormid omavad lihtsustatud kasutajaliidest, on suunatud rakenduste arendajatele, kes tegelevad sagedamini ĂŒksikute rakenduste seadistamisega. Marsruutimine, juurutamine ja mÔÔdikud hallatakse kasutaja jaoks lĂ€bipaistvalt pĂ”hisihtkohas PaaS.
Töövoog "allikas â tarne" töödeldakse PaaS-iga, luues kasutaja konteineri pildi, juurutades selle, seadistades uue marsruudi ja DNS alamsĂŒsteemi sisendliiklust jaoks. KĂ”ik see kĂ€ivitatakse kĂ€su kaudu. git push.
Kuberneteses (tahtlikult) antakse ainult pÔhikomponendid selliste platvormide jaoks, andes kogukonnale vÔimaluse selle töö iseseisvalt teha. Nagu :
Kubernetes on platvorm platvormide ehitamiseks. Parim koht alustamiseks, kuid mitte lÔpetamiseks.
SeetĂ”ttu nĂ€eme mitmeid Kubernetes'i koosteid ja ka hostimisteenuseid, mis pĂŒĂŒavad luua Kubernetes'e PaaS-i, nĂ€iteks OpenShift ja Rancher. Kasvava Kube-PaaS turu taustal astub ringi Knative, mis loodi 2018. aasta juulis ettevĂ”tete Google ja Pivotal poolt.
Knative sai tulemuseks Google'i ja Pivotal'i koostööst, koos teiste ettevĂ”tete, nagu IBM, RedHat ja Solo.im, vĂ€hese abiga. See pakub sarnaseid PaaS funktsioone Kubernetes'e jaoks, pakkudes tipptasemel tosupport serverivabade arvutuste pĂ”histe rakenduste jaoks. Erinevalt Kubernetes'i koosteest installitakse Knative igasse ĂŒhilduvasse Kubernetes'e klastrisse tĂ€iendusena ja seadistatakse kasutajate ressursside kaudu.
Mis on Knative?
Knative on kirjeldatud kui âKubernetesel pĂ”hinev platvorm töökoormuste kohaletoimetamiseks ja haldamiseks, kasutades kaasaegseid serveriteta arvutusiâ. Knative, vĂ€ljendades end sellise platvormina, skaleerib automaatselt konteinerid proportsionaalselt samal ajal tehtud HTTP-pĂ€estetele. Kasutamata teenused skaleeruvad lĂ”puks nulli, pakkudes nĂ”udmisel skaleerimist serveriteta arvutuste stiilis.
Knative koosneb hulgast kontrollidest, mis paigaldatakse igasse Kubernetes klastrisse ja pakuvad jÀrgmisi vÔimalusi:
- konteineriseeritud rakenduste loomine lÀhtekoodist (tagab komponent Build),
- sissetuleva liikluse juurdepÀÀsu andmine rakendustele (tagab komponent Serving),
- rakenduste kohaletoimetamine ja automaatne skaleerimine nÔudmisel (pakub ka komponent Serving),
- sĂŒndmuste allikate mÀÀramine, mis kĂ€ivitavad rakenduste kĂ€ivitamise (tagab komponent Eventing).
PÔhikomponent on Serving, mis tagab kohaletoimetamise, automaatse skaleerimise ja liikluse haldamise hallatud rakenduste jaoks. Knative'i paigaldamise jÀrel jÀÀb tÀielik juurdepÀÀs Kubernetes API-le, mis vÔimaldab kasutajatel hallata rakendusi tavalises viisis ning aitab Knative teenuste tÔrkeotsinguks, töötades nende samade API primitiividega, mida need teenused kasutavad (moodulid, teenused jms).
Serving kaudu on samuti automatiseeritud blue-green liikluse suunamine, tagades liikluse jagamise rakenduse uute ja vanade versioonide vahel, kui kasutaja esitades rakenduse uuendatud versiooni.
Ise Knative sĂ”ltub ĂŒhilduva ingress kontrolleri paigaldamisest. Artikli kirjutamise ajal toetatakse ja . See seadistab saadaval oleva ingressi liikluse suunamiseks Knative'i hallatud rakendustele.
Istio Service Mesh vÔib osutuda suureks sÔltuvuseks Knative'i kasutajatele, kes soovivad seda proovida ilma Istio juhtpaneeli paigaldamata, kuna Knative sÔltub vaid vÀravast.
SeetÔttu eelistavad enamus kasutajatest Gloo-d Knative'i vÀravana, mis pakub sarnast funktsioonide kogumit Istio'le (kui rÀÀkida ainult Knative'i kasutamise eesmÀrgist), kasutades samas oluliselt vÀhem ressursse ja tekitades vÀiksemaid kÀituskulusid.
Kontrollime Knative'i toimimist demokeskkonnas. Kasutan vÀrskelt paigaldatud klastrit, mis on kÀivitatud GKE-s:
kubectl get namespace
NIMI STAATUS VANUS
default Aktiivne 21h
kube-public Aktiivne 21h
kube-system Aktiivne 21hAlustame Knative'i ja Gloo paigaldamist. Seda saab teha igas jÀrjekorras:
# ŃŃаĐČĐžĐŒ Knative-Serving
kubectl apply -f
https://github.com/knative/serving/releases/download/v0.8.0/serving-core.yaml
namespace/knative-serving created
# ...
# ŃŃаĐČĐžĐŒ Gloo
kubectl apply -f
https://github.com/solo-io/gloo/releases/download/v0.18.22/gloo-knative.yaml
namespace/gloo-system created
# ...Kontrollime, et kÔik podid on olekus 'Running':
kubectl get pod -n knative-serving
NIMI VALMIS STAATUS KĂIVITUSI VANUS
activator-5dd55958cc-fkp7r 1/1 Running 0 7m32s
autoscaler-fd66459b7-7d5s2 1/1 Running 0 7m31s
autoscaler-hpa-85b5667df4-mdjch 1/1 Running 0 7m32s
controller-85c8bb7ffd-nj9cs 1/1 Running 0 7m29s
webhook-5bd79b5c8b-7czrm 1/1 Running 0 7m29s
kubectl get pod -n gloo-system
NIMI VALMIS STAATUS KĂIVITUSI VANUS
discovery-69548c8475-fvh7q 1/1 Running 0 44s
gloo-5b6954d7c7-7rfk9 1/1 Running 0 45s
ingress-6c46cdf6f6-jwj7m 1/1 Running 0 44s
knative-external-proxy-7dd7665869-x9xkg 1/1 Running 0 44s
knative-internal-proxy-7775476875-9xvdg 1/1 Running 0 44sGloo on valmis suunamiseks, loome automaatselt skaleeritava Knative teenuse (nimetame selle kservice'ks) ja suuname jÔu.
Knative teenused pakuvad lihtsamat viisi rakenduste toimetamiseks Kubernetesesse â vĂ”rreldes tavalise mudeliga Deployment+Service+Ingress. Töötab sellise nĂ€ite peal:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
Value: Knative userKopeerisin selle faili, seejÀrel rakendasin seda oma Kubernetes klastrisse jÀrgmiselt:
kubectl apply -f ksvc.yaml -n defaultSaame vaadata Knative'i loodud ressursse klastris pĂ€rast meie âhelloworld-goâ tarnimist. kservice:
kubectl get pod -n default
NIMI VALMIS STAATUS KĂIVITUSI VANUS
helloworld-go-fjp75-deployment-678b965ccb-sfpn8 2/2 Running 0 68sMeie âhelloworld-goâ pood kĂ€ivitatakse kservice'i juurutamisel. Kui liiklust ei ole â podide arv vĂ€hendatakse nullini. Vastupidi, kui samaaegsete pĂ€ringute arv ĂŒletab teatud konfigureeritava kĂŒnnise â podide arv suureneb.
kubectl get ingresses.networking.internal.knative.dev -n default
NIMI VALMIS PĂHJUS
helloworld-go TrueKnative konfigureerib oma ingressi kasutades erilisest 'ingress' ressursist Knative'i sisemise API kaudu. Gloo kasutab seda API-d oma seadistuste jaoks, et pakkuda PaaS-ile omaseid omadusi, sealhulgas blue-green versioonihaldust, automaatset TLS-i rakendamist, ajaĂŒlesandeid ja muid tĂ€iustatud marsruutimise vĂ”imalusi.
MÔne aja pÀrast nÀeme, et meie podid on kadunud (kuna tulenevat liiklust ei olnud):
kubectl get pod -n default
No resources found.
kubectl get deployment -n default
NIMI SOOVITUD PRAEGUNE UUE TĂIENDATUD KĂEDESEIS VANUS
helloworld-go-fjp75-deployment 0 0 0 0 9m46sLÔpuks proovime nendeni jÔuda. Knative Proxy URL-i hankimine on lihtne ja vaevatu, kasutades glooctl:
glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80Ilma seadistamata glooctl saame aadressi ja portaali vaadata kube teenusest:
kubectl get svc -n gloo-system knative-external-proxy
NIMI TĂĂP KOGU-IP VĂLIS-IP PORT(OD) VANUS
knative-external-proxy LoadBalancer 10.16.11.157 35.190.151.188 80:32168/TCP,443:30729/TCP 77mKĂ€ivitame veidi andmeid cURL-i abil:
curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Tere, Knative kasutaja!Knative pakub peaaegu-PaaS-i arendajatele 'karbis' Kubernetes'i peal, kasutades kĂ”rge jĂ”udlusega, tĂ€isfunktsionaalset Gloo API lĂŒlitust. See mĂ€rkmeaine puudutab vaid pinnaliselt Knative'i ulatuslikke mÀÀramisvĂ”imalusi ja tĂ€iendavaid funktsioone. Ka Gloo suhtes!
Kuigi Knative on endiselt noor projekt, vabastab selle meeskond uusi versioone iga kuue nÀdala jÀrel, edendatakse tÀiustatud omaduste, nÀiteks automaatse TLS-i rakendamise ja automaatse skaleerimise, rakendamist. On suur tÔenÀosus, et tÀnu paljude pilveteenuste ettevÔtete koostööle ning Google'i uue Cloud Run pakkumise alusele vÔib Knative saada peamiseks valikuks serverivabade arvutuste ja PaaS-i korraldamiseks Kubernetes'es. JÀlgige uudiseid!
SouthBridge'i toimetusest
Meile on oluline lugejate arvamus, seetĂ”ttu palume teil osaleda vĂ€ikeses kĂŒsitluses, mis on seotud tulevaste artiklitega Knative'i, Kubernetes'e ja serverivabade arvutuste teemal:
Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. , palun.
Kas soovite jÀtkata artiklite ja juhendite kirjutamist Knative'i ja serverivabade arvutuste teemal?
Jah, palun.
AitÀh, ei ole vaja.
HÀÀletas 28 kasutajat. 4 kasutajat jÀtsid hÀÀletamata.
Allikas: habr.com
