
Kontenerite kÀitamiseks on kindlasti juhtiv platvorm Kubernetes. See pakub vÔimalust hallata peaaegu kÔike, kasutades oma API-sid ja kasutaja mÀÀratud kontrollerite, mis laiendavad selle API-d kasutajate ressursside kaudu.
Kuid kasutaja peab ikkagi tegema ĂŒksikasjalikke otsuseid selle ĂŒle, kuidas tĂ€pselt rakendusi kĂ€itada, seadistada, hallata ja skaleerida. Rakenduse skaleerimise, turvalisuse ja liikluse suunamisega seotud kĂŒsimused jÀÀvad kasutaja vastutusele. See eristab Kubernetesit tavalisest "platvormina teenus" (PaaS), nagu nĂ€iteks Cloud Foundry ja Heroku.
Platvormid pakuvad lihtsat kasutajaliidest, mis on suunatud rakenduste arendajatele, kes tihti tegelevad ĂŒksikute rakenduste seadistamisega. Suunamine, kĂ€itamine ja mÔÔdikud hallatakse kasutaja jaoks lĂ€bipaistvalt PaaS-i pĂ”hiteenusega.
Töövoog "allikas â tarnimine" töötleb PaaS, luues kasutaja mÀÀratud konteineripildi, selle kĂ€itamise, uue marsruudi seadistamise ja DNS-i alamdomeeni, et suunata saabuvat liiklust. KĂ”ik see kĂ€ivitatakse kĂ€su peale. git push.
Kubernetes pakub (sihilikult) vaid baasmooduleid platvormide jaoks, vÔimaldades kogukonnal selle töö ise Àra teha. Kuidas :
Kubernetes on platvormide ehitamise platvorm. Parim koht alustamiseks, kuid mitte lÔpetamiseks.
Tulemusena nĂ€eme hulka Kubernetes'i jaotusi ning toimetajaid, kes pĂŒĂŒavad luua Kubernetes'i jaoks PaaS-i, nĂ€iteks OpenShift ja Rancher. TĂ”usva Kube-PaaS turu taustal astub ringile Knative, mis loodi 2018. aasta juulis Google'i ja Pivotal'i poolt.
Knative on tulemus Google'i ja Pivotal'i koostööst, vĂ€ikese panusega ka teistelt ettevĂ”tetelt, nagu IBM, RedHat ja Solo.im. See pakub sarnaseid PaaS lahendusi Kubernetes'e jaoks, pakkudes esmaklassilist tuge serverivabade arvutuste rakendustele. Erinevalt Kubernetes'i jaotustest installitakse Knative igasse ĂŒhilduvasse Kubernetes'i klastri kui lisand, mida seadistatakse kasutajate ressursside kaudu.
Mis on Knative?
Knative on kirjeldatud kui âKubernetesi pĂ”hine platvorm tööde tarnimiseks ja haldamiseks kaasaegsete serverivabade arvutuste kauduâ. Knative, olles enese kohta nii öelnud, skaleerib automaatselt konteinerid proportsionaalselt samal ajal esitatavatele HTTP-pĂ€ringutele. Kasutamata teenused skaleeritakse lĂ”puks nulli, pakkudes nĂ”udmisel skaleerimist serverivabade arvutuste stiilis.
Knative koosneb komplektist kontrollereid, mis installitakse igasse Kubernetes'i klastrisse ja mis pakuvad jÀrgmisi vÔimalusi:
- konteineriseeritud rakenduste koostamine allikakoodist (pakub komponent Build),
- sissetuleva liikluse suunamine rakendustele (pakub komponent Serving),
- rakenduste tarnimine ja automaatne skaleerimine nÔudmisel (pakutakse samuti komponendiga Serving),
- sĂŒndmuste allikate mÀÀramine, mis kĂ€ivitavad rakenduste töö (pakutakse komponendiga Eventing).
Peamine komponent on Serving, mis pakub jaotust, automaatset skaleerimist ja liikluse haldamist hallatavatele rakendustele. PÀrast Knative'i installimist jÀÀb tÀielik juurdepÀÀs Kubernetes API-le, mis vÔimaldab kasutajatel hallata rakendusi. tavalise Samuti teenib see Knative teenuste tÔrkeotsinguks, töötades koos nende samade API primitiividega, mida need teenused kasutavad (moodulid, teenused jne).
Serving automatiseerib ka blue-green liikluse suunamise, tagades liikluse jagamise uute ja vanade rakenduse versioonide vahel, kui kasutaja tarnib rakenduse uuendatud versiooni.
Knative sĂ”ltub ĂŒhilduva ingress-kontrolleri installimisest. Artikli kirjutamise ajal toetatakse ja . See seadistab saadaval oleva ingressi liikluse suunamiseks hallatavatele Knative rakendustele.
Istio Service Mesh vÔib osutuda suureks sÔltuvuseks Knative'i kasutajatele, kes soovivad seda proovida ilma Istio juhtpaneeli installimata, kuna Knative sÔltub ainult vÀravast.
Selle pÔhjusel eelistab enamik kasutajaid Gloo-d Knative'i vÀravaks, mis pakub sarnast funktsioonide kogumit nagu Istio (rÀÀkides ainult Knative'i kasutamise eesmÀrgist), kasutades aga mÀrksa vÀhem ressursse ja tuues kaasa madalamad tegevuskulud.
Kontrollime Knative'i toimimist stendis. Kasutan vÀrskelt paigaldatud klastri, mis töötab GKE-s:
kubectl get namespace
NAME STATUS AGE
default Active 21h
kube-public Active 21h
kube-system Active 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
NAME READY STATUS RESTARTS AGE
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
NAME READY STATUS RESTARTS AGE
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 suunama, loome automaatselt skaleeritava Knative teenuse (kutsume seda kservice'iks) ja suuname sellele liikluse.
Knative teenused pakuvad kergemat viisi rakenduste tarnimiseks Kubernetesesse â vĂ”rreldes tavalise Deployment+Service+Ingress mudeliga. Töötame nĂ€iteks jĂ€rgmisega:
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, pÀrast mida rakendasin selle oma Kubernetes klastrisse jÀrgmiselt:
kubectl apply -f ksvc.yaml -n defaultSaame vaadata Knative poolt pÀrast 'helloworld-go' tarnimist loodud ressursse klastris kservice:
kubectl get pod -n default
NAME READY STATUS RESTARTS AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8 2/2 Running 0 68sMeie 'helloworld-go' pood kĂ€ivitatakse kservice'i kasutamisel. Kui liiklust pole, kĂ€rbitakse pod'ide arvu nullini. Ja vastupidi, kui samadele ajal tehtud pĂ€ringute arv ĂŒletab teatud seadistatava lĂ€vivÀÀrtuse, suureneb pod'ide arv.
kubectl get ingresses.networking.internal.knative.dev -n default
NAME READY REASON
helloworld-go TrueKnative seadistab oma ingressi kasutades erilist 'ingress' ressursi sisemises Knative API-s. Gloo kasutab seda API-d oma konfigureerimiseks, et pakkuda PaaS-ile iseloomulikke omadusi, sealhulgas blue-green juurutusmudelit, automaatset TLS-i rakendamist, ajutisi piire ja muid tÀiustatud marsruutimise funktsioone.
MÔne aja pÀrast nÀeme, et meie pod'id on kadunud (kuna ei olnud sissetulevat liiklust):
kubectl get pod -n default
Ressursse ei leitud.
kubectl get deployment -n default
NIMI SOOVITUD PRAEGUNE UUSIM SAADAVAL VANUS
helloworld-go-fjp75-deployment 0 0 0 0 9m46sLĂ”puks proovime nendega ĂŒhendust vĂ”tta. URL-i Knative Proxy jaoks on lihtne ja vaevata saada kasutades glooctl:
glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80Ilma seadistamiseta glooctl vÔime aadressi ja sadama vaadata kube teenusest:
kubectl get svc -n gloo-system knative-external-proxy
NIMI TĂĂP KLIENDI-IP VĂLJAS-IP SADAM(A) VANUS
knative-external-proxy LoadBalancer 10.16.11.157 35.190.151.188 80:32168/TCP,443:30729/TCP 77mKĂ€ivitame andmeid cURL-i abil:
curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Hello Knative user!Knative pakub peaaegu PaaS-i arendajatele otse 'kasti seest' Kubernetes'i peal, kasutades kÔrge jÔudlusega tÀisfunktsionaalset API Gloo vÀravat. See mÀrkus kajastab vaid veidikene Knative'i laialdasi kohandamisvÔimalusi ja tÀiendavaid funktsioone. Gloo puhul kehtib sama!
Kuigi Knative on endiselt noor projekt, annab selle meeskond uusi versioone vÀlja iga kuue nÀdala tagant ning rakendab arenenud funktsioone, nagu automaatne TLS-i juurutamine ja automaatne juhtpaneeli skaleerimine. On suur vÔimalus, et pÀrast paljude pilveteenuste pakkujate koostööd ning Google'i uue Cloud Run'i pakkumise aluseks, vÔib Knative saada peamiseks valikuks serveriteta arvutuste ja PaaS-i korraldamiseks Kubernetes'is. JÀlgige uudiseid!
LÀÀnesillaga toimetusest
Meie jaoks on lugejate arvamus oluline, seetĂ”ttu palume teil osaleda lĂŒhikeses kĂŒsitluses, mis on seotud Knative'i, Kubernetes'i ja serveriteta arvutuste tulevaste artiklitega:
Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. , palun.
Kas tÔlkida ja kirjutada rohkem artikleid ja juhendeid Knative'i ja serveriteta arvutuste kohta?
Jah, palun.
AitÀh, pole vaja.
HÀÀletas 28 kasutajat. 4 kasutajat piirasid end.
Allikas: habr.com
