{"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\/pl\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","title":{"rendered":"Knative \u2014 platforma jako us\u0142uga oparta na k8s z obs\u0142ug\u0105 serverless","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Knative \u2014 platforma jako us\u0142uga oparta na k8s z obs\u0142ug\u0105 serverless\" src=\"\/wp-content\/uploads\/2019\/11\/aea325ba02a1c869e3d4576c46a5ec1e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dominuj\u0105c\u0105 platform\u0105 do wdra\u017cania kontener\u00f3w niew\u0105tpliwie sta\u0142 si\u0119 Kubernetes. Umo\u017cliwia zarz\u0105dzanie praktycznie wszystkim, u\u017cywaj\u0105c swoich API oraz kontroler\u00f3w u\u017cytkownika, kt\u00f3re rozszerzaj\u0105 jego API poprzez zasoby u\u017cytkownika.<\/p>\n<p><\/p>\n<p>Niemniej u\u017cytkownik wci\u0105\u017c musi podejmowa\u0107 szczeg\u00f3\u0142owe decyzje dotycz\u0105ce tego, jak dok\u0142adnie wdra\u017ca\u0107, konfigurowa\u0107, zarz\u0105dza\u0107 i skalowa\u0107 aplikacje. U\u017cytkownik pozostaje odpowiedzialny za kwestie skalowania aplikacji, zabezpiecze\u0144 oraz zarz\u0105dzania ruchem. To w\u0142a\u015bnie r\u00f3\u017cni Kubernetes od typowych 'platform jako us\u0142uga' (PaaS), takich jak Cloud Foundry i Heroku.<\/p>\n<p><\/p>\n<p>Platformy maj\u0105 uproszczony interfejs u\u017cytkownika, skierowane s\u0105 do programist\u00f3w aplikacji, kt\u00f3rzy najcz\u0119\u015bciej zajmuj\u0105 si\u0119 konfiguracj\u0105 pojedynczych aplikacji. Routing, wdra\u017canie i metryki s\u0105 dla u\u017cytkownika zarz\u0105dzane przez podstawowy system PaaS.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Proces \u201ekod \u017ar\u00f3d\u0142owy \u2013 dostarczenie\u201d jest obs\u0142ugiwany przez PaaS poprzez utworzenie u\u017cytkowego obrazu kontenera, jego wdro\u017cenie, konfiguracj\u0119 nowego routing oraz poddomeny DNS dla nadchodz\u0105cego ruchu. Wszystko to uruchamia si\u0119 na polecenie <code>git push<\/code>.<\/p>\n<p><\/p>\n<p>W Kubernetes (celowo) dostarczane s\u0105 tylko podstawowe elementy dla takich platform, daj\u0105c spo\u0142eczno\u015bci mo\u017cliwo\u015b\u0107 samodzielnego wykonania tej pracy. Jak <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/kelseyhightower\/status\/935252923721793536\">powiedzia\u0142 Kelsey Hightower<\/a><\/noindex>:<\/p>\n<p><\/p>\n<blockquote><p>Kubernetes jest platform\u0105 do budowania platform. To najlepsza pozycja na start, ale nie na meta.<\/p><\/blockquote>\n<p>W rezultacie widzimy wiele rozwi\u0105za\u0144 Kubernetes, a tak\u017ce hosting\u00f3w, kt\u00f3re pr\u00f3buj\u0105 stworzy\u0107 PaaS dla Kubernetes, takich jak OpenShift i Rancher. Na tle rosn\u0105cego rynku Kube-PaaS na scen\u0119 wkracza Knative, powsta\u0142y w lipcu 2018 roku przez firmy Google i Pivotal.<\/p>\n<p><\/p>\n<p>Knative jest wynikiem wsp\u00f3\u0142pracy Google i Pivotal, z niewielkim wsparciem innych firm, takich jak IBM, RedHat i Solo.im. Oferuje podobne us\u0142ugi PaaS dla Kubernetes z pierwszorz\u0119dnym wsparciem aplikacji opartych na obliczeniach serverless. W przeciwie\u0144stwie do rozwi\u0105za\u0144 Kubernetes, Knative jest instalowane jako dodatek do ka\u017cdego kompatybilnego klastra Kubernetes i konfigurowane przez zasoby u\u017cytkownika.<\/p>\n<p><\/p>\n<h2 id=\"chto-takoe-knative\">Czym jest Knative?<\/h2>\n<p><\/p>\n<p>Knative opisany jest jako 'Platforma oparta na Kubernetes do dostarczania i zarz\u0105dzania obci\u0105\u017ceniami za pomoc\u0105 nowoczesnych oblicze\u0144 bezserwerowych'. Knative, og\u0142aszaj\u0105c si\u0119 takim rozwi\u0105zaniem, automatycznie skaluje kontenery proporcjonalnie do r\u00f3wnoczesnych \u017c\u0105da\u0144 HTTP. Niewykorzystywane us\u0142ugi z czasem s\u0105 skalowane do zera, co zapewnia elastyczne skalowanie na \u017c\u0105danie w stylu oblicze\u0144 bezserwerowych.<\/p>\n<p><\/p>\n<p>Knative sk\u0142ada si\u0119 z zestawu kontroler\u00f3w, kt\u00f3re mo\u017cna zainstalowa\u0107 w dowolnym klastrze Kubernetes i kt\u00f3re zapewniaj\u0105 nast\u0119puj\u0105ce mo\u017cliwo\u015bci:<\/p>\n<p><\/p>\n<ul>\n<li>tworzenie aplikacji konteneryzowanych z kodu \u017ar\u00f3d\u0142owego (zapewnia komponent <em>Build<\/em>),<\/li>\n<li>oferowanie dost\u0119pu do aplikacji dla nadchodz\u0105cego ruchu (zapewnia komponent <em>Serving<\/em>),<\/li>\n<li>dostarczanie i automatyczne skalowanie aplikacji na \u017c\u0105danie (r\u00f3wnie\u017c zapewnia komponent <em>Serving<\/em>),<\/li>\n<li>okre\u015blanie \u017ar\u00f3de\u0142 wydarze\u0144, kt\u00f3re powoduj\u0105 uruchamianie aplikacji (zapewnia komponent <em>Eventing<\/em>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Kluczowym komponentem jest Serving, kt\u00f3ry zapewnia dostarczanie, automatyczne skalowanie i zarz\u0105dzanie ruchem dla aplikacji sterowanych. Po zainstalowaniu Knative u\u017cytkownik wci\u0105\u017c ma pe\u0142ny dost\u0119p do API Kubernetes, co pozwala na zarz\u0105dzanie aplikacjami <em>w zwyk\u0142y<\/em> spos\u00f3b oraz s\u0142u\u017cy do debugowania us\u0142ug Knative, pracuj\u0105c z tymi samymi prymitywami API, kt\u00f3re te us\u0142ugi wykorzystuj\u0105 (modu\u0142y, us\u0142ugi itd.).<\/p>\n<p><\/p>\n<p>Za pomoc\u0105 Serving automatyzowane jest r\u00f3wnie\u017c routowanie ruchu blue-green, co zapewnia podzia\u0142 ruchu mi\u0119dzy nowe a stare wersje aplikacji podczas dostarczania przez u\u017cytkownika zaktualizowanej wersji aplikacji.<\/p>\n<p><\/p>\n<p>Sam Knative polega na instalacji kompatybilnego kontrolera ingress. W momencie pisania artyku\u0142u obs\u0142ugiwane s\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/gloo.solo.io\/\">Gloo API Gateway<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Istio Service Mesh<\/a><\/noindex>. Skonfiguruje on dost\u0119pny ingress do routowania ruchu do aplikacji zarz\u0105dzanych przez Knative.<\/p>\n<p><\/p>\n<p>Istio Service Mesh mo\u017ce sta\u0107 si\u0119 du\u017c\u0105 zale\u017cno\u015bci\u0105 dla u\u017cytkownik\u00f3w Knative, kt\u00f3rzy chc\u0105 spr\u00f3bowa\u0107 go bez instalacji panelu sterowania Istio, poniewa\u017c Knative polega tylko na bramie.<\/p>\n<p><\/p>\n<p>Z tego powodu wi\u0119kszo\u015b\u0107 u\u017cytkownik\u00f3w wybiera Gloo jako bram\u0119 dla Knative, kt\u00f3ra oferuje podobny zestaw funkcji jak Istio (je\u015bli chodzi o zastosowanie tylko Knative), a jednocze\u015bnie zu\u017cywa znacznie mniej zasob\u00f3w i generuje ni\u017csze koszty eksploatacji.<\/p>\n<p><\/p>\n<p>Sprawd\u017amy Knative w akcji na stanowisku. B\u0119d\u0119 u\u017cywa\u0107 \u015bwie\u017co zainstalowanego klastra uruchomionego w GKE:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get namespace\nNAME          STATUS   AGE\ndefault       Active   21h\nkube-public   Active   21h\nkube-system   Active   21h<\/code><\/pre>\n<p><\/p>\n<p>Przechodzimy do instalacji Knative i Gloo. Mo\u017cna to zrobi\u0107 w dowolnej kolejno\u015bci:<\/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>Sprawdzamy, czy wszystkie Pods s\u0105 w statusie 'Running':<\/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 jest gotowy do routingu, stw\u00f3rzmy automatycznie skalowaln\u0105 us\u0142ug\u0119 Knative (nazwiemy j\u0105 kservice) i skierujmy do niej ruch.<\/p>\n<p><\/p>\n<p>Us\u0142ugi Knative oferuj\u0105 \u0142atwiejszy spos\u00f3b dostarczania aplikacji do Kubernetes w por\u00f3wnaniu do tradycyjnego modelu Deployment+Service+Ingress. B\u0119dziemy pracowa\u0107 z takim przyk\u0142adem:<\/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: Knative user<\/code><\/pre>\n<p><\/p>\n<p>Skopiowa\u0142em to do pliku, a nast\u0119pnie zastosowa\u0142em go w moim klastrze Kubernetes w ten spos\u00f3b:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl apply -f ksvc.yaml -n default<\/code><\/pre>\n<p><\/p>\n<p>Mo\u017cemy zobaczy\u0107 zasoby stworzone przez Knative w klastrze po dostarczeniu naszego 'helloworld-go'. <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 z naszym obrazem 'helloworld-go' uruchamia si\u0119, gdy kservice jest wdra\u017cane. Je\u015bli nie b\u0119dzie ruchu, liczba pod\u00f3w zostanie zredukowana do zera. I odwrotnie, je\u015bli liczba r\u00f3wnoczesnych \u017c\u0105da\u0144 przekroczy pewn\u0105 konfigurowaln\u0105 warto\u015b\u0107 progow\u0105, liczba pod\u00f3w wzro\u015bnie.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get ingresses.networking.internal.knative.dev -n default\nNAME            READY   REASON\nhelloworld-go   True<\/code><\/pre>\n<p><\/p>\n<p>Knative konfiguruje sw\u00f3j ingress przy u\u017cyciu specjalnego zasobu 'ingress' w wewn\u0119trznym API Knative. Gloo wykorzystuje to API jako swoj\u0105 konfiguracj\u0119, aby zapewni\u0107 w\u0142a\u015bciwo\u015bci charakterystyczne dla PaaS, w tym model wdra\u017cania blue-green, automatyczne stosowanie TLS, czasowe limity i inne zaawansowane funkcje routingu.<\/p>\n<p><\/p>\n<p>Po chwili widzimy, \u017ce nasze pod'y znikn\u0119\u0142y (poniewa\u017c nie by\u0142o ruchu przychodz\u0105cego):<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get pod -n default\n\nNie znaleziono zasob\u00f3w.\nkubectl get deployment -n default\nNAZWA                             PO\u017b\u0104DANA   AKTUALNA   AKTUALIZOWANA   DOST\u0118PNA   WIEK\nhelloworld-go-fjp75-deployment   0         0         0            0           9m46s<\/code><\/pre>\n<p><\/p>\n<p>Na koniec spr\u00f3bujemy si\u0119 z nimi skontaktowa\u0107. Uzyskanie URL do Knative Proxy jest \u0142atwe i proste za pomoc\u0105 <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>Bez zainstalowanego <code>glooctl<\/code> mo\u017cna podejrze\u0107 adres i port w kube service:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get svc -n gloo-system knative-external-proxy\nNAZWA                     TYP           CLUSTER-IP     EXTERNAL-IP      PORT(Y)                      WIEK\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>Zr\u00f3bmy troch\u0119 danych z u\u017cyciem cURL:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">curl -H \"Host: helloworld-go.default.example.com\" http:\/\/35.190.151.188\nWitaj u\u017cytkowniku Knative!<\/code><\/pre>\n<p><\/p>\n<p>Knative oferuje niemal-PaaS dla programist\u00f3w na 'prosto z pude\u0142ka' Kubernetes, wykorzystuj\u0105c wysokowydajny, pe\u0142nofunkcjonalny bram\u0119 API Gloo. Ta notatka jedynie delikatnie porusza ogrom mo\u017cliwo\u015bci Knative, dost\u0119pnych do konfiguracji, jak r\u00f3wnie\u017c dodatkowych funkcji. Podobnie z Gloo!<\/p>\n<p><\/p>\n<p>Mimo \u017ce Knative to wci\u0105\u017c m\u0142ody projekt, jego zesp\u00f3\u0142 wydaje nowe wersje co sze\u015b\u0107 tygodni, rozpocz\u0119to implementacj\u0119 zaawansowanych funkcji, takich jak automatyczne wdra\u017canie TLS, automatyczne skalowanie panelu sterowania. Istnieje wysokie prawdopodobie\u0144stwo, \u017ce wskutek wsp\u00f3\u0142pracy licznych firm chmurowych i jako podstawa nowej oferty Cloud Run firmy Google, Knative mo\u017ce sta\u0107 si\u0119 kluczow\u0105 alternatyw\u0105 dla organizacji oblicze\u0144 bezserwerowych i PaaS w Kubernetes. \u015aled\u017acie nowo\u015bci!<\/p>\n<p><\/p>\n<p><em>Od redakcji SouthBridge<\/em><br \/>\nChcemy pozna\u0107 zdanie czytelnik\u00f3w, dlatego prosimy o udzia\u0142 w kr\u00f3tkiej ankiecie dotycz\u0105cej przysz\u0142ych artyku\u0142\u00f3w o Knative, Kubernetes, obliczeniach bezserwerowych:<\/p>\n<p class=\"for_users_only_msg\">Tylko zarejestrowani u\u017cytkownicy mog\u0105 bra\u0107 udzia\u0142 w ankiecie. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Zaloguj si\u0119<\/a><\/noindex>, prosz\u0119.<\/p>\n<h2 class=\"default-block__polling-title\">Czy mamy t\u0142umaczy\u0107 i pisa\u0107 dalsze artyku\u0142y oraz przewodniki o Knative i obliczeniach bezserwerowych?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Tak, prosz\u0119.<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Dzi\u0119kuj\u0119, nie trzeba.<\/p>\n<\/li>\n<\/ul>\n<p>    28 u\u017cytkownik\u00f3w odda\u0142o g\u0142os. 4 u\u017cytkownik\u00f3w wstrzyma\u0142o si\u0119.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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\/pl\/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=\"pl_PL\" \/>\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\/pl\/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 jako us\u0142uga oparta na k8s z wsparciem serverless | ProHoster","description":"Dominuj\u0105cej.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/52709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=52709"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/52709\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/52710"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=52709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=52709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=52709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}