Knative - tushen k8s dandamali-as-a-sabis tare da tallafi mara sabar

Knative - tushen k8s dandamali-as-a-sabis tare da tallafi mara sabar

Babu shakka Kubernetes ya zama babban dandamali don tura kwantena. Yana ba da ikon sarrafa kusan komai ta amfani da APIs ɗin sa da masu kula da al'ada waɗanda ke haɓaka APIs tare da albarkatun al'ada.

Koyaya, har yanzu mai amfani dole ne yayi cikakken yanke shawara game da ainihin yadda ake turawa, daidaitawa, sarrafa, da aikace-aikacen sikelin. Batutuwa na sikelin aikace-aikacen, kariya, da zirga-zirga sun kasance bisa ga shawarar mai amfani. Wannan ya keɓance Kubernetes baya ga dandamali na al'ada azaman sabis (PaaS), kamar Cloud Foundry da Heroku.

Kafofin watsa labarun suna da sauƙaƙan ƙirar mai amfani kuma ana nufin masu haɓaka aikace-aikacen waɗanda galibi ke da hannu wajen saita aikace-aikacen mutum ɗaya. Ana sarrafa tuƙi, turawa, da ma'auni a bayyane ga mai amfani ta tsarin PaaS na asali.

Ana gudanar da aikin tushen-zuwa-jirgin aiki ta hanyar PaaS ta hanyar ƙirƙirar hoton kwantena na al'ada, ƙaddamar da shi, kafa sabuwar hanya da yanki na DNS don zirga-zirga mai shigowa. Ana ƙaddamar da duk wannan akan umarni git push.

Kubernetes (da gangan) kawai yana ba da ginshiƙan ginin gine-gine don irin waɗannan dandamali, yana barin al'umma 'yancin yin aikin da kansu. Yaya Kelsey Hightower ya ce:

Kubernetes dandamali ne don gina dandamali. Matsayi mafi kyau don farawa, amma ba ƙarewa ba.

A sakamakon haka, muna ganin gungu na Kubernetes yana ginawa, da kuma kamfanoni masu ɗaukar nauyi waɗanda ke ƙoƙarin ƙirƙirar PaaS don Kubernetes, kamar OpenShift da Rancher. A tsakiyar kasuwar Kube-PaaS mai girma, Knative, wanda Google da Pivotal suka kafa a watan Yuli 2018, yana shiga cikin zobe.

Knative haɗin gwiwa ne tsakanin Google da Pivotal, tare da ɗan taimako daga wasu kamfanoni kamar IBM, RedHat da Solo.im. Yana ba da irin waɗannan abubuwan PaaS zuwa Kubernetes tare da babban tallafi don aikace-aikacen tushen kwamfuta mara sabar. Ba kamar Gina Kubernetes ba, an shigar da Knative azaman ƙari akan kowane gungu na Kubernetes mai jituwa kuma an saita shi ta hanyar albarkatun mai amfani.

Menene Knative?

An kwatanta Knative a matsayin "Tsarin tushen Kubernetes don bayarwa da sarrafa nauyin aiki ta amfani da na'ura mai kwakwalwa ta zamani." Knative, yayin da yake lissafin kansa a matsayin irin wannan dandali, yana ƙwaƙƙwaran sarrafa kwantena daidai da buƙatun HTTP na lokaci guda. Ayyukan da ba a yi amfani da su ba daga ƙarshe sun yi ƙasa zuwa sifili, suna samar da tsarin sifili mara amfani.

Knative ya ƙunshi saitin masu sarrafawa waɗanda ke shigarwa a cikin kowane gungu na Kubernetes kuma yana ba da damar masu zuwa:

  • ginin rumbun aikace-aikace daga lambar tushe (wanda aka samar ta bangaren Gina),
  • samar da dama ga zirga-zirga masu shigowa zuwa aikace-aikacen (wanda aka samar ta bangaren bauta),
  • isarwa da sikelin atomatik na aikace-aikacen akan buƙata (wanda aka bayar ta bangaren bauta),
  • gano tushen abubuwan da ke haifar da ƙaddamar da aikace-aikacen (wanda aka samar ta bangaren Maraice).

Wani mahimmin sashi shine Hidima, wanda ke ba da tanadi, daidaitawa ta atomatik, da sarrafa zirga-zirga don aikace-aikacen sarrafawa. Bayan shigar da Knative, har yanzu kuna da cikakkiyar dama ga Kubernetes API, kyale masu amfani su sarrafa aikace-aikace talakawa hanya, kuma yana aiki don gyara ayyukan Knative, yana aiki tare da manyan abubuwan API iri ɗaya waɗanda waɗannan ayyukan ke amfani da su (modules, ayyuka, da sauransu).

Tare da taimakon Hidima, hanyar zirga-zirgar shuɗi-koren itama tana sarrafa kanta, yana tabbatar da rarrabuwar ababen hawa tsakanin sababbi da tsofaffin nau'ikan aikace-aikacen lokacin da mai amfani ya ba da sabon sigar aikace-aikacen.

