I-Knative - i-k8s-based platform-as-a-service kunye nenkxaso engenamncedisi

I-Knative - i-k8s-based platform-as-a-service kunye nenkxaso engenamncedisi

I-Kubernetes ngokungathandabuzekiyo ibe lelona qonga liphambili lokuthunyelwa kweekhonteyina. Inika amandla okulawula phantse nantoni na usebenzisa ii-APIs zayo kunye nabalawuli besiko abo bandisa ii-APIs zayo ngezixhobo zesiko.

Nangona kunjalo, umsebenzisi kusafuneka enze izigqibo ezineenkcukacha malunga nendlela yokuhambisa, ukuqwalasela, ukulawula, kunye nokulinganisa usetyenziso. Imiba yokukala kwesicelo, ukukhuselwa, kunye nokuhamba kwetrafikhi kuhlala kukubona komsebenzisi. Oku kwenza i-Kubernetes yahluke kumaqonga aqhelekileyo njengenkonzo (i-PaaS), njenge-Cloud Foundry kunye ne-Heroku.

Amaqonga anonxibelelwano olulula lomsebenzisi kwaye ajolise kubaphuhlisi bezicelo abadla ngokubandakanyeka ekusekweni kwezicelo zomntu ngamnye. Ukuhanjiswa, ukusasazwa, kunye neemetrics zilawulwa ngokungafihlisiyo kumsebenzisi ngenkqubo ephantsi ye-PaaS.

I-source-to-ship workflow iphathwa yi-PaaS ngokudala umfanekiso wesikhongozeli esiqhelekileyo, ukuwuhambisa, ukuseta indlela entsha kunye ne-DNS subdomain ye-traffic engenayo. Konke oku kuqaliswa ngokomyalelo git push.

I-Kubernetes (ngeenjongo) ibonelela kuphela iibhloko zokwakha ezingundoqo kwiiplatifti ezinjalo, zishiya uluntu lukhululekile ukuba luzenzele umsebenzi ngokwawo. Njani UKelsey Hightower uthe:

I-Kubernetes liqonga lokwakha amaqonga. Eyona ndawo ilungileyo yokuqalisa, kodwa ungagqibi.

Ngenxa yoko, sibona iqela le-Kubernetes liyakha, kunye neenkampani zokubamba ezizama ukwenza i-PaaS ye-Kubernetes, njenge-OpenShift kunye ne-Rancher. Phakathi kweemarike ezikhulayo ze-Kube-PaaS, i-Knative, eyasungulwa ngoJulayi 2018 nguGoogle kunye nePivotal, ingena kwindandatho.

I-Knative yayiyintsebenziswano phakathi kweGoogle kunye ne-Pivotal, ngoncedo oluncinane oluvela kwezinye iinkampani ezifana ne-IBM, i-RedHat kunye ne-Solo.im. Inika izinto ezifanayo ze-PaaS kwi-Kubernetes ngenkxaso ephezulu ye-notch yezicelo ezisekelwe kwi-computing. Ngokungafaniyo ne-Kubernetes yakha, i-Knative ifakwe njenge-add-on kuyo nayiphi na i-Kubernetes cluster ehambelanayo kwaye iqwalaselwe ngokusebenzisa izixhobo zomsebenzisi.

Yintoni iKnative?

I-Knative ichazwa njenge "Iqonga elisekwe ku-Kubernetes lokuhambisa kunye nokulawula umthwalo wemisebenzi usebenzisa ikhompyuter yanamhlanje engenaseva." I-Knative, ngelixa ihlawula ngokwayo njengeqonga, i-autoscales ngenkuthalo izikhongozeli ngokomlinganiselo wezicelo ze-HTTP ezifanayo. Iinkonzo ezingasetyenziswanga ekugqibeleni ziyehla ziye kutsho ku-zero, zibonelela nge-serverless-style on-demand scaling.

