Knative - k8s-ku-saleysan madal-adeegga-as-a-adeegga oo leh taageero aan adeege lahayn

Knative - k8s-ku-saleysan madal-adeegga-as-a-adeegga oo leh taageero aan adeege lahayn

Kubernetes ayaa shaki la'aan noqday goobta ugu badan ee weel la geeyo. Waxay siisaa awoodda lagu xakameynayo ku dhawaad ​​wax kasta iyadoo la adeegsanayo API-yada iyo kantaroolayaasha gaarka ah ee ku fidinaya API-yada agabyada gaarka ah.

Si kastaba ha ahaatee, isticmaaluhu wali waa inuu sameeyaa go'aano faahfaahsan oo ku saabsan sida saxda ah ee loo diro, loo habeeyo, loo maareeyo, iyo cabbirka codsiyada. Arrimaha cabirka codsiga, ilaalinta, iyo socodka taraafikada ayaa weli ku jira go'aanka isticmaalaha. Tani waxay ka dhigaysaa Kubernetes marka laga reebo aaladaha caadiga ah adeeg ahaan (PaaS), sida Cloud Foundry iyo Heroku.

Goobuhu waxay leeyihiin is-dhexgal isticmaale oo la fududeeyay waxaana loogu talagalay horumariyeyaasha codsiyada kuwaas oo inta badan ku lug leh dejinta codsiyada gaarka ah. Jideynta, geynta, iyo cabbirada waxaa si hufan loogu maareeyaa isticmaalaha nidaamka hoose ee PaaS.

Socodka shaqada ee isha-markab waxaa gacanta ku haya PaaS iyadoo la abuurayo sawir weel gaar ah, geynaya, dejinaya waddo cusub iyo domain-hoosaadka DNS ee taraafikada soo socota. Waxaas oo dhan waxaa lagu bilaabay amar git push.

Kubernetes (si ula kac ah) waxay kaliya siisaa dhismooyinka asaasiga ah ee aaladahaas, taasoo bulshada uga tagaysa inay xor u tahay inay iyagu qabtaan shaqada. Sidee Kelsey Hightower ayaa yidhi:

Kubernetes waa madal lagu dhiso dhuftoyada. Booska ugu fiican ee bilawga ah, laakiin aan dhamaystirin.

Natiijo ahaan, waxaan aragnaa farabadan Kubernetes dhisay, iyo sidoo kale martigelinta shirkadaha isku dayaya inay abuuraan PaaS ee Kubernetes, sida OpenShift iyo Rancher. Iyada oo uu korayo suuqa Kube-PaaS, Knative, oo la aasaasay bishii Luulyo 2018 Google iyo Pivotal, ayaa gelaya giraanta.

Knative waxa iska kaashaday Google iyo Pivotal, iyada oo in yar ay caawimo ka heshay shirkado kale sida IBM, RedHat iyo Solo.im. Waxay siisaa waxyaabo la mid ah PaaS Kubernetes oo leh taageero heersare ah oo loogu talagalay codsiyada ku saleysan xisaabinta ee server-la'aanta ah. Si ka duwan sida Kubernetes wax u dhiso, Knative waxa lagu rakibay sidii kudar kutlada Kubernetes ee ku habboon oo lagu habeeyey agabka isticmaalaha.

Waa maxay Knative?

Knative waxaa lagu sifeeyaa "Madal ku saleysan Kubernetes oo loogu talagalay gudbinta iyo maareynta culeyska shaqada iyadoo la adeegsanayo xisaabinta casriga ah ee aan server-ka lahayn." Knative, iyada oo laftigeeda biilasha u bixinaysa sidii madal noocan oo kale ah, waxay si firfircoon u miisaamaysaa weelasha iyada oo loo eegayo codsiyada HTTP ee isku xidhan. Adeegyada aan la isticmaalin aakhirka waxay hoos ugu dhacaan eber, iyagoo bixinaya qaab aan adeege lahayn oo baahida loo qabo.

Knative wuxuu ka kooban yahay kontaroolayaal ku rakibaya kutlada Kubernetes oo bixiya awoodaha soo socda:

  • dhisidda codsiyada weel ku jira ee laga soo xigtay koodka isha (waxaa bixiyay qaybta dhis),
  • siinta marin u helidda taraafikada soo galaya codsiyada (oo ay bixiso qaybta adeegaya),
  • gaarsiinta iyo cabbirka tooska ah ee codsiyada dalabka (sidoo kale waxaa bixiya qaybta adeegaya),
  • aqoonsiga ilaha dhacdooyinka u horseedaya bilaabista arjiga (oo ay bixiso qaybta Dhacdo).

Qaybta muhiimka ah waa Adeegga, kaas oo bixisa bixinta, is-milliminta, iyo maamulka taraafikada ee codsiyada la maareeyay. Kadib rakibidda Knative, waxaad wali si buuxda u haysataa Kubernetes API, taasoo u oggolaanaysa isticmaalayaasha inay maamulaan codsiyada caadiga ah dariiqa, iyo sidoo kale u adeegta si ay u saxdo adeegyada Knative, la shaqaynta API primitives la mid ah ee adeegyadani isticmaalaan (modules, adeegyada, iwm.).

Iyada oo la kaashanayo Adeegga, marinka taraafikada buluuga-cagaaran sidoo kale waa si otomaatig ah, iyada oo hubinaysa kala soocida taraafikada ee u dhexeeya noocyada cusub iyo kuwa hore ee arjiga marka isticmaaluhu keeno nooca arjiga ee la cusboonaysiiyay.

