Knative - k8s-based platform-as-a-service ka tšehetso e se nang seva

Knative - k8s-based platform-as-a-service ka tšehetso e se nang seva

Ha ho pelaelo hore Kubernetes e se e le sethala se ka sehloohong sa phepelo ea lijana. E fana ka bokhoni ba ho laola hoo e batlang e le ntho leha e le efe e sebelisang li-API tsa eona le balaoli ba tloaelo ba atolosang li-API tsa eona ka lisebelisoa tse tloaelehileng.

Leha ho le joalo, mosebelisi o ntse a tlameha ho etsa liqeto tse felletseng mabapi le mokhoa oa ho tsamaisa, ho hlophisa, ho laola le ho lekanya lits'ebetso. Litaba tsa ho eketsa ts'ebeliso, ts'ireletso, le phallo ea sephethephethe li lula li le boikhethelo ba mosebelisi. Sena se arola Kubernetes ho li-platform tse tloaelehileng joalo ka ts'ebeletso (PaaS), joalo ka Cloud Foundry le Heroku.

Li-platform li na le sebopeho se nolofalitsoeng sa mosebelisi 'me li lebisitsoe ho baetsi ba lits'ebetso bao hangata ba amehang ho theha lits'ebetso tsa motho ka mong. Ho tsamaisa, ho tsamaisa, le litekanyetso li laoloa ka mokhoa o hlakileng ho mosebelisi ke sistimi e teng ea PaaS.

Mohloli oa ho tsamaisa sekepe o sebetsoa ke PaaS ka ho theha setšoantšo sa sets'oants'o sa tloaelo, ho se tsamaisa, ho theha tsela e ncha le DNS subdomain bakeng sa sephethephethe se tlang. Tsena tsohle li hlahisoa ka taelo git push.

Kubernetes (ka boomo) e fana feela ka litšiea tsa mantlha tsa li-platform tse joalo, e siea sechaba se lokolohile ho etsa mosebetsi ka bobona. Joang Kelsey Hightower o boletse:

Kubernetes ke sethala sa ho aha sethala. Sebaka se setle sa ho qala, empa eseng ho qeta.

Ka lebaka leo, re bona sehlopha sa Kubernetes se haha, hammoho le lik'hamphani tse amohelang batho ba lekang ho etsa PaaS bakeng sa Kubernetes, tse kang OpenShift le Rancher. Har'a 'maraka o ntseng o hola oa Kube-PaaS, Knative, e thehiloeng ka Phupu 2018 ke Google le Pivotal, e kena ka lesale.

Knative e ne e le tšebelisano pakeng tsa Google le Pivotal, ka thuso e nyenyane e tsoang ho lik'hamphani tse ling tse kang IBM, RedHat le Solo.im. E fana ka lintho tse tšoanang tsa PaaS ho Kubernetes ka ts'ehetso ea boemo bo holimo bakeng sa lits'ebetso tse se nang seva tse thehiloeng ho komporo. Ho fapana le Kubernetes e ahang, Knative e kentsoe e le tlatsetso ho sehlopha sefe kapa sefe se lumellanang sa Kubernetes mme e hlophisitsoe ka lisebelisoa tsa basebelisi.

Knative ke eng?

Knative e hlalosoa e le "Sethala se thehiloeng ho Kubernetes bakeng sa ho tsamaisa le ho laola meroalo ea mesebetsi ka komporo ea sejoale-joale e se nang seva." Knative, ha e ntse e itlama joalo ka sethala, e sebetsa ka mafolofolo lijaneng tsa autoscale ho latela likopo tse tšoanang tsa HTTP. Litšebeletso tse sa sebelisoeng li qetella li theohetse ho zero, li fana ka sekala se batloang ka mokhoa o se nang seva.

Knative e na le sehlopha sa balaoli ba kenyang sehlopheng sefe kapa sefe sa Kubernetes mme ba fana ka bokhoni bo latelang:

  • ho aha lits'ebetso tse kentsoeng ka har'a sesebelisoa ho tsoa ho khoutu ea mohloli (e fanoeng ke karolo haha),
  • ho fana ka phihlello ea sephethephethe se kenang lits'ebetsong (tse fanoeng ke karolo Ho sebeletsa),
  • thomello le katoloso ea othomathike ea lits'ebetso ho latela tlhoko (hape e fanoa ke karolo Ho sebeletsa),
  • ho khetholla mehloli ea liketsahalo tse lebisang ho qalisoa ha ts'ebeliso (e fanoeng ke karolo Ketsahalong).

Karolo ea bohlokoa ke ho Sebeletsa, e fanang ka tlhophiso, ho eketsa lebelo la koloi, le taolo ea sephethephethe bakeng sa lits'ebetso tse laoloang. Kamora ho kenya Knative, o ntse o na le phihlello e felletseng ea Kubernetes API, e lumellang basebelisi ho laola lits'ebetso. tloaelehileng tsela, hape e thusa ho lokisa lits'ebeletso tsa Knative, ho sebetsa ka li-primitives tsa API tse sebelisoang ke lits'ebeletso tsena (mojule, lits'ebeletso, joalo-joalo).

Ka thuso ea Ho sebeletsa, tsela ea sephethephethe e botala bo boputsoa le eona e iketselitse, e netefatsa karohano ea sephethephethe lipakeng tsa mefuta e mecha le ea khale ea sesebelisoa ha mosebelisi a fana ka mofuta o ntlafalitsoeng oa sesebelisoa.

Knative ka boeona e itšetlehile ka ho kenya molaoli oa ingress o lumellanang. Nakong ea ho ngola sehlooho sena se tšehetsoa Gloo API Gateway и Istio Service Mesh. E tla hlophisa ingress e fumanehang ho tsamaisa sephethephethe ho lits'ebetso tse laoloang ke Knative.

Istio Service Mesh e ka ba ts'epo e kholo bakeng sa basebelisi ba Knative ba batlang ho e leka ntle le ho kenya phanele ea taolo ea Istio, kaha Knative e itšetlehile feela ka heke.

Ka lebaka lena, basebelisi ba bangata ba khetha Gloo e le monyako oa ho ea Knative, ho fana ka bokhoni bo tšoanang ho Istio (ka morero oa ho sebelisa Knative feela), ha ba ntse ba sebelisa lisebelisoa tse fokolang haholo le ho ba le litšenyehelo tse tlaase tsa ts'ebetso.

A re lekeng Knative ka liketso ho ema. Ke tla be ke sebelisa sehlopha se sa tsoa kenngoa se sebetsang ho GKE:

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

Ha re qale ho kenya Knative le Gloo. Sena se ka etsoa ka tatellano efe kapa efe:

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

Re netefatsa hore li-Pod tsohle li maemong a "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          44s

Gloo e se e loketse ho tsamaisoa, ha re theheng tšebeletso ea Knative ea auto-scaling (ha re e bitse kservice) le sephethephethe sa litsela ho eona.

Litšebeletso tsa Knative li fana ka tsela e bonolo ea ho isa likopo ho Kubernetes ho feta mokhoa o tloaelehileng oa Deployment+Service+Ingress. Re tla sebetsana le mohlala ona:

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

Ke kopitsitse sena faeleng, ebe ke e sebelisa sehlopheng sa ka sa Kubernetes ka tsela ena:

kubectl apply -f ksvc.yaml -n default

Re ka sheba lisebelisoa tse entsoeng ke Knative sehlopheng ka mor'a ho fana ka 'helloworld-go' ea rona. kservice:

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

The pod e nang le setšoantšo sa rona sa 'helloworld-go' e hlahisoa ha kservice e sebelisoa. Haeba ho se na sephethephethe, palo ea li-pods e tla fokotsoa ho zero. 'Me ka tsela e fapaneng, haeba palo ea likopo ka nako e le' ngoe e feta moeli o itseng o ka lokisoang, palo ea li-pods e tla eketseha.

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

Knative e hlophisa ho kenella ha eona ho sebelisa sesebelisoa se ikhethileng sa 'ingress' ho Knative API ea kahare. Gloo e sebelisa API ena e le tlhophiso ea eona ho fana ka likarolo tse kang tsa PaaS, ho kenyelletsa le mohlala oa phepelo ea botala bo boputsoa, ​​ts'ebetso ea othomathike ea TLS, ho qeta nako, le likarolo tse ling tse tsoetseng pele tsa ho tsamaisa.

Kamora nako, re bona hore li-pods tsa rona li nyametse (hobane ho ne ho se na sephethephethe se tlang):

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

Qetellong re tla leka ho ba fihlela. U ka fumana URL ea Knative Proxy ha bonolo ebile ha bonolo glooctl:

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

Ntle le ho kenngoa glooctl o ka bona aterese le boema-kepe ho ts'ebeletso ea 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

Ha re tsamaise data re sebelisa cURL:

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

Knative e fana ka hoo e batlang e le-PaaS bakeng sa bahlahisi ba ka holim'a Kubernetes e tsoang ka ntle ho lebokose ba sebelisa Gloo's high-performance, full-stack API gateway. Sengoliloeng sena se ngotse feela bokaholimo ba likhetho tse pharalletseng tsa Knative le likarolo tse ling. Hoa tšoana le ka Gloo!

Ho sa tsotellehe taba ea hore Knative e ntse e le morero o monyenyane, sehlopha sa eona se lokolla liphetolelo tse ncha ka mor'a libeke tse ling le tse ling tse tšeletseng, 'me ts'ebetsong ea likarolo tse tsoetseng pele li qalile, tse kang ho tsamaisoa ha TLS ka mokhoa o itekanetseng, ho lekanya ka mokhoa o itekanetseng oa phanele ea taolo. Ho na le monyetla o motle oa hore, ka lebaka la tšebelisano lipakeng tsa lik'hamphani tse ngata tsa maru, 'me e le motheo oa nyehelo e ncha ea Cloud Run ea Google, Knative e ka fetoha khetho ea mantlha bakeng sa komporo e se nang seva le PaaS ho Kubernetes. Latela litaba!

Ho tsoa ho Bahlophisi ba SouthBridge
Maikutlo a babali a bohlokoa ho rona, kahoo re u kopa ho nka karolo phuputsong e khuts'oane e amanang le lingoliloeng tsa nako e tlang mabapi le Knative, Kubernetes, komporo e se nang seva:

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

Na ke lokela ho tsoela pele ho ngola lingoliloeng le litataiso mabapi le komporo ea Knative le e se nang seva?

  • Ee ka kopo.

  • Che kea leboha.

Basebelisi ba 28 ba ile ba khetha. Basebelisi ba 4 ba hanne.

Source: www.habr.com

Eketsa ka tlhaloso