{"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\/en\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","title":{"rendered":"Knative \u2013 Platform as a Service based on k8s with serverless support","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Knative \u2013 Platform as a Service based on k8s with serverless support\" src=\"\/wp-content\/uploads\/2019\/11\/aea325ba02a1c869e3d4576c46a5ec1e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kubernetes has undoubtedly become the dominant platform for container deployment. It allows for management of virtually everything using its APIs and custom controllers that extend its API through custom resources.<\/p>\n<p><\/p>\n<p>However, the user still needs to make detailed decisions about how to deploy, configure, manage, and scale applications. Questions concerning application scaling, security, and traffic management remain at the user's discretion. This is what distinguishes Kubernetes from typical \"platforms as a service\" (PaaS), such as Cloud Foundry and Heroku.<\/p>\n<p><\/p>\n<p>These platforms feature a simplified user interface aimed at application developers, who often focus on configuring individual applications. Routing, deployment, and metrics are transparently managed by the underlying PaaS system.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>The workflow of \u2018source code to delivery\u2019 is handled by PaaS through the creation of a custom container image, its deployment, the setup of a new route, and a DNS subdomain for incoming traffic. All of this is triggered on command. <code>git push<\/code>.<\/p>\n<p><\/p>\n<p>In Kubernetes, only the basic building blocks are intentionally provided for such platforms, giving the community the opportunity to do this work themselves. As <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/kelseyhightower\/status\/935252923721793536\">Kelsey Hightower said,<\/a><\/noindex>:<\/p>\n<p><\/p>\n<blockquote><p>Kubernetes is a platform for building platforms. The best starting point, but not the finish line.<\/p><\/blockquote>\n<p>As a result, we see a flurry of Kubernetes builds and hosting solutions attempting to create PaaS for Kubernetes, such as OpenShift and Rancher. Against the backdrop of a growing Kube-PaaS market, Knative entered the ring, created in July 2018 by Google and Pivotal.<\/p>\n<p><\/p>\n<p>Knative emerged from a collaboration between Google and Pivotal, with some assistance from other companies like IBM, RedHat, and Solo.im. It offers similar PaaS capabilities for Kubernetes with top-notch support for serverless application deployment. Unlike Kubernetes builds, Knative is installed as an extension on any compatible Kubernetes cluster and is configured through custom resources.<\/p>\n<p><\/p>\n<h2 id=\"chto-takoe-knative\">What is Knative?<\/h2>\n<p><\/p>\n<p>Knative is described as \"A Kubernetes-based platform for deploying workloads and managing them using modern serverless computing.\" By declaring itself such a platform, Knative actively scales containers automatically in proportion to concurrent HTTP requests. Unused services eventually scale down to zero, providing on-demand scaling in a serverless computing style.<\/p>\n<p><\/p>\n<p>Knative consists of a set of controllers that are installed in any Kubernetes cluster and provide the following capabilities:<\/p>\n<p><\/p>\n<ul>\n<li>building containerized applications from source code (provided by the <em>Build<\/em>),<\/li>\n<li>component) <em>providing incoming traffic access to applications (provided by the<\/em>),<\/li>\n<li>Serving <em>providing incoming traffic access to applications (provided by the<\/em>),<\/li>\n<li>component) <em>delivery and automatic scaling of applications on demand (also provided by the<\/em>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Eventing <em>component). The key component is Serving, which provides delivery, automatic scaling, and traffic management for managed applications. After installing Knative, full access to the Kubernetes API remains, allowing users to manage applications<\/em> in a conventional<\/p>\n<p><\/p>\n<p>manner and also serves for debugging Knative services, working with the same API primitives that these services use (modules, services, etc.).<\/p>\n<p><\/p>\n<p>Serving also automates blue-green traffic routing, ensuring traffic splitting between new and old versions of an application when a user deploys an updated version of the application. <noindex><a rel=\"nofollow\" href=\"https:\/\/gloo.solo.io\/\">Knative relies on the installation of a compatible ingress controller. At the time of writing, supported<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/\">Gloo API Gateway<\/a><\/noindex>Istio Service Mesh<\/p>\n<p><\/p>\n<p>. It will configure the available ingress for routing traffic to applications managed by Knative. Istio Service Mesh may become a significant dependency for Knative users wanting to try it without installing the Istio control panel, as Knative relies solely on the gateway.<\/p>\n<p><\/p>\n<p>For this reason, most users prefer Gloo as a gateway for Knative, providing a similar set of features to Istio (when considering usage solely with Knative), while utilizing significantly fewer resources and offering lower operational costs.<\/p>\n<p><\/p>\n<p>Let's check Knative in action on the setup. I will use a freshly installed cluster running on 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>Let's start installing Knative and Gloo. This can be done in any order:<\/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>We check that all Pods are in the \"Running\" status:<\/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 is ready for routing, let's create a scalable Knative service (we'll call it kservice) and direct traffic to it.<\/p>\n<p><\/p>\n<p>Knative services provide an easier way to deploy applications in Kubernetes compared to the traditional Deployment+Service+Ingress model. We'll work with an example like this:<\/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>I copied this into a file and then applied it to my Kubernetes cluster like this:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl apply -f ksvc.yaml -n default<\/code><\/pre>\n<p><\/p>\n<p>We can view the resources created by Knative in the cluster after deploying our '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>The Pod with our 'helloworld-go' image launches during the deployment of the kservice. If there is no traffic, the number of pods will be reduced to zero. Conversely, if the number of concurrent requests exceeds a certain configurable threshold, the number of pods will increase.<\/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 configures its ingress using a special 'ingress' resource within the Knative internal API. Gloo takes this API as its configuration to provide properties typical of PaaS, including blue-green deployment model, automatic TLS application, timeouts, and other advanced routing features.<\/p>\n<p><\/p>\n<p>After a while, we notice that our pods have disappeared (as there was no incoming traffic):<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get pod -n default\n\nNo resources found.\nkubectl get deployment -n default\nNAME                             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE\nhelloworld-go-fjp75-deployment   0         0         0            0           9m46s<\/code><\/pre>\n<p><\/p>\n<p>Finally, let's try to reach them. Getting the URL for the Knative Proxy can easily be done with <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>Without having it installed, <code>glooctl<\/code> you can peek at the address and port in kube service:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">kubectl get svc -n gloo-system knative-external-proxy\nNAME                     TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)                      AGE\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>Let's run some data through cURL:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">curl -H \"Host: helloworld-go.default.example.com\" http:\/\/35.190.151.188\nHello Knative user!<\/code><\/pre>\n<p><\/p>\n<p>Knative provides an almost-PaaS solution for developers on top of 'out-of-the-box' Kubernetes, using the high-performance fully functional Gloo API gateway. This note has only briefly touched upon the extensive capabilities of Knative available for customization, as well as additional features. The same goes for Gloo!<\/p>\n<p><\/p>\n<p>Although Knative is still a young project, its team releases new versions every six weeks, and advanced features such as automatic TLS deployment and control panel auto-scaling are being implemented. There\u2019s a high chance that as a result of collaboration among several cloud companies, as well as being the basis for Google's new Cloud Run offering, Knative may become a primary option for serverless computing and PaaS in Kubernetes. Stay tuned!<\/p>\n<p><\/p>\n<p><em>From the SouthBridge editorial team<\/em><br \/>\nWe value readers' opinions, so we ask you to participate in a brief survey regarding future articles on Knative, Kubernetes, and serverless computing:<\/p>\n<p class=\"for_users_only_msg\">Only registered users can participate in the survey. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Please log in<\/a><\/noindex>, please.<\/p>\n<h2 class=\"default-block__polling-title\">Would you like to continue reading articles and guides about Knative and serverless computing?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Yes, please.<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Thank you, no.<\/p>\n<\/li>\n<\/ul>\n<p>    28 users have voted. 4 users abstained.<br \/>\n<br \/>Source: <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.2 - 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\/en\/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.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\/en\/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 a platform as a service based on k8s with serverless support | ProHoster","description":"Dominating.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/knative-platforma-kak-usluga-na-osnove-k8s-s-podderzhkoj-serverless","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/52709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=52709"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/52709\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/52710"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=52709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=52709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=52709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}