Knative kanta ya dogara da shigar da mai sarrafa ingress mai jituwa. A lokacin rubuta wannan labarin ana tallafawa Gloo API Gateway и Gidan Sabis na Istio. Zai saita samuwan shiga don yin hanyar zirga-zirga zuwa aikace-aikacen da Knative ke sarrafa.

Mesh Sabis na Istio na iya zama babban dogaro ga masu amfani da Knative da ke son gwada shi ba tare da shigar da kwamitin kula da Istio ba, tunda Knative ya dogara ne kawai akan ƙofa.

Saboda wannan dalili, yawancin masu amfani sun fi son Gloo a matsayin ƙofa zuwa Knative, suna ba da irin wannan tsari na iyawa ga Istio (don amfani da Knative kawai), yayin da kuma ke amfani da ƙarancin albarkatu da samun ƙananan farashin aiki.

Bari mu gwada Knative a aikace a kan tsayawar. Zan yi amfani da sabon shigar gungu mai gudana a cikin GKE:

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

Bari mu fara shigar da Knative da Gloo. Ana iya yin wannan ta kowane tsari:

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

Muna duba cewa duk Pods suna cikin halin "Gudun":

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 yana shirye don yin tuƙi, bari mu ƙirƙiri sabis na Knative mai sarrafa kansa (bari mu kira shi kservice) da hanyar zirga-zirga zuwa gare shi.

Ayyukan Knative suna ba da hanya mafi sauƙi don isar da aikace-aikace zuwa Kubernetes fiye da na al'ada Deployment+Service+Ingress model. Za mu yi aiki tare da wannan misali:

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

Na kwafi wannan zuwa fayil, sannan na yi amfani da shi zuwa gungu na Kubernetes ta wannan hanya:

kubectl apply -f ksvc.yaml -n default

Za mu iya duba albarkatun da Knative ya ƙirƙira a cikin gungu bayan isar da 'helloworld-go' kservice:

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

An ƙaddamar da kwas ɗin tare da hotonmu na 'helloworld-go' lokacin da aka tura kservice. Idan babu zirga-zirga, za a rage adadin kwas ɗin zuwa sifili. Kuma akasin haka, idan adadin buƙatun lokaci guda ya zarce ƙayyadaddun ƙayyadaddun ƙofa, adadin kwas ɗin zai ƙaru.

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

Knative yana daidaita shigar sa ta amfani da albarkatun 'shiga' na musamman a cikin Knative API na ciki. Gloo yana amfani da wannan API azaman tsarin sa don samar da fasalulluka-kamar PaaS, gami da samfurin tura shuɗi-kore, tilastawa TLS ta atomatik, ɓangarorin lokaci, da sauran fasalulluka na ci gaba.

Bayan wani lokaci, mun ga cewa kwas ɗinmu sun ɓace (saboda babu zirga-zirga mai shigowa):

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

A karshe za mu yi kokarin isa gare su. Kuna iya samun URL cikin sauƙi da sauƙi don wakili na Knative ta amfani da shi glooctl:

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

Ba tare da shigar ba glooctl za ku iya ganin adireshi da tashar jiragen ruwa a cikin sabis ɗin 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

Bari mu gudanar da wasu bayanai ta amfani da cURL:

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

Knative yana ba da kusan-PaaS ga masu haɓakawa a saman Kubernetes na waje ta hanyar amfani da babban aikin Gloo, ƙofar API mai cikakken tari. Wannan sakon ya tokare saman manyan zaɓuɓɓukan gyare-gyare na Knative da ƙarin fasali. Hakanan da Gloo!

Duk da cewa Knative har yanzu matashi ne, ƙungiyarsa tana fitar da sabbin sigogin kowane mako shida, kuma an fara aiwatar da abubuwan ci gaba, kamar tura TLS ta atomatik, sikelin atomatik na kwamitin kulawa. Akwai kyakkyawar dama cewa, sakamakon haɗin gwiwar tsakanin kamfanonin girgije da yawa, kuma a matsayin tushen sabon sadaukarwar Cloud Run na Google, Knative na iya zama zaɓi na farko don ƙididdigar uwar garken da PaaS akan Kubernetes. Bi labarai!

Daga Editocin SouthBridge
Ra'ayoyin masu karatu suna da mahimmanci a gare mu, don haka muna neman ku da ku shiga cikin ɗan gajeren bincike mai alaƙa da labarai na gaba game da Knative, Kubernetes, kwamfuta mara amfani:

Masu amfani da rajista kawai za su iya shiga cikin binciken. Shigadon Allah.

Ci gaba da rubuta labarai da jagorori game da Knative da ƙididdiga marasa sabar?

  • Ee don Allah.

  • A'a na gode.

28 masu amfani sun kada kuri'a. Masu amfani 4 sun kaurace.

source: www.habr.com

Add a comment