Knative lafteedu waxay kuxirantahay rakibida kontaroolaha gudaha ee ku haboon. Waqtiga qorista maqaalkan waa la taageeray Gloo API Gateway ΠΈ Mesh Adeegga Istio. Waxay u habayn doontaa soo gelida diyaarka ah si ay ugu marto taraafikada codsiyada ay maamusho Knative.

Mesh Adeegga Istio waxay u noqon kartaa ku tiirsanaan weyn isticmaaleyaasha Knative ee raba inay tijaabiyaan iyaga oo aan rakibin guddiga kantaroolka ee Istio, maadaama Knative kaliya ay ku xiran tahay albaabka.

Sababtan awgeed, isticmaalayaasha intooda badani waxay doorbidaan Gloo sidii albaab laga soo galo Knative, iyagoo siinaya awood la mid ah Istio (ujeeddada isticmaalka Knative oo keliya), iyadoo sidoo kale adeegsanaysa ilo aad u yar isla markaana leh kharashyo hawleed oo hooseeya.

Aynu tijaabino Knative ficil ahaan meesha taagan. Waxaan isticmaali doonaa koox cusub oo lagu rakibay GKE:

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

Aan bilowno rakibidda Knative iyo Gloo. Tan waxaa lagu samayn karaa hab kasta:

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

Waxaan hubineynaa in dhammaan Pods-ku ay ku jiraan heerka "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 waxa ay diyaar u tahay habayn, aynu abuurno adeeg is-qiyaasaya Knative ( aynu u yeedhno kservice) oo aynu u marno taraafikada.

Adeegyada Knative waxay bixiyaan dariiq sahlan oo lagu gaarsiinayo codsiyada Kubernetes marka loo eego qaabka caadiga ah ee Deployment+Service+Ingress. Waxaan la shaqayn doonaa tusaalahan:

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

Tan waxaan ku koobiyay fayl, ka dib waxaan ugu dabaqay kooxdayda Kubernetes sidan:

kubectl apply -f ksvc.yaml -n default

Waxaan ku eegi karnaa agabka uu sameeyay Knative ee kutlada kadib bixinta 'helloworld-go' kservice:

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

Boodhka leh sawirkayaga 'helloworld-go' waxa la bilaabayaa marka kservice-ka la geeyo. Haddii aysan jirin wax taraafig ah, tirada boodhadhka waxaa lagu dhimi doonaa eber. Taas bedelkeeda, haddii tirada codsiyada isku mar ah ay ka badato xad la habeyn karo, tirada boodhka ayaa kordhin doonta.

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

Knative waxa uu habeeyaa soo galitaankiisa isaga oo isticmaalaya kheyraadka 'gudbinta' ee gaarka ah ee gudaha Knative API. Gloo waxa ay API-kan u isticmaashaa qaabaynteeda si ay u bixiso sifada PaaS-la mid ah, oo ay ku jiraan qaabka geynta buluuga ah-cagaaran, dhaqan gelinta tooska ah ee TLS, wakhtiyada, iyo sifooyinka kale ee marineed ee horumarsan.

Muddo ka dib, waxaan aragnaa in galalkayagii ay lumeen (maxaa yeelay ma jirin taraafikada soo socota):

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

Ugu dambeyntii waxaan isku dayi doonaa inaan gaarno iyaga. Waxaad si fudud oo sahlan ku heli kartaa URL-ka wakiilka Knative adigoo isticmaalaya glooctl:

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

Iyadoo aan la rakibin glooctl waxaad ka arki kartaa ciwaanka iyo dekada adeega 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

Aynu wadno xog annagoo adeegsanayna cURL:

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

Knative waxa ay siisaa ku dhawaad-PaaS horumariyeyasha dusha sare ee Kubernetes-ka-baxsanaanta iyada oo la adeegsanayo waxqabadka sare ee Gloo, albaabada API-ga buuxa. Boostada ayaa kaliya xoqday dusha sare ee Knative xulashooyinka is-beddelka ballaaran iyo sifooyin dheeri ah. Si la mid ah Gloo!

In kasta oo xaqiiqda ah in Knative uu weli yahay mashruuc da'yar, kooxdeedu waxay sii daayaan noocyo cusub lixdii toddobaadba mar, iyo hirgelinta sifooyinka horumarsan ayaa bilaabmay, sida si toos ah u geynta TLS, miisaan toos ah ee guddiga xakamaynta. Waxaa jirta fursad wanaagsan, taas oo ay ugu wacan tahay iskaashiga ka dhexeeya shirkado badan oo daruuro ah, iyo iyada oo saldhig u ah bixinta Google ee cusub ee Cloud Run, Knative wuxuu noqon karaa ikhtiyaarka koowaad ee xisaabinta server-la'aanta iyo PaaS ee Kubernetes. Lasoco wararka

Ka Tifaftirayaasha SouthBridge
Fikradaha akhristayaasha ayaa muhiim noo ah, marka waxaan ku waydiisanaynaa inaad ka qayb qaadato sahan gaaban oo la xidhiidha maqaallada mustaqbalka ee ku saabsan Knative, Kubernetes, xisaabinta server-la'aanta:

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Miyaan sii wadaa qorista maqaallada iyo hagayaasha ku saabsan xisaabinta Knative iyo serverless?

  • Haa fadlan.

  • Maya mahadsanid.

28 isticmaale ayaa codeeyay. 4 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment