{"id":72267,"date":"2020-03-03T08:42:20","date_gmt":"2020-03-03T05:42:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kratkij-obzor-i-nastrojka-kata-containers"},"modified":"2020-03-03T16:13:53","modified_gmt":"2020-03-03T13:13:53","slug":"kratkij-obzor-i-nastrojka-kata-containers","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-i-nastrojka-kata-containers","title":{"rendered":"Brief Overview and Setup of Kata Containers","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Brief Overview and Setup of Kata Containers\" src=\"\/wp-content\/uploads\/2020\/03\/b738fcd40af08167446004e481172a7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nThis article will discuss the operating principle <noindex><a rel=\"nofollow\" href=\"https:\/\/katacontainers.io\/\">Kata Containers<\/a><\/noindex>, along with a practical section on connecting them to Docker.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>General issues with Docker and potential solutions have already been <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/434756\/\">written about<\/a><\/noindex>, today I will briefly describe the implementation of Kata Containers. Kata Containers is a secure container runtime based on lightweight virtual machines. Working with them is similar to working with other containers, but they provide a more reliable isolation through hardware virtualization technology. The project started in 2017 when the community finished merging the best ideas from Intel Clear Containers and Hyper.sh RunV, after which work continued on supporting various architectures, including AMD64, ARM, IBM p- and z-series. Additionally, it supports operation within hypervisors like QEMU and Firecracker, and there is integration with containerd. The code is available at <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kata-containers\">GitHub<\/a><\/noindex> is licensed under the MIT License.<\/p>\n<p><\/p>\n<h2 id=\"osnovnye-vozmozhnosti\">Key Features<\/h2>\n<p><\/p>\n<ul>\n<li>Working with a separate kernel, thus ensuring isolation of network, memory, and I\/O operations, with the option to enforce hardware isolation based on virtualization extensions.<\/li>\n<li>Support for industry standards, including OCI (container format), Kubernetes CRI.<\/li>\n<li>Stable performance of standard Linux containers, enhancing isolation without throughput penalties that affect standard virtual machines.<\/li>\n<li>Eliminating the need to run containers inside full virtual machines, standardized interfaces simplify integration and deployment.<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ustanovka\">Installation<\/h2>\n<p><\/p>\n<p>There is <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kata-containers\/documentation\/tree\/master\/install\">a variety of<\/a><\/noindex> installation options, I will review the installation from the repositories, based on the Centos 7 operating system.<br \/>\n<strong>Important<\/strong>: Kata Containers only supports operation on hardware; virtualization passthrough does not always work; also, <strong>support for sse4.1<\/strong> is required from the processor.<\/p>\n<p><\/p>\n<p>Installing Kata Containers is quite straightforward:<\/p>\n<p><\/p>\n<p>Install utilities for working with the repositories:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># yum -y install yum-utils<\/code><\/pre>\n<p><\/p>\n<p>Disable Selinux (more correctly \u2014 configure it, but for simplicity, I will disable it):<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># setenforce 0\n# sed -i 's\/^SELINUX=enforcing$\/SELINUX=permissive\/' \/etc\/selinux\/config<\/code><\/pre>\n<p><\/p>\n<p>Connect the repository and proceed with the installation.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># source \/etc\/os-release\n# ARCH=$(arch)\n# BRANCH=&quot;${BRANCH:-stable-1.10}&quot;\n# yum-config-manager --add-repo &quot;http:\/\/download.opensuse.org\/repositories\/home:\/katacontainers:\/releases:\/${ARCH}:\/${BRANCH}\/CentOS_${VERSION_ID}\/home:katacontainers:releases:${ARCH}:${BRANCH}.repo&quot;\n# yum -y install kata-runtime kata-proxy kata-shim<\/code><\/pre>\n<p><\/p>\n<h2 id=\"nastroyka\">Settings<\/h2>\n<p><\/p>\n<p>I will configure it to work with Docker; its installation is standard, and I will not detail it further:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># rpm -qa | grep docker\ndocker-ce-cli-19.03.6-3.el7.x86_64\ndocker-ce-19.03.6-3.el7.x86_64\n# docker -v\nDocker version 19.03.6, build 369ce74a3c<\/code><\/pre>\n<p><\/p>\n<p>Make adjustments in daemon.json:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># cat &lt;&lt;EOF &gt; \/etc\/docker\/daemon.json\n{\n  &quot;default-runtime&quot;: &quot;kata-runtime&quot;,\n  &quot;runtimes&quot;: {\n    &quot;kata-runtime&quot;: {\n      &quot;path&quot;: &quot;\/usr\/bin\/kata-runtime&quot;\n    }\n  }\n}\nEOF<\/code><\/pre>\n<p><\/p>\n<p>Restart Docker:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># service docker restart<\/code><\/pre>\n<p><\/p>\n<h2 id=\"proverka-rabotosposobnosti\">Check functionality.<\/h2>\n<p><\/p>\n<p>If you start the container before rebooting Docker, you can see that uname will display the kernel version running on the host system:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># docker run busybox uname -a\nLinux 19efd7188d06 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 GNU\/Linux<\/code><\/pre>\n<p><\/p>\n<p>After rebooting, the kernel version looks like this:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\"># docker run busybox uname -a\nLinux 9dd1f30fe9d4 4.19.86-5.container #1 SMP Sat Feb 22 01:53:14 UTC 2020 x86_64 GNU\/Linux<\/code><\/pre>\n<p>\n<b class=\"spoiler_title\">More commands!<\/b><\/p>\n<pre><code class=\"plaintext\"># time docker run busybox mount\nkataShared on \/ type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)\nproc on \/proc type proc (rw,nosuid,nodev,noexec,relatime)\ntmpfs on \/dev type tmpfs (rw,nosuid,size=65536k,mode=755)\ndevpts on \/dev\/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)\nsysfs on \/sys type sysfs (ro,nosuid,nodev,noexec,relatime)\ntmpfs on \/sys\/fs\/cgroup type tmpfs (ro,nosuid,nodev,noexec,relatime,mode=755)\ncgroup on \/sys\/fs\/cgroup\/systemd type cgroup (ro,nosuid,nodev,noexec,relatime,xattr,name=systemd)\ncgroup on \/sys\/fs\/cgroup\/cpu,cpuacct type cgroup (ro,nosuid,nodev,noexec,relatime,cpu,cpuacct)\ncgroup on \/sys\/fs\/cgroup\/blkio type cgroup (ro,nosuid,nodev,noexec,relatime,blkio)\ncgroup on \/sys\/fs\/cgroup\/memory type cgroup (ro,nosuid,nodev,noexec,relatime,memory)\ncgroup on \/sys\/fs\/cgroup\/devices type cgroup (ro,nosuid,nodev,noexec,relatime,devices)\ncgroup on \/sys\/fs\/cgroup\/perf_event type cgroup (ro,nosuid,nodev,noexec,relatime,perf_event)\ncgroup on \/sys\/fs\/cgroup\/net_cls,net_prio type cgroup (ro,nosuid,nodev,noexec,relatime,net_cls,net_prio)\ncgroup on \/sys\/fs\/cgroup\/freezer type cgroup (ro,nosuid,nodev,noexec,relatime,freezer)\ncgroup on \/sys\/fs\/cgroup\/pids type cgroup (ro,nosuid,nodev,noexec,relatime,pids)\ncgroup on \/sys\/fs\/cgroup\/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpuset)\nmqueue on \/dev\/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)\nshm on \/dev\/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)\nkataShared on \/etc\/resolv.conf type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)\nkataShared on \/etc\/hostname type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)\nkataShared on \/etc\/hosts type 9p (rw,dirsync,nodev,relatime,mmap,access=client,trans=virtio)\nproc on \/proc\/bus type proc (ro,relatime)\nproc on \/proc\/fs type proc (ro,relatime)\nproc on \/proc\/irq type proc (ro,relatime)\nproc on \/proc\/sys type proc (ro,relatime)\ntmpfs on \/proc\/acpi type tmpfs (ro,relatime)\ntmpfs on \/proc\/timer_list type tmpfs (rw,nosuid,size=65536k,mode=755)\ntmpfs on \/sys\/firmware type tmpfs (ro,relatime)\n\nreal    0m2.381s\nuser    0m0.066s\nsys 0m0.039s<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\"># time docker run busybox free -m\n              total        used        free      shared  buff\/cache   available\nMem:           1993          30        1962           0           1        1946\nSwap:             0           0           0\n\nreal    0m3.297s\nuser    0m0.086s\nsys 0m0.050s<\/code><\/pre>\n<p><\/p>\n<h2 id=\"bystroe-nagruzochnoe-testirovanie\">Quick load testing<\/h2>\n<p><\/p>\n<p>To assess the losses from virtualization, I run sysbench, using the following examples as benchmarks: <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/r\/ljishen\/sysbench\">I take this option.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"zapusk-sysbench-s-ispolzovaniem-dockercontainerd\">Running sysbench using Docker+containerd<\/h3>\n<p>\n<b class=\"spoiler_title\">CPU Test<\/b><\/p>\n<pre><code class=\"plaintext\">sysbench 1.0:  multi-threaded system evaluation benchmark\n\nRunning the test with the following options:\nNumber of threads: 1\nInitializing random number generator from the current time\n\nPrime numbers limit: 20000\n\nInitializing worker threads...\n\nThreads started!\n\nGeneral statistics:\n    total time:                          36.7335s\n    total number of events:              10000\n    total time taken by event execution: 36.7173s\n    response time:\n         min:                                  3.43ms\n         avg:                                  3.67ms\n         max:                                  8.34ms\n         approx.  95 percentile:               3.79ms\n\nThreads fairness:\n    events (avg\/stddev):           10000.0000\/0.00\n    execution time (avg\/stddev):   36.7173\/0.00<\/code><\/pre>\n<p>\n<b class=\"spoiler_title\">Memory Test<\/b><\/p>\n<pre><code class=\"plaintext\">sysbench 1.0:  multi-threaded system evaluation benchmark\n\nRunning the test with the following options:\nNumber of threads: 1\nInitializing random number generator from the current time\n\nInitializing worker threads...\n\nThreads started!\n\nOperations performed: 104857600 (2172673.64 ops\/sec)\n\n102400.00 MiB transferred (2121.75 MiB\/sec)\n\nGeneral statistics:\n    total time:                          48.2620s\n    total number of events:              104857600\n    total time taken by event execution: 17.4161s\n    response time:\n         min:                                  0.00ms\n         avg:                                  0.00ms\n         max:                                  0.17ms\n         approx.  95 percentile:               0.00ms\n\nThreads fairness:\n    events (avg\/stddev):           104857600.0000\/0.00\n    execution time (avg\/stddev):   17.4161\/0.00<\/code><\/pre>\n<p><\/p>\n<h3 id=\"zapusk-sysbench-s-ispolzovaniem-dockerkata-containers\">Running sysbench using Docker+Kata Containers<\/h3>\n<p>\n<b class=\"spoiler_title\">CPU Test<\/b><\/p>\n<pre><code class=\"plaintext\">sysbench 1.0:  multi-threaded system evaluation benchmark\n\nRunning the test with the following options:\nNumber of threads: 1\nInitializing random number generator from the current time\n\nPrime numbers limit: 20000\n\nInitializing worker threads...\n\nThreads started!\n\nGeneral statistics:\n    total time:                          36.5747s\n    total number of events:              10000\n    total time taken by event execution: 36.5594s\n    response time:\n         min:                                  3.43ms\n         avg:                                  3.66ms\n         max:                                  4.93ms\n         approx.  95 percentile:               3.77ms\n\nThreads fairness:\n    events (avg\/stddev):           10000.0000\/0.00\n    execution time (avg\/stddev):   36.5594\/0.00<\/code><\/pre>\n<p>\n<b class=\"spoiler_title\">Memory Test<\/b><\/p>\n<pre><code class=\"plaintext\">sysbench 1.0: multi-threaded system evaluation benchmark\n\nRunning the test with the following options:\nNumber of threads: 1\nInitializing random number generator from current time\n\nInitializing worker threads...\n\nThreads started!\n\nOperations performed: 104857600 (2450366.94 ops\/sec)\n\n102400.00 MiB transferred (2392.94 MiB\/sec)\n\nGeneral statistics:\n    total time:                          42.7926s\n    total number of events:              104857600\n    total time taken by event execution: 16.1512s\n    response time:\n         min:                                  0.00ms\n         avg:                                  0.00ms\n         max:                                  0.43ms\n         approx.  95 percentile:               0.00ms\n\nThreads fairness:\n    events (avg\/stddev):           104857600.0000\/0.00\n    execution time (avg\/stddev):   16.1512\/0.00<\/code><\/pre>\n<p><\/p>\n<p>The situation is generally clear, but it's better to run the tests multiple times, eliminating outliers and averaging the results, so I won't be running more tests for now.<\/p>\n<p><\/p>\n<h2 id=\"vyvody\">Conclusions<\/h2>\n<p><\/p>\n<p>Despite the fact that launching such containers takes about five to ten times longer (the typical startup time for similar commands using containerd is less than a third of a second) \u2014 they still work fairly quickly when looking at the absolute startup time (examples above show commands executed in an average of three seconds). The results of the quick CPU and RAM tests show virtually identical outcomes, which is encouraging, especially considering that isolation is provided by a well-tested mechanism like KVM.<\/p>\n<p><\/p>\n<h2 id=\"anons\">Announcement<\/h2>\n<p><\/p>\n<p>This is a review article, but it allows for exploration of an alternative runtime. Many areas of application are not covered, for example, the site describes the possibility of running Kubernetes on top of Kata Containers. Additionally, a series of tests can also be conducted to identify security issues, impose limits, and other interesting matters.<\/p>\n<p><\/p>\n<p>I ask everyone who has read or scrolled down here to participate in the survey, which will determine future publications on this topic.<\/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\">Should we continue publishing articles about Kata Containers?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">80,0%<\/strong>Yes, write more!28<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">20,0%<\/strong>No, it's not necessary\u20267<\/p>\n<\/li>\n<\/ul>\n<p>    35 users voted. 7 users abstained.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/489940\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b Kata Containers, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441 \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a Docker. \u041f\u0440\u043e \u043e\u0431\u0449\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 Docker \u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0448\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043e\u0442 Kata Containers. Kata Containers \u2014 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (runtime) \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u043d\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0438\u043c\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":72268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-72267","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=\"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b.\" \/>\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\/kratkij-obzor-i-nastrojka-kata-containers\" \/>\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\udd47\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Kata Containers | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-i-nastrojka-kata-containers\" \/>\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=\"2020-03-03T05:42:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:13:53+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\udd47 Brief Overview and Configuration of Kata Containers | ProHoster","description":"This article will discuss the operating principle.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-i-nastrojka-kata-containers","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\udd47\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Kata Containers | ProHoster","og:description":"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kratkij-obzor-i-nastrojka-kata-containers","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":"2020-03-03T05:42:20+00:00","article:modified_time":"2020-03-03T13:13:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"72267","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:47:23","updated":"2022-09-30 10:53:08","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\/72267","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=72267"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/72267\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/72268"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=72267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=72267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=72267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}