{"id":3794,"date":"2024-06-13T00:35:11","date_gmt":"2024-06-12T20:35:11","guid":{"rendered":"https:\/\/saradmin.ru\/?p=3794"},"modified":"2024-06-13T00:35:11","modified_gmt":"2024-06-12T20:35:11","slug":"%d1%80%d0%b5%d0%bf%d0%be%d1%81%d1%82-me-devops-%d0%be%d0%ba%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%bb%d1%8f-%d0%ba%d0%be%d0%bc%d1%84%d0%be%d1%80%d1%82%d0%bd%d0%be%d0%b9-%d1%80%d0%b0","status":"publish","type":"post","link":"https:\/\/saradmin.ru\/?p=3794","title":{"rendered":"[\u0440\u0435\u043f\u043e\u0441\u0442] Me DevOps &#8212; \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-3791\" src=\"https:\/\/saradmin.ru\/wp-content\/uploads\/devops.png\" alt=\"\" width=\"120\" height=\"120\" \/><em>\u0420\u0435\u0447\u044c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0439\u0434\u0451\u0442 \u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u0435 \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043d\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u2014 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u0442.\u043f.<\/em><\/p>\n<div id=\"cut\">\n<p>\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a dev-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e: \u043f\u043e\u043b\u043d\u043e\u0442\u0430, \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u043c\u0435\u0441\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435, \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 dev-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Kubernetes \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u0436\u0435 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Me DevOps <a href=\"https:\/\/github.com\/unreg\/me-devops\" target=\"_blank\" rel=\"noopener\">(github)<\/a>:<\/p>\n<ul>\n<li>LXC\/LXD \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Funtoo Linux;<\/li>\n<li><a href=\"https:\/\/k3s.io\/\" target=\"_blank\" rel=\"noopener\">k3s<\/a> \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0451\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 Kubernetes, &#171;\u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0439&#187; \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438.<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h3>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442 \u0432 lxd-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b Kubernetes \u0438 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0445\u043e\u0441\u0442\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b:<\/p>\n<ul>\n<li><b>devops.me:32000<\/b>\u00a0\u2014 container registry<\/li>\n<li><b>http:\/\/portainer.devops.me<\/b>\u00a0\u2014 \u0430\u0434\u043c\u0438\u043d\u043a\u0430\u00a0Portainer CE<\/li>\n<li><b>postgresql:\/\/postgres:postgres@devops.me:32432\/postgres<\/b>\u00a0\u2014 PostgreSql 14<\/li>\n<li><b>devops.me:32672\u00a0\u2014 Bitnami RabbitMQ<\/b><\/li>\n<li><b>http:\/\/hasura.devops.me<\/b>\u00a0\u2014 \u043a\u043e\u043d\u0441\u043e\u043b\u044c Hasura<\/li>\n<li><b>http:\/\/amqp.devops.me<\/b>\u00a0\u2014 \u0430\u0434\u043c\u0438\u043d\u043a\u0430 RabbitMQ<\/li>\n<\/ul>\n<p>\u0412 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b:<\/p>\n<ul>\n<li>kubectl;<\/li>\n<li>Helm 3;<\/li>\n<li>k9s.<\/li>\n<\/ul>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h3>\n<p>\u0427\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u00a0<strong>Me DevOps<\/strong>:<\/p>\n<ul>\n<li>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 LXC\/LXD;<\/li>\n<li>\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 Docker;<\/li>\n<li>\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e 5+ Gb;<\/li>\n<li>\u043f\u0440\u0430\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438;<\/li>\n<li>\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e k8s.<\/li>\n<\/ul>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430<\/p>\n<div class=\"code\">\n<pre><code>wget <span class=\"hljs-symbol\">https:<\/span>\/<span class=\"hljs-regexp\">\/github.com\/unreg<\/span><span class=\"hljs-regexp\">\/me-devops\/releases<\/span><span class=\"hljs-regexp\">\/download\/<\/span><span class=\"hljs-number\">2022.10<\/span>.<span class=\"hljs-number\">19<\/span>\/k3s-lxd-x86_64-me-devops.tar.xz\r\n<\/code><\/pre>\n<\/div>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437:<\/p>\n<div class=\"code\">\n<pre><code><span class=\"hljs-title\">lxc<\/span> <span class=\"hljs-keyword\">import<\/span> k3s-lxd-x86_64-me-devops.tar.xz <span class=\"hljs-comment\">--alias me-devops<\/span><\/code><\/pre>\n<\/div>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<div class=\"code\">\n<pre><code>lxc <span class=\"hljs-keyword\">init<\/span> me-devops me-devops\r\n<\/code><\/pre>\n<\/div>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b k3s \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0441\u0448\u0430\u0440\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443\u00a0<b>\/dev\/kmsg<\/b>, \u0434\u043b\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 \u0441 cgroup2 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<div class=\"code\">\n<pre><code>lxc <span class=\"hljs-built_in\">config<\/span> device add <span class=\"hljs-string\">\"me-devops\"<\/span> <span class=\"hljs-string\">\"kmsg\"<\/span>  unix-<span class=\"hljs-built_in\">char<\/span> source=<span class=\"hljs-string\">\"\/dev\/kmsg\"<\/span> <span class=\"hljs-built_in\">path<\/span>=<span class=\"hljs-string\">\"\/dev\/kmsg\"<\/span><\/code><\/pre>\n<\/div>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<div class=\"code\">\n<pre><code>lxc <span class=\"hljs-keyword\">start<\/span> me<span class=\"hljs-operator\">-<\/span>devops\r\n<\/code><\/pre>\n<\/div>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<div class=\"code\">\n<pre><code>lxc list\r\n<\/code><\/pre>\n<\/div>\n<div class=\"code\">\n<pre><code>+-----------------------------+---------+-----------------------+------+-----------+-----------+\r\n|            NAME             |  STATE  |         IPV4          | IPV6 |   TYPE    | SNAPSHOTS |\r\n+-----------------------------+---------+-----------------------+------+-----------+-----------+\r\n| me-devops                   | RUNNING | 10.147.36.92 (eth0)   |      | CONTAINER | 0         |\r\n+-----------------------------+---------+-----------------------+------+-----------+-----------+\r\n<\/code><\/pre>\n<\/div>\n<h3>\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0441 \u0443\u0437\u043b\u043e\u043c Kubernetes<\/h3>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:<\/p>\n<div class=\"code\">\n<pre><code>lxc <span class=\"hljs-keyword\">exec<\/span> me<span class=\"hljs-operator\">-<\/span>devops <span class=\"hljs-comment\">-- su --login dev<\/span><\/code><\/pre>\n<\/div>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Container registry \u0438 Portainer:<\/p>\n<div class=\"code\">\n<pre><code><span class=\"hljs-built_in\">cd<\/span> ~\/k3s\r\n~\/k3s $ .\/environment.sh\r\n<\/code><\/pre>\n<\/div>\n<div class=\"code\">\n<pre><code><em>namespace\/container-registry created\r\npersistentvolumeclaim\/registry-pvc created\r\npersistentvolume\/registry-pv created\r\nservice\/registry created\r\ndeployment.apps\/registry created\r\n\r\nnamespace\/portainer created\r\nserviceaccount\/portainer-sa-clusteradmin created\r\npersistentvolumeclaim\/portainer created\r\nclusterrolebinding.rbac.authorization.k8s.io\/portainer created\r\nservice\/portainer created\r\ndeployment.apps\/portainer created\r\ningress.networking.k8s.io\/portainer created<\/em>\r\n<\/code><\/pre>\n<\/div>\n<p>\u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 &#8212; PostgreSql, Hasura, RabbitMQ:<\/p>\n<div class=\"code\">\n<pre><code>~\/k3s $ .\/db.sh\r\n<\/code><\/pre>\n<\/div>\n<div class=\"code\">\n<pre><code><em>namespace\/db created\r\n\r\npersistentvolumeclaim\/postgresql-pvc created\r\npersistentvolume\/postgresql-pv created\r\nconfigmap\/postgresql created\r\nstatefulset.apps\/postgresql created\r\nservice\/postgresql created\r\nservice\/postgresql-default created\r\n\r\ndeployment.apps\/hasura created\r\nservice\/hasura created\r\nservice\/hasura-default created\r\n\r\npersistentvolumeclaim\/rabbitmq-pvc created\r\npersistentvolume\/rabbitmq-pv created\r\nconfigmap\/rabbitmq created\r\nstatefulset.apps\/rabbitmq created\r\nservice\/rabbitmq created\r\nservice\/rabbitmq-default created\r\n\r\ningress.networking.k8s.io\/hasura created\r\ningress.networking.k8s.io\/rabbitmq created<\/em>\r\n<\/code><\/pre>\n<\/div>\n<h3>\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0445\u043e\u0441\u0442\u0430<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043c\u0435\u043d\u00a0<b>devops.me<\/b>\u00a0\u0432\u00a0<b>\/etc\/hosts<\/b>:<\/p>\n<div class=\"code\">\n<pre><code>...\r\n<span class=\"hljs-number\">10.147<\/span>.<span class=\"hljs-number\">36.31<\/span>    devops.me portainer.devops.me hasura.devops.me amqp.devops.me\r\n...\r\n<\/code><\/pre>\n<\/div>\n<p>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0445\u043e\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u0434\u043e\u043a\u0435\u0440\u0443 \u043d\u0435\u0441\u0435\u043a\u044c\u044e\u0440\u043d\u044b\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0435\u0441\u0442\u0440\u00a0<b>\/etc\/docker\/daemon.js<\/b>:<\/p>\n<div class=\"code\">\n<pre><code>{\r\n    <span class=\"hljs-string\">\"insecure-registries\"<\/span> : [ <span class=\"hljs-string\">\"devops.me:32000\"<\/span> ]\r\n}\r\n\r\n<\/code><\/pre>\n<\/div>\n<h3>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h3>\n<p>\u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b Kubernetes:<\/p>\n<ul>\n<li>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f helm, kubectl \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 Portainer, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438;<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0441\u0432\u043e\u0438 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 container registry.<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u00a0<b>tmux<\/b>, \u0432\u043e\u0439\u0442\u0438 \u0432 \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0441\u0435\u0441\u0441\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<div class=\"code\">\n<pre><code>lxc <span class=\"hljs-built_in\">exec<\/span> me-devops -- su --login dev \/home\/dev\/mpx.sh\r\n<\/code><\/pre>\n<\/div>\n<p><b>tmux<\/b> \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437\u00a0<b>Ctrl^a<\/b>, \u0432 \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u0432\u0430 \u044d\u043a\u0440\u0430\u043d\u0430, \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u043e\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u0435\u043a, \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0449\u0435\u043d CLI \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u00a0<b>k9s<\/b>\u00a0(\u043d\u0430 \u041a\u0414\u041f\u0412). \u0424\u0430\u0439\u043b\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a\u00a0<b>tmux<\/b>:<\/p>\n<ul>\n<li><b>\/home\/dev\/.tmux.conf<\/b><\/li>\n<li><b>\/home\/dev\/mpx.sh<\/b><\/li>\n<\/ul>\n<p>\u041d\u0430 \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435:<\/p>\n<ul>\n<li><b>\/home\/dev\/k3s<\/b>\u00a0&#8212; \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432;<\/li>\n<li><b>\/var\/data<\/b>\u00a0&#8212; \u043a\u0430\u0442\u0430\u043b\u043e\u0433 persistent-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0445\u043e\u0441\u0442\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 LXC\/LXD.<\/li>\n<\/ul>\n<h3>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 Me Devops<\/h3>\n<p>\u0415\u0441\u043b\u0438, \u0432\u0441\u0451 \u0432\u044b\u0448\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u043c, \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438\u043b\u0438 \u043f\u0440\u0438\u0448\u043b\u043e \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u00ab\u043f\u0440\u043e\u0449\u0435 \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u0447\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f\u00bb, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0438 \u043e\u0431\u0440\u0430\u0437:<\/p>\n<div class=\"code\">\n<pre><code>lxc stop me-devops\r\nlxc <span class=\"hljs-built_in\">rm<\/span> me-devops\r\nlxc image <span class=\"hljs-built_in\">rm<\/span> me-devops\r\n<\/code><\/pre>\n<\/div>\n<h3>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/h3>\n<ul>\n<li>\u043a\u0443\u0431\u0435\u0440 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u0435\u0441\u043b\u0438 rootfs \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0430\u0441\u044c \u043d\u0430 btrfs-\u0440\u0430\u0437\u0434\u0435\u043b\u0435<\/li>\n<\/ul>\n<h3>\u0421\u0441\u044b\u043b\u043a\u0438<\/h3>\n<ul>\n<li><a href=\"https:\/\/github.com\/unreg\/me-devops\" target=\"_blank\" rel=\"noopener\">github<\/a><\/li>\n<\/ul>\n<h3>\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u0438<\/h3>\n<ul>\n<li>MeDevOps &#8212;\u00a0<a href=\"https:\/\/github.com\/unreg\/me-devops\/blob\/main\/LICENSE\" target=\"_blank\" rel=\"noopener\">MIT<\/a><\/li>\n<li>\u0421\u0442\u0430\u0442\u044c\u044f &#8212;\u00a0<a href=\"https:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/legalcode\" target=\"_blank\" rel=\"noopener\">CC BY-NC-ND<\/a><\/li>\n<\/ul>\n<h3>Disclaimer, \u043e\u043d \u0436\u0435 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u0443\u0433\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b<\/h3>\n<blockquote><p>\u0414\u043b\u044f \u043a\u043e\u0433\u043e \u0432\u0441\u0451 \u044d\u0442\u043e?<\/p><\/blockquote>\n<p>\u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u043d\u0430 \u0442\u043e \u043e\u043d \u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u0439, \u0447\u0442\u043e \u0441\u0430\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u0410 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043e\u043f\u044b\u0442\u043d\u044b\u0439, \u043c\u043e\u0436\u0435\u0442, \u0434\u0430\u0436\u0435 \u0438 \u043d\u0435 \u043f\u043e\u0439\u043c\u0451\u0442 \u043e \u0447\u0451\u043c \u0440\u0435\u0447\u044c. \u0421\u0447\u0438\u0442\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441 \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c.<\/p>\n<p>\u0418 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u0430 \u0438\u0437\u0440\u044f\u0434\u043d\u0430\u044f \u0434\u043e\u043b\u044f \u0438\u0440\u043e\u043d\u0438\u0438.<\/p>\n<blockquote><p>\u041a\u0430\u043a\u043e\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430? \u041e\u043d \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0438 \u0442.\u043f.?<\/p><\/blockquote>\n<p>\u041e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430\u00a0<b>Funtoo<\/b>, \u0432\u044b\u0431\u043e\u0440 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0446\u0435\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451, \u043a\u0440\u043e\u043c\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430 Kubernetes \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0448\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043e\u043a\u043e\u043b\u043e 2.7 \u0413\u0431.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0431\u0440\u0430\u0437 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 Funtoo, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 meta-repo \u0447\u0435\u0440\u0435\u0437\u00a0<b>ego sync<\/b>\u00a0\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u00a0<b>emerge<\/b>\u00a0\u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 rootfs \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041d\u043e, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c \u043a\u043b\u044e\u0447\u0435 \u0441\u043c\u044b\u0441\u043b\u0430 \u0432 \u044d\u0442\u043e\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e.<\/p>\n<blockquote><p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u00a0<b>lxc exec<\/b>, \u0430 \u043f\u043e ssh?<\/p><\/blockquote>\n<p>\u0414\u0430, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e\u00a0<b>dev<\/b>\u00a0\u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0438 \u043a\u043b\u044e\u0447\u0438.<\/p>\n<blockquote><p>\u0425\u043e\u0447\u0443 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a postgresql, \u0434\u0430 \u0438 \u0430\u0434\u043c\u0438\u043d\u043a\u0430 \u0440\u0430\u0431\u0431\u0438\u0442\u0430 \u043f\u0440\u043e\u0441\u0438\u0442 \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u0430\u043a \u0438\u0445 \u0443\u0437\u043d\u0430\u0442\u044c?<\/p><\/blockquote>\n<p>\u0412\u0441\u0451 \u0435\u0441\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0430\u0445-\u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430\u0445 \u043f\u043e \u043f\u0443\u0442\u0438\u00a0<b>\/home\/dev\/k3s\/configs<\/b>. \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u044b \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<blockquote><p>\u0410 \u0447\u0442\u043e \u0442\u0430\u043c \u0441 \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0435\u0439?<\/p><\/blockquote>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, k3s \u0438 Helm \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0440\u0435\u043a\u0435\u0440\u043e\u0432 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<blockquote><p>\u041a\u0430\u043a\u0438\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0441\u0451 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0435\u0442?<\/p><\/blockquote>\n<p>\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0439, \u0432\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0435 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043a. \u0410\u0432\u0442\u043e\u0440 \u043d\u0438\u0447\u0435\u043c \u0432\u0430\u043c \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u0438 \u043d\u0435 \u043d\u0435\u0441\u0451\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432 \u0447\u0451\u043c-\u0442\u043e \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u0438\u043b\u0438 \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0435\u0442\u0435\u0441\u044c, \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435\u0441\u044c \u0438 \u043d\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0439\u0442\u0435.<\/p>\n<\/div>\n<p><a href=\"https:\/\/www.linux.org.ru\/articles\/admin\/17004878\" target=\"_blank\" rel=\"noopener\">\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0420\u0435\u0447\u044c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0439\u0434\u0451\u0442 \u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u0435 \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043d\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0442\u0438\u043f\u043e\u0432\u043e\u0433\u043e \u2014 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u0442.\u043f. \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a dev-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e: \u043f\u043e\u043b\u043d\u043e\u0442\u0430, \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u043c\u0435\u0441\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435, \u0431\u044b\u0441\u0442\u0440\u0435\u0435 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[26,173],"tags":[769,770,775,774,772,773,590,771,28,41],"class_list":["post-3794","post","type-post","status-publish","format-standard","hentry","category-linux","category-173","tag-devops","tag-funtoo","tag-hasura","tag-helm","tag-k8s","tag-kubernetes","tag-postgresql","tag-rabbit","tag-ubuntu","tag-41"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2HrGV-Zc","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/saradmin.ru\/index.php?rest_route=\/wp\/v2\/posts\/3794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saradmin.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/saradmin.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/saradmin.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/saradmin.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3794"}],"version-history":[{"count":1,"href":"https:\/\/saradmin.ru\/index.php?rest_route=\/wp\/v2\/posts\/3794\/revisions"}],"predecessor-version":[{"id":3795,"href":"https:\/\/saradmin.ru\/index.php?rest_route=\/wp\/v2\/posts\/3794\/revisions\/3795"}],"wp:attachment":[{"href":"https:\/\/saradmin.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/saradmin.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/saradmin.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}