{"id":52709,"date":"2019-11-15T00:00:00","date_gmt":"2019-11-14T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless"},"modified":"2020-02-18T14:00:30","modified_gmt":"2020-02-18T11:00:30","slug":"knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","title":{"rendered":"Knative \u2014 platform\u00eb si sh\u00ebrbim bazuar n\u00eb k8s me mb\u00ebshtetje p\u00ebr serverless","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Knative \u2014 platform\u00eb si sh\u00ebrbim bazuar n\u00eb k8s me mb\u00ebshtetje p\u00ebr serverless\" src=\"\/wp-content\/uploads\/2019\/11\/aea325ba02a1c869e3d4576c46a5ec1e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Platforma dominuese p\u00ebr vendosjen e konteiner\u00ebve, pa dyshim, \u00ebsht\u00eb Kubernetes. Ajo ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb menaxhuar gjith\u00e7ka, duke p\u00ebrdorur API-t\u00eb e saj dhe kontrolluesit p\u00ebrdorues q\u00eb zgjasin API-t\u00eb e saj p\u00ebrmes burimeve t\u00eb p\u00ebrdoruesit.<\/p>\n<p><\/p>\n<p>\u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0441\u0435 \u0435\u0449\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0437\u0430\u0449\u0438\u0442\u044b, \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u042d\u0442\u0438\u043c Kubernetes \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 &#171;\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u043a\u0430\u043a \u0443\u0441\u043b\u0443\u0433\u0430&#187; (PaaS), \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 Cloud Foundry \u0438 Heroku.<\/p>\n<p><\/p>\n<p>Platforma ofrojn\u00eb nj\u00eb nd\u00ebrfaqe p\u00ebrdoruesi t\u00eb thjesht\u00ebzuar, t\u00eb orientuar drejt zhvilluesve t\u00eb aplikacioneve, t\u00eb cil\u00ebt shpesh merren me konfigurimin e aplikacioneve t\u00eb ve\u00e7anta. Rrug\u00ebzimi, vendosja dhe metrikat menaxhohen n\u00eb m\u00ebnyr\u00eb transparente p\u00ebr p\u00ebrdoruesin nga sistemi baz\u00eb PaaS.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Pun\u00ebtori \"burim kodi \u2013 dor\u00ebzim\" p\u00ebrpunon PaaS duke krijuar nj\u00eb imazh t\u00eb personalizuar t\u00eb konteinerit, duke e vendosur at\u00eb, duke konfiguruar nj\u00eb rrug\u00eb t\u00eb re dhe nj\u00eb n\u00ebn-domain DNS p\u00ebr trafikun e ardhsh\u00ebm. T\u00eb gjitha k\u00ebto nisin me komand\u00ebn <code>git push<\/code>.<\/p>\n<p><\/p>\n<p>N\u00eb Kubernetes (me q\u00ebllim) ofrohen vet\u00ebm blloqet bazike p\u00ebr k\u00ebto platforma, duke i dh\u00ebn\u00eb komunitetit mund\u00ebsin\u00eb p\u00ebr ta b\u00ebr\u00eb k\u00ebt\u00eb pun\u00eb vet\u00eb. Si\u00e7 <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/kelseyhightower\/status\/935252923721793536\">tha Kelsey Hightower<\/a><\/noindex>:<\/p>\n<p><\/p>\n<blockquote><p>Kubernetes \u00ebsht\u00eb nj\u00eb platform\u00eb p\u00ebr nd\u00ebrtimin e platformave. Pozita m\u00eb e mir\u00eb p\u00ebr t\u00eb nisur, por jo p\u00ebr t\u00eb p\u00ebrfunduar.<\/p><\/blockquote>\n<p>Si rezultat, ne shohim nj\u00eb grumbull nd\u00ebrtimesh Kubernetes, si dhe hostesh q\u00eb p\u00ebrpiqen t\u00eb krijojn\u00eb PaaS p\u00ebr Kubernetes, si\u00e7 jan\u00eb OpenShift dhe Rancher. N\u00eb kontekstin e tregut n\u00eb rritje Kube-PaaS, n\u00eb sken\u00eb del Knative, i krijuar n\u00eb korrik 2018 nga kompanit\u00eb Google dhe Pivotal.<\/p>\n<p><\/p>\n<p>Knative u krijua si rezultat i pun\u00ebs s\u00eb p\u00ebrbashk\u00ebt t\u00eb Google dhe Pivotal, me mb\u00ebshtetje t\u00eb vog\u00ebl nga kompani t\u00eb tjera, si IBM, RedHat dhe Solo.im. Ai ofron gj\u00ebra t\u00eb ngjashme PaaS p\u00ebr Kubernetes me mb\u00ebshtetje t\u00eb klasit t\u00eb par\u00eb p\u00ebr aplikacione t\u00eb bazuara n\u00eb llogaritje pa server. Ndryshe nga nd\u00ebrtimet e Kubernetes, Knative instalohet si nj\u00eb shtes\u00eb n\u00eb \u00e7do grup Kubernetes t\u00eb p\u00ebrputhsh\u00ebm, duke u konfiguruar p\u00ebrmes burimeve t\u00eb p\u00ebrdoruesit.<\/p>\n<p><\/p>\n<h2 id=\"chto-takoe-knative\">\u00c7far\u00eb \u00ebsht\u00eb Knative?<\/h2>\n<p><\/p>\n<p>Knative \u043e\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a &#171;\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Kubernetes \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439&#187;. Knative, \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044f \u0441\u0435\u0431\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439, \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c HTTP. \u041d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043e \u043d\u0443\u043b\u044f, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e \u0432 \u0441\u0442\u0438\u043b\u0435 \u0431\u0435\u0441\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.<\/p>\n<p><\/p>\n<p>Knative p\u00ebrb\u00ebhet nga nj\u00eb grup kontrolluesish q\u00eb instalohen n\u00eb \u00e7do klaster Kubernetes dhe ofrojn\u00eb k\u00ebto mund\u00ebsi:<\/p>\n<p><\/p>\n<ul>\n<li>nd\u00ebrtimi i aplikacioneve t\u00eb kontejnerizuara nga kodi burimor (ofrohet nga komponenti <em>Build<\/em>),<\/li>\n<li>sigurimi i aksesit t\u00eb trafikut t\u00eb ardhsh\u00ebm n\u00eb aplikacione (ofrohet nga komponenti <em>Serving<\/em>),<\/li>\n<li>d\u00ebrgimi dhe automatizimi i shkall\u00ebzimit t\u00eb aplikacioneve sipas nevoj\u00ebs (po ashtu ofrohet nga komponenti <em>Serving<\/em>),<\/li>\n<li>definimi i burimeve t\u00eb ngjarjeve q\u00eb \u00e7ojn\u00eb n\u00eb aktivizimin e aplikacioneve (ofrohet nga komponenti <em>Eventing<\/em>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Komponenti kryesor \u00ebsht\u00eb Serving, i cili ofron d\u00ebrgimin, shkall\u00ebzimin automatike dhe menaxhimin e kalimit t\u00eb trafikut p\u00ebr aplikacionet e menaxhuara. Pas instalimit t\u00eb Knative, mbetet akoma qasja e plot\u00eb n\u00eb API-n\u00eb e Kubernetes, q\u00eb u lejon p\u00ebrdoruesve t\u00eb menaxhojn\u00eb aplikacionet <em>n\u00eb m\u00ebnyr\u00ebn<\/em> m\u00eb t\u00eb zakonshme, si dhe sh\u00ebrben p\u00ebr ndihm\u00ebn e sh\u00ebrbimeve Knative, duke punuar me t\u00eb nj\u00ebjtat primitive API q\u00eb k\u00ebto sh\u00ebrbime p\u00ebrdorin (modulet, sh\u00ebrbimet, etj.).<\/p>\n<p><\/p>\n<p>Me ndihm\u00ebn e Serving gjithashtu automatizohet kalimi i trafikut blue-green, duke siguruar ndarjen e trafiksh\u00ebm midis versioneve t\u00eb reja dhe atyre t\u00eb vjetra t\u00eb aplikacionit kur p\u00ebrdoruesi d\u00ebrgon nj\u00eb version t\u00eb p\u00ebrdit\u00ebsuar t\u00eb aplikacionit.<\/p>\n<p><\/p>\n<p>Knative varet nga instalimi i nj\u00eb kontrolluesi ingress t\u00eb p\u00ebrputhsh\u00ebm. N\u00eb momentin e shkrimit t\u00eb k\u00ebtij artikulli, mb\u00ebshteten <noindex><a rel=\"nofollow\" href=\"https:\/\/gloo.solo.io\/\">Gloo API Gateway<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio Service Mesh<\/a><\/noindex>. Ai do t\u00eb konfiguroj\u00eb ingress-in e disponuesh\u00ebm p\u00ebr t\u00eb rregulluar trafikun drejt aplikacioneve t\u00eb menaxhuara nga Knative.<\/p>\n<p><\/p>\n<p>Istio Service Mesh mund t\u00eb b\u00ebhet nj\u00eb var\u00ebsi e madhe p\u00ebr p\u00ebrdoruesit Knative q\u00eb d\u00ebshirojn\u00eb ta provojn\u00eb at\u00eb pa instaluar panelin e kontrollit Istio, pasi Knative varet vet\u00ebm nga gateway.<\/p>\n<p><\/p>\n<p>P\u00ebr k\u00ebt\u00eb arsye, shumica e p\u00ebrdoruesve preferojn\u00eb Gloo si port\u00eb p\u00ebr Knative, duke ofruar nj\u00eb grup t\u00eb ngjash\u00ebm mund\u00ebsish me Istio (kur flasim p\u00ebr q\u00ebllimin e p\u00ebrdorimit vet\u00ebm t\u00eb Knative), si dhe duke p\u00ebrdorur ndjesh\u00ebm m\u00eb pak resurse dhe duke krijuar kostot m\u00eb t\u00eb ul\u00ebta t\u00eb funksionimit.<\/p>\n<p><\/p>\n<p>Le t\u00eb shohim Knative n\u00eb veprim n\u00eb nj\u00eb sken\u00eb. Do t\u00eb p\u00ebrdor nj\u00eb klaster t\u00eb sapoinstaluar, t\u00eb nisur n\u00eb GKE:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get namespace\nNAME          STATUS   AGE\ndefault       Aktiv   21h\nkube-public   Aktiv   21h\nkube-system   Aktiv   21h<\/code><\/pre>\n<p><\/p>\n<p>T\u00eb fillojm\u00eb me instalimin e Knative dhe Gloo. Kjo mund t\u00eb b\u00ebhet n\u00eb \u00e7do rend:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># \u0441\u0442\u0430\u0432\u0438\u043c Knative-Serving\nkubectl apply -f \n https:\/\/github.com\/knative\/serving\/releases\/download\/v0.8.0\/serving-core.yaml\nnamespace\/knative-serving created\n# ...\n# \u0441\u0442\u0430\u0432\u0438\u043c Gloo\nkubectl apply -f \n  https:\/\/github.com\/solo-io\/gloo\/releases\/download\/v0.18.22\/gloo-knative.yaml\nnamespace\/gloo-system created\n# ...<\/code><\/pre>\n<p><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 Pods \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 &#171;Running&#187;:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get pod -n knative-serving\nNAME                              READY   STATUS    RESTARTS   AGE\nactivator-5dd55958cc-fkp7r        1\/1     Running   0          7m32s\nautoscaler-fd66459b7-7d5s2        1\/1     Running   0          7m31s\nautoscaler-hpa-85b5667df4-mdjch   1\/1     Running   0          7m32s\ncontroller-85c8bb7ffd-nj9cs       1\/1     Running   0          7m29s\nwebhook-5bd79b5c8b-7czrm          1\/1     Running   0          7m29s\nkubectl get pod -n gloo-system\nNAME                                      READY   STATUS    RESTARTS   AGE\ndiscovery-69548c8475-fvh7q                1\/1     Running   0          44s\ngloo-5b6954d7c7-7rfk9                     1\/1     Running   0          45s\ningress-6c46cdf6f6-jwj7m                  1\/1     Running   0          44s\nknative-external-proxy-7dd7665869-x9xkg   1\/1     Running   0          44s\nknative-internal-proxy-7775476875-9xvdg   1\/1     Running   0          44s<\/code><\/pre>\n<p><\/p>\n<p>Gloo \u00ebsht\u00eb gatsh\u00ebm p\u00ebr ruterimin, le t\u00eb krijojm\u00eb nj\u00eb sh\u00ebrbim Knative q\u00eb mund t\u00eb p\u00ebrshtatet automatikisht (t\u00eb cilin do ta quajm\u00eb kservice) dhe t\u00eb drejtojm\u00eb trafikun tek ai.<\/p>\n<p><\/p>\n<p>Sh\u00ebrbimet Knative ofrojn\u00eb nj\u00eb m\u00ebnyr\u00eb m\u00eb t\u00eb leht\u00eb p\u00ebr t\u00eb shp\u00ebrndar\u00eb aplikacione n\u00eb Kubernetes \u2014 n\u00eb krahasim me modelin e zakonsh\u00ebm Deployment+Service+Ingress. Do t\u00eb punojm\u00eb me nj\u00eb shembull t\u00eb till\u00eb:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apiVersion: serving.knative.dev\/v1alpha1\nkind: Service\nmetadata:\n name: helloworld-go\n namespace: default\nspec:\n template:\n   spec:\n     containers:\n       - image: gcr.io\/knative-samples\/helloworld-go\n         env:\n           - name: TARGET\n             Value: P\u00ebrdorues Knative<\/code><\/pre>\n<p><\/p>\n<p>E kam kopjuar k\u00ebt\u00eb n\u00eb nj\u00eb file, pastaj e aplikova at\u00eb n\u00eb klasterin tim Kubernetes n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl apply -f ksvc.yaml -n default<\/code><\/pre>\n<p><\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 Knative \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e &#8216;helloworld-go&#8217; <em>kservice<\/em>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get pod -n default\nNAME                                              READY   STATUS    RESTARTS   AGE\nhelloworld-go-fjp75-deployment-678b965ccb-sfpn8   2\/2     Running   0          68s<\/code><\/pre>\n<p><\/p>\n<p>Pod \u0441 \u043d\u0430\u0448\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c &#8216;helloworld-go&#8217; \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 kservice. \u0415\u0441\u043b\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u2014 \u0447\u0438\u0441\u043b\u043e pod&#8217;\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043e \u0434\u043e \u043d\u0443\u043b\u044f. \u0418 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0435\u0441\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u043e\u0435 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u0447\u0438\u0441\u043b\u043e pod&#8217;\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u0438.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get ingresses.networking.internal.knative.dev -n default\nNAME            READY   REASON\nhelloworld-go   E v\u00ebrtet\u00eb<\/code><\/pre>\n<p><\/p>\n<p>Knative \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0439 ingress \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0441\u043e\u0431\u043e\u0433\u043e &#8216;ingress&#8217; \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c API Knative. Gloo \u0431\u0435\u0440\u0435\u0442 \u044d\u0442\u043e\u0442 API \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043f\u0440\u0438\u0441\u0443\u0449\u0438\u0445 PaaS, \u0432\u043a\u043b\u044e\u0447\u0430\u044f blue-green \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 TLS, \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u044b \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p><\/p>\n<p>Pas pak kohe, ne v\u00ebrejm\u00eb se pod-et tona jan\u00eb zhdukur (pasi nuk kishte trafik n\u00eb hyrje):<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get pod -n default\n\nNuk jan\u00eb gjetur burime.\nkubectl get deployment -n default\nEMRI                             D\u00cbSHIRUAR   AKTUAL   DERGIM I D\u00cbSHIRUAR   I DISPONUESH\u00cbM   MOSHA\nhelloworld-go-fjp75-deployment   0         0         0            0           9m46s<\/code><\/pre>\n<p><\/p>\n<p>S\u00eb fundmi, ne do t\u00eb mundohemi t'i qasemi atyre. T\u00eb marrim URL-n\u00eb p\u00ebr Knative Proxy \u00ebsht\u00eb e leht\u00eb dhe e thjesht\u00eb me an\u00eb t\u00eb <code>glooctl<\/code>:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">glooctl proxy url --name knative-external-proxy\nhttp:\/\/35.190.151.188:80<\/code><\/pre>\n<p><\/p>\n<p>Pa instaluar <code>glooctl<\/code> mund t\u00eb shikoni adres\u00ebn dhe portin n\u00eb kube service:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get svc -n gloo-system knative-external-proxy\nEMRI                     LLOJI           CLUSTER-IP     EXTERNAL-IP      PORT(S)                      MOSHA\nknative-external-proxy   LoadBalancer   10.16.11.157   35.190.151.188   80:32168\/TCP,443:30729\/TCP   77m<\/code><\/pre>\n<p><\/p>\n<p>Le t\u00eb ekzekutojm\u00eb pak t\u00eb dh\u00ebna me an\u00eb t\u00eb cURL:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">curl -H \"Host: helloworld-go.default.example.com\" http:\/\/35.190.151.188\nP\u00ebrsh\u00ebndetje p\u00ebrdorues i Knative!<\/code><\/pre>\n<p><\/p>\n<p>Knative \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0447\u0442\u0438-PaaS \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e\u0432\u0435\u0440\u0445 &#171;\u0438\u0437\u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0433\u043e&#187; Kubernetes, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u043b\u044e\u0437 API Gloo. \u042d\u0442\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u043b\u0438\u0448\u044c \u0441\u043b\u0435\u0433\u043a\u0430 \u043a\u043e\u0441\u043d\u0443\u043b\u0430\u0441\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 Knative, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438 \u0441 Gloo!<\/p>\n<p><\/p>\n<p>Pavar\u00ebsisht faktit se Knative \u00ebsht\u00eb ende nj\u00eb projekt i ri, ekipi i tij l\u00ebshon versione t\u00eb reja \u00e7do gjasht\u00eb jav\u00eb, duke filluar implementimin e ve\u00e7orive t\u00eb avancuara, si zbatimi automatik i TLS dhe auto-skalimi i panelit t\u00eb kontrollit. Ka shanse t\u00eb larta q\u00eb p\u00ebr shkak t\u00eb bashk\u00ebpunimit t\u00eb kompanive t\u00eb shumta t\u00eb cloud, si dhe si baz\u00eb p\u00ebr ofert\u00ebn e re Cloud Run nga Google, Knative mund t\u00eb b\u00ebhet opsioni kryesor p\u00ebr organizimin e llogaritjeve pa server dhe PaaS n\u00eb Kubernetes. Q\u00ebndroni t\u00eb informuar!<\/p>\n<p><\/p>\n<p><em>Nga redaksia e SouthBridge<\/em><br \/>\nNa intereson mendimi i lexuesve, prandaj ju lutemi t\u00eb merrni pjes\u00eb n\u00eb nj\u00eb anket\u00eb t\u00eb vog\u00ebl n\u00eb lidhje me artikujt e ardhsh\u00ebm mbi Knative, Kubernetes, llogaritjet pa server:<\/p>\n<p class=\"for_users_only_msg\">Vet\u00ebm p\u00ebrdoruesit e regjistruar mund t\u00eb marrin pjes\u00eb n\u00eb anket\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Hyni<\/a><\/noindex>, ju lutem.<\/p>\n<h2 class=\"default-block__polling-title\">T\u00eb p\u00ebrkthejm\u00eb, t\u00eb shkruajm\u00eb m\u00eb shum\u00eb artikuj dhe udh\u00ebzime mbi Knative dhe llogaritjet pa server?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Po, ju lutem.<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Faleminderit, jo.<\/p>\n<\/li>\n<\/ul>\n<p>    28 p\u00ebrdorues votuan. 4 p\u00ebrdorues abstenuan.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/475630\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432, \u043d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e, \u0441\u0442\u0430\u043b Kubernetes. \u041e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0432\u043e\u0438 API \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0438\u0435 \u0435\u0433\u043e API \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0441\u0435 \u0435\u0449\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0437\u0430\u0449\u0438\u0442\u044b, \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":52710,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0435\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Knative \u2014 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043a\u0430\u043a \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 k8s \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 serverless | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0435\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-14T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Knative \u2014 platforma si sh\u00ebrbim e bazuar n\u00eb k8s me mb\u00ebshtetje p\u00ebr serverless | ProHoster","description":"Dominues.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Knative \u2014 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043a\u0430\u043a \u0443\u0441\u043b\u0443\u0433\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 k8s \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 serverless | ProHoster","og:description":"\u0414\u043e\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0435\u0439.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-14T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52709","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 04:33:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:38:24","updated":"2026-01-24 04:33:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/52709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=52709"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/52709\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/52710"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=52709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=52709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=52709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}