I-Knative iqulathe iseti yabalawuli abafaka kuyo nayiphi na i-Kubernetes cluster kwaye babonelele ngobunakho bulandelayo:

  • Ukwakha izicelo ezinezikhongozeli ezivela kwikhowudi yomthombo (enikezelwe licandelo Yakha),
  • ukubonelela ngokufikelela kwi-traffic engenayo kwizicelo (ezibonelelwe licandelo ukukhonza),
  • ukuhanjiswa kunye nokukalwa okuzenzekelayo kwezicelo ngokwemfuno (ekwabonelelwa licandelo ukukhonza),
  • ukuchonga imithombo yeziganeko ezikhokelela ekuqalisweni kwezicelo (ezinikezelwe licandelo Umsitho).

Inxalenye ephambili kukuKhonza, okubonelela ngokubonelela, ukulinganisa okuzenzekelayo, kunye nolawulo lwezithuthi ezilawulwayo. Emva kokufaka i-Knative, usenokufikelela ngokupheleleyo kwi-Kubernetes API, evumela abasebenzisi ukulawula izicelo. eqhelekileyo indlela, kwaye ikwasebenza ukulungisa iimpazamo zeenkonzo ze-Knative, esebenza nge-API efanayo esetyenziswa zezi nkonzo (iimodyuli, iinkonzo, njl.).

Ngoncedo lokukhonza, umzila wethrafikhi oluhlaza-luhlaza nawo uzenzekela, ukuqinisekisa ukwahlulwa kwetrafikhi phakathi kweenguqulelo ezintsha nezindala zesicelo xa umsebenzisi ehambisa inguqulelo ehlaziyiweyo yesicelo.

I-Knative ngokwayo ixhomekeke ekufakeni isilawuli sokungena esihambelanayo. Ngexesha lokubhala eli nqaku lixhaswa Gloo API Gateway ΠΈ Istio Service Mesh. Iza kuqwalasela ukungena okukhoyo kwindlela yetrafikhi kwizicelo ezilawulwa yi-Knative.

I-Istio Service Mesh inokuba ngukuxhomekeka okukhulu kubasebenzisi be-Knative abafuna ukuzama ngaphandle kokufaka iphaneli yokulawula ye-Istio, ekubeni i-Knative ixhomekeke kuphela kwisango.

Ngenxa yesi sizathu, abaninzi abasebenzisi bakhetha i-Gloo njengendlela yokungena kwi-Knative, inikezela ngeseti efanayo yezakhono kwi-Istio (ngenjongo yokusebenzisa i-Knative kuphela), ngelixa usebenzisa izibonelelo ezimbalwa kakhulu kunye neendleko zokusebenza eziphantsi.

Makhe sivavanye u-Knative esebenza kwi-stand. Ndiza kusebenzisa iqela elitsha elifakwe kwi-GKE:

kubectl get namespace
NAME          STATUS   AGE
default       Active   21h
kube-public   Active   21h
kube-system   Active   21h

Masiqale ukufaka iKnative kunye neGloo. Oku kunokwenziwa nangaluphi na ulandelelwano:

# ставим 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
# ...

Sijonga ukuba zonke iiPod zikwimeko "yokuSebenza":

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          44s

I-Gloo ilungele umzila, makhe senze i-auto-scaling yenkonzo ye-Knative (masiyibize kservice) kunye nendlela yokuya kuyo.

Iinkonzo ze-Knative zibonelela ngendlela elula yokuhambisa izicelo kwi-Kubernetes kunemodeli eqhelekileyo yoSaziso+INkonzo+ yokuNgena. Siza kusebenza ngalo mzekelo:

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 user

Ndikhuphele oku kwifayile, emva koko ndayifaka kwiqela lam leKubernetes ngale ndlela:

kubectl apply -f ksvc.yaml -n default

Sinokujonga izixhobo ezenziwe nguKnative kwiqela emva kokuhambisa i-'helloworld-go' yethu. kservice:

kubectl get pod -n default
NAME                                              READY   STATUS    RESTARTS   AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8   2/2     Running   0          68s

I-pod enomfanekiso wethu othi 'helloworld-go' iqaliswa xa i-kservice isetyenziswa. Ukuba akukho traffic, inani leepods liya kuncitshiswa libe ngu-zero. Kwaye ngokuchaseneyo, ukuba inani lezicelo ngaxeshanye lidlula umda othile olungelelanisiweyo, inani leepods liya kwanda.

kubectl get ingresses.networking.internal.knative.dev -n default
NAME            READY   REASON
helloworld-go   True

I-Knative iqwalasela ukungena kwayo isebenzisa isibonelelo esikhethekileyo 'sokungena' kwi-Knative API yangaphakathi. I-Gloo isebenzisa le API njengokucwangciswa kwayo ukubonelela ngeempawu ezifana ne-PaaS, kubandakanywa imodeli yokusasazwa eluhlaza okwesibhakabhaka, ukunyanzeliswa kwe-TLS ngokuzenzekelayo, ukuphuma kwexesha, kunye nezinye iimpawu eziphambili zomzila.

Emva kwexesha elithile, sibona ukuba iipods zethu ziye zanyamalala (kuba bekungekho traffic engenayo):

kubectl get pod -n default

No resources found.
kubectl get deployment -n default
NAME                             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
helloworld-go-fjp75-deployment   0         0         0            0           9m46s

Ekugqibeleni siya kuzama ukubafikelela. Unokufumana ngokulula nangokulula i-URL ye-Knative Proxy usebenzisa glooctl:

glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80

Ngaphandle kokufakwa glooctl ungabona idilesi kunye nezibuko kwinkonzo ye kube:

kubectl get svc -n gloo-system knative-external-proxy
NAME                     TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)                      AGE
knative-external-proxy   LoadBalancer   10.16.11.157   35.190.151.188   80:32168/TCP,443:30729/TCP   77m

Masiqhube idatha ethile sisebenzisa i-cURL:

curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Hello Knative user!

I-Knative ibonelela nge-PaaS ephantse ibe yi-PaaS kubaphuhlisi ngaphezulu kwe-Kubernetes engaphandle kwebhokisi usebenzisa i-Gloo's high-performance, full-stack API gateway. Esi sithuba sikrwele kuphela umphezulu wokhetho olubanzi lwe-Knative kunye neempawu ezongezelelweyo. Kuyafana noGloo!

Nangona i-Knative iseyiprojekthi encinci, iqela layo likhupha iinguqulelo ezintsha rhoqo emva kweeveki ezintandathu, kwaye ukuphunyezwa kweempawu eziphambili sele ziqalile, ezifana nokuthunyelwa kwe-TLS ngokuzenzekelayo, ukulinganiswa ngokuzenzekelayo kwepaneli yokulawula. Kukho ithuba elihle lokuba, ngenxa yentsebenziswano phakathi kweenkampani ezininzi zelifu, kwaye njengesiseko somnikelo omtsha we-Google Cloud Run, i-Knative inokuba lolona khetho luphambili lwekhompyuter engena-server kunye ne-PaaS kwi-Kubernetes. Landela iindaba!

Ukusuka kubahleli beSouthBridge
Izimvo zabafundi zibalulekile kuthi, ke siyakucela ukuba uthathe inxaxheba kuphando olufutshane olunxulumene namanqaku exesha elizayo malunga ne-Knative, Kubernetes, i-serverless computing:

Ngabasebenzisi ababhalisiweyo kuphela abanokuthatha inxaxheba kuphando. Ngena, ndiyacela.

Qhubeka nokubhala amanqaku kunye nezikhokelo malunga ne-Knative kunye ne-serverless computing?

  • Ewe Nceda.

  • Hayi enkosi.

Bangama-28 abasebenzisi abavotileyo. Abasebenzisi abangama-4 abakhange.

umthombo: www.habr.com

Yongeza izimvo