{"id":345768,"date":"2023-02-21T21:03:13","date_gmt":"2023-02-21T21:03:13","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=345768"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=345768","title":{"rendered":"<span>\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 \u0437\u0430\u0449\u0438\u0442\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/339\/54d\/fed\/33954dfedb04fbff0b09a2f33295ceb0.png\" width=\"1920\" height=\"1080\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/339\/54d\/fed\/33954dfedb04fbff0b09a2f33295ceb0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 <strong>Kubernetes<\/strong> \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043b\u044e\u0431\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e pod \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0438\u043b\u0438 pod\u2019\u0430, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043c\u0443\u043b\u044c\u0442\u0438\u0442\u0435\u043d\u0430\u043d\u0442\u043d\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c, \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u0438\u043b\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u043c.<\/p>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439<\/h2>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e\u00a0\u0432\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d Kubernetes \u043c\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0442\u0440\u0451\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445: <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434<\/strong>, <strong>\u0431\u044d\u043a\u0435\u043d\u0434<\/strong> \u0438 <strong>\u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>.<\/p>\n<p><strong>\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434 <\/strong>\u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <strong>\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/strong>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u00a0DNS\u2011\u0438\u043c\u0435\u043d\u0438 \u0438\u043b\u0438\u00a0IP\u2011\u0430\u0434\u0440\u0435\u0441\u0443 \u044d\u0442\u043e\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430.<\/p>\n<p><strong>\u0411\u044d\u043a\u0435\u043d\u0434 <\/strong>\u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0431\u0443\u0434\u0435\u0442 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e\u00a0\u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043b\u044e\u0431\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0443 \u0438\u043c\u0451\u043d \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0411\u0435\u0437\u00a0\u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u043d\u0430\u0448\u0430 \u0442\u0440\u0451\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/b6c\/47e\/3fb\/b6c47e3fb2ab2f0ccb1f6dd6f77866ec.jpg\" width=\"742\" height=\"933\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b6c\/47e\/3fb\/b6c47e3fb2ab2f0ccb1f6dd6f77866ec.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0441\u043e\u0437\u0434\u0430\u0432 \u0442\u0440\u0438 \u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0442\u044c <em>\u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/em> \u0438 <em>\u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/em>.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 <strong><em>nginx<\/em><\/strong><em> <\/em>\u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f pod\u2019\u043e\u0432 \u0432 <em>\u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f\u0445<\/em>.<\/p>\n<h3>1. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d<\/h3>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0435\u0442\u043a\u0438 \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u043f\u043e \u044d\u0442\u0438\u043c \u043c\u0435\u0442\u043a\u0430\u043c.<\/p>\n<pre><code># Create \"frontend\" namespace and add a label  > kubectl create ns frontend  > kubectl label ns frontend tier=frontend  # Create \"backend\" namespace and add a label  > kubectl create ns backend  > kubectl label ns backend tier=backend   # Create \"database\" namespace and add a label  > kubectl create ns database  > kubectl label ns database tier=database<\/code><\/pre>\n<h3>2. \u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/h3>\n<h4>2.1 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<pre><code># Deploy a deployment named \"database\" with 2 replicas > kubectl create deploy database -n database  --image=nginx --replicas=2 # List the pods of \"database\" deployments > kubectl get pods -n database ---------------------------------------------------------------------------------------------------- NAME                        READY   STATUS    RESTARTS   AGE database-7d94797799-b9sdw   1\/1     Running   0          23h database-7d94797799-jc4xt   1\/1     Running   0          23h ----------------------------------------------------------------------------------------------------  # Create a service (cluster ip) named \"database\" for accessing the pods of the \"database\" deployment > kubectl create service clusterip database --tcp=80 -n database # List the service   > kubectl get svc -n database ---------------------------------------------------------------------------------------------------- NAME       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE database   ClusterIP   10.106.137.165   &lt;none>        80\/TCP    23h ---------------------------------------------------------------------------------------------------- <\/code><\/pre>\n<h4>2.2 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u044d\u043a\u0435\u043d\u0434\u0430  <\/h4>\n<pre><code># Deploy a deployment named \"backend\" with 2 replicas > kubectl create deploy backend -n backend  --image=nginx --replicas=2 # List the pods of \"backend\" deployments > kubectl get pods -n backend ---------------------------------------------------------------------------------------------------- NAME                       READY   STATUS    RESTARTS   AGE backend-5c5c74cbf6-h4d9p   1\/1     Running   0          23h backend-5c5c74cbf6-jf6fj   1\/1     Running   0          23h ----------------------------------------------------------------------------------------------------  # Create a service (cluster ip) named \"backend\" for accessing the pods of the \"backend\" deployment > kubectl create service clusterip backend --tcp=80 -n backend # List the service   > kubectl get svc -n backend ---------------------------------------------------------------------------------------------------- NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE backend   ClusterIP   10.101.154.161   &lt;none>        80\/TCP    23h ---------------------------------------------------------------------------------------------------- <\/code><\/pre>\n<h4>2.3 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/h4>\n<pre><code># Deploy a deployment named \"frontend\" with 2 replicas > kubectl create deploy frontend -n frontend  --image=nginx --replicas=2 # List the pods of \"frontend\" deployments > kubectl get pods -n frontend ---------------------------------------------------------------------------------------------------- NAME                        READY   STATUS    RESTARTS   AGE frontend-5d7445bdb8-g8rpb   1\/1     Running   0          24h frontend-5d7445bdb8-kqtnc   1\/1     Running   0          24h ----------------------------------------------------------------------------------------------------  # Create a service (load balancer) named \"frontend\" for accessing the pods of the \"frontend\" deployment,  # From internet through the load balancer IP or DNS > kubectl create service loadbalancer frontend --tcp=80:80 -n frontend # List the service, and note down the external IP   > kubectl get svc -n frontend  ---------------------------------------------------------------------------------------------------- NAME       TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)        AGE frontend   LoadBalancer   10.102.187.203   45.76.197.98   80:30008\/TCP   30m ----------------------------------------------------------------------------------------------------<\/code><\/pre>\n<p>\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u043c\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c <strong>EXTERNAL-IP <\/strong>\u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435.<\/p>\n<h3>3. \u0420\u0438\u0441\u043a\u0438 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/h3>\n<h4>3.1 \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/h4>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043a pod\u2019\u0430\u043c \u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438. \u0412\u0441\u0435 pod\u2019\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u0442\u0435\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u043b\u0438 \u0442\u0430\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435? \u041b\u044e\u0431\u043e\u0439 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0441 \u0443\u0440\u043e\u0432\u043d\u044f <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a <strong>\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438 \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u042d\u0442\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0439 \u0440\u0438\u0441\u043a \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>3.2 \u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u0438\u0445 \u0440\u0438\u0441\u043a\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438. \u0421 \u0438\u0445 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b \u043c\u043e\u0436\u0435\u043c <strong>\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/strong> \u0432\u0441\u0435 \u0442\u0440\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c <strong>\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0434\u043b\u044f <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0441 <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/strong> \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 <strong>\u0431\u044d\u043a\u0435\u043d\u0434<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043d\u0435 \u043c\u043e\u0433 \u0441 <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a <strong>\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0445\u0435\u043c\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/a6c\/48e\/4b9\/a6c48e4b97fdc50ad6c8923e3b1257fe.jpg\" width=\"852\" height=\"555\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a6c\/48e\/4b9\/a6c48e4b97fdc50ad6c8923e3b1257fe.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<h3>4. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438<\/h3>\n<h4>4.1 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<ul>\n<li>\n<p><strong>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0432\u0435\u0441\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<br \/><\/strong>\u041c\u044b \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0442\u044c \u0432\u0435\u0441\u044c <strong>\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439<\/strong> \u0438 <strong>\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Deny all ingress and egress traffic > kubectl create -f \\  https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-deny-all-database.yaml   --- kind: NetworkPolicy apiVersion: networking.k8s.io\/v1 metadata:   name: default-deny-all-database   namespace: database spec:   podSelector:     matchLabels: {}   policyTypes:   - Ingress   - Egress ---<\/code><\/pre>\n<p>\u0423\u0440\u043e\u0432\u0435\u043d\u044c <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435.<\/p>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 \u0431\u044d\u043a\u0435\u043d\u0434\u0430.<br \/><\/strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a \u0443\u0440\u043e\u0432\u043d\u044e <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c <strong>\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0442\u043e\u043b\u044c\u043a\u043e \u0441 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Allow ingress traffic from \"backend-tier\" using the following manifest file: > kubectl create -f  \\ https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-allow-ingress-from-backend.yaml  --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-ingress-from-backend   namespace: database spec:   podSelector:     matchLabels: {}   ingress:     - from:       - podSelector:           matchLabels: {}         namespaceSelector:            matchLabels:               tier: backend ---<\/code><\/pre>\n<h4>4.2 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/h4>\n<ul>\n<li>\n<p><strong>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043c \u0432\u0435\u0441\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a.<br \/><\/strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0436\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u043a\u0430\u043a \u0434\u043b\u044f <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c <strong>\u0431\u044d\u043a\u0435\u043d\u0434<\/strong> \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Deny all ingress and egress traffic > kubectl create -f \\ https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-deny-all-backend.yaml  --- kind: NetworkPolicy apiVersion: networking.k8s.io\/v1 metadata:   name: default-deny-all-backend   namespace: backend spec:   podSelector:     matchLabels: {}   policyTypes:   - Ingress   - Egress ---<\/code><\/pre>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/><\/strong>\u041d\u0430 <a href=\"https:\/\/medium.com\/geekculture\/network-policy-to-secure-workloads-on-kubernetes-cluster-99017698c748#4b0a\"><strong><u>\u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/u><\/strong><\/a> \u043c\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0430 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043b\u0438 \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0434\u043b\u044f \u0431\u044d\u043a\u0435\u043d\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u043e\u0442\u043e\u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043e\u0442 \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0430 \u0441\u0430\u043c\u043e\u043c\u0443 \u0431\u044d\u043a\u0435\u043d\u0434\u0443 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u0438 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043b\u044e\u0441 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <strong>\u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/strong> \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a pod\u2019\u0430\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c DNS-\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u0412 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes \u0441\u0435\u0440\u0432\u0435\u0440 DNS \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 pod\u2019\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d kube-system. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0443 kube-system, \u043d\u043e \u043d\u0435 \u043a\u043e \u0432\u0441\u0435\u043c\u0443, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0443\u0440\u043e\u0432\u043d\u044e kube-dns. \u0422\u0435\u043f\u0435\u0440\u044c pod\u2019\u044b \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c DNS-\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.<\/p>\n<p>\u041f\u0438\u0448\u0435\u043c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c <strong>\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0441 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/strong> \u0432 <strong>\u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 <strong>\u043f\u043e\u0440\u0442 53<\/strong> \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d kube-system:<\/p>\n<pre><code># allow egress from backend-tier to database-tier and allow dns resolving of services > kubectl create -f \\   https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-allow-egress-to-database.yaml  --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-egress-to-database   namespace: backend spec:   podSelector:     matchLabels: {}   egress:     - to:       - podSelector:           matchLabels: {}         namespaceSelector:            matchLabels:               tier: database     - to:       - namespaceSelector:           matchLabels:             kubernetes.io\/metadata.name: kube-system         podSelector:           matchLabels:             k8s-app: kube-dns       ports:       - protocol: UDP         port: 53 ---<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/1ff\/143\/97f\/1ff14397f2b7c660c29b63b4854e649f.jpg\" width=\"841\" height=\"490\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1ff\/143\/97f\/1ff14397f2b7c660c29b63b4854e649f.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0431\u044d\u043a\u0435\u043d\u0434 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445,\u00a0\u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a.<\/p>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430.<br \/><\/strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a \u0443\u0440\u043e\u0432\u043d\u044e \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Allow ingress from frontend-tier > kubectl create -f \\ https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-allow-ingress-from-frontend.yaml  --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-ingress-from-frontend   namespace: backend spec:   podSelector:     matchLabels: {}   ingress:     - from:       - podSelector:           matchLabels: {}         namespaceSelector:            matchLabels:               tier: frontend ---<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u044d\u043a\u0435\u043d\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0441 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h4>4.3 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/h4>\n<ul>\n<li>\n<p><strong>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a.<br \/><\/strong>\u041a\u0430\u043a \u0438 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442 \u0432\u0435\u0441\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Deny all ingress and egress traffic > kubectl create -f \\ https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-deny-all-frontend.yaml  --- kind: NetworkPolicy apiVersion: networking.k8s.io\/v1 metadata:   name: default-deny-all-frontend   namespace: frontend spec:   podSelector:     matchLabels: {}   policyTypes:   - Ingress   - Egress ---<\/code><\/pre>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434.<br \/><\/strong>\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043b\u044f \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d. \u0414\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434 \u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d kube-system, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c DNS-\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043a\u0430\u043a \u043c\u044b <a href=\"https:\/\/medium.com\/geekculture\/network-policy-to-secure-workloads-on-kubernetes-cluster-99017698c748#5734\"><strong><u>\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0447\u0443\u0442\u044c \u0432\u044b\u0448\u0435<\/u><\/strong><\/a>.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Allow egress to backend-tier > kubectl create -f \\   https:\/\/github.com\/shamimice03\/Network_Policies_Kubernetes\/blob\/main\/netpol-allow-egress-to-backend.yaml    --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-egress-to-backend   namespace: frontend spec:   podSelector:     matchLabels: {}   egress:     - to:       - podSelector:           matchLabels: {}         namespaceSelector:            matchLabels:               tier: backend     - to:       - namespaceSelector:           matchLabels:             kubernetes.io\/metadata.name: kube-system         podSelector:           matchLabels:             k8s-app: kube-dns       ports:       - protocol: UDP         port: 53 ---<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f8f\/456\/310\/f8f456310788966efe66c528a471d3f2.jpg\" width=\"844\" height=\"470\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f8f\/456\/310\/f8f456310788966efe66c528a471d3f2.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430.<br \/><\/strong>\u0420\u0430\u0437 \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0440\u0432\u0438\u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0441 IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041c\u044b \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043b\u0438 \u0432\u0435\u0441\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP. \u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 \u043b\u044e\u0431\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u043a\u0440\u043e\u043c\u0435 \u0447\u0430\u0441\u0442\u043d\u044b\u0445 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 pod\u2019\u043e\u0432. \u0422\u0430\u043a \u043c\u044b \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0441 pod\u2019\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Allow ingress from everywhere except pod-network > kubectl create -f \\   https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-allow-ingress-from-everywhere.yaml    --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-ingress-from-loadbalancer   namespace: frontend spec:   podSelector:                  matchLabels: {}   ingress:                        - from:       - ipBlock:                      cidr: 0.0.0.0\/0               except:            # Restrict the Private IP CIDR Block of your pod network.             - 10.0.0.0\/8      # So that, pods from other namespaces cannot send ingress traffic.       ports:                       - protocol: TCP         port: 80  ---<\/code><\/pre>\n<p>\u041c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u0432\u0441\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f <strong>\u0437\u0430\u0449\u0438\u0442\u044b<\/strong> \u0438 <strong>\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438<\/strong> \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a Kubernetes. \u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0435\u043f\u0435\u0440\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/dd7\/fd4\/9d5\/dd7fd49d5849c064cd48b8ea0952af7a.jpg\" width=\"853\" height=\"731\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dd7\/fd4\/9d5\/dd7fd49d5849c064cd48b8ea0952af7a.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<h3>5. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c.<\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0434\u043e\u0441\u0442\u0443\u043f \u0447\u0435\u0440\u0435\u0437 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f42\/c86\/799\/f42c867992e0609244f6dbb89ca5ed3a.jpg\" width=\"847\" height=\"368\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f42\/c86\/799\/f42c867992e0609244f6dbb89ca5ed3a.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043e <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435<\/strong> \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0441 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7aa\/970\/229\/7aa9702293e67d90ca5501eaf10e93f4.png\" width=\"780\" height=\"100\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7aa\/970\/229\/7aa9702293e67d90ca5501eaf10e93f4.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u0443\u0440\u0441, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b <a href=\"https:\/\/slurm.io\/kubernetes-security?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=kubernetes-security&amp;utm_content=article_21-02-2023&amp;utm_term=annavanna\"><u>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 Kubernetes<\/u><\/a>. <\/p>\n<ul>\n<li>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0447\u0435\u0440\u0435\u0437 pod \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c \u0432 \u0431\u044d\u043a\u0435\u043d\u0434\u0435 \u0438 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0435\u0440\u0432\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u0432\u0442\u043e\u0440\u043e\u0435\u00a0\u2014 \u043d\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Dive into a pod of the \"frontend\" deployment > kubectl exec -it frontend-5d7445bdb8-g8rpb  -n frontend bash # Try to access a service(clusterIP) named \"backend\", resides in the backend-tier  >>  curl backend.backend      --------------------------------------------------------------------------------- &lt;!DOCTYPE html> &lt;html> &lt;head>                                 #Successfully Accessed &lt;title>Welcome to nginx!&lt;\/title> &lt;style> ... ---------------------------------------------------------------------------------  # Try to access a service(clusterIP) named \"database\", resides in the database-tier  >>  curl database.database  --------------------------------------------------------------------------------- # curl: (28) Failed to connect to database.database port 80: Connection timed out ---------------------------------------------------------------------------------<\/code><\/pre>\n<ul>\n<li>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 pod \u043d\u0430 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0435<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Dive into a pod of the \"backend\" deployment > kubectl exec -it backend-5c5c74cbf6-h4d9p  -n backend bash # Try to access a service(clusterIP) named \"frontend\", resides in the frontend-tier  >>  curl frontend.frontend     --------------------------------------------------------------------------------- # curl: (28) Failed to connect to frontend.frontend port 80: Connection timed out ---------------------------------------------------------------------------------  # Try to access a service(clusterIP) named \"database\", resides in the database-tier  >>  curl database.database  ---------------------------------------------------------------------------------- &lt;!DOCTYPE html> &lt;html> &lt;head>                                 #Successfully Accessed &lt;title>Welcome to nginx!&lt;\/title> &lt;style> ... ----------------------------------------------------------------------------------<\/code><\/pre>\n<ul>\n<li>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0438\u0437 pod\u2019\u0430 \u0432 <strong>\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Dive into a pod of the \"database\" deployment > kubectl exec -it database-7d94797799-b9sdw   -n database bash # Try to access a service(clusterIP) named \"backend\", resides in the backend-tier  >>  curl backend.backend      --------------------------------------------------------------------------------- # curl: (28) Failed to connect to backend.backend port 80: Connection timed out ---------------------------------------------------------------------------------  # Try to access a service(clusterIP) named \"frontend\", resides in the frontend-tier  >>  curl frontend.frontend     --------------------------------------------------------------------------------- # curl: (28) Failed to connect to frontend.frontend port 80: Connection timed out ---------------------------------------------------------------------------------<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432 Kubernetes: \u043a\u0430\u043a \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u0442\u044c \u043d\u0430\u0432\u044b\u043a\u0438<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412 \u0443\u0447\u0435\u0431\u043d\u043e\u043c \u0446\u0435\u043d\u0442\u0440\u0435 \u0421\u043b\u0451\u0440\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u043a\u0443\u0440\u0441\u00a0<a href=\"https:\/\/slurm.io\/kubernetes-security?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=kubernetes-security&amp;utm_content=article_21-02-2023&amp;utm_term=annavanna\"><strong>\u00ab\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432 Kubernetes\u00bb<\/strong><\/a>\u00a0\u0434\u043b\u044f \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, DevOps\u2019\u043e\u0432, SRE \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0432 Kubernetes.<\/p>\n<p>\u041d\u0430\u00a0<a href=\"https:\/\/slurm.club\/3E5r8Ii\">\u043a\u0443\u0440\u0441\u0435<\/a>\u00a0\u0432\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u0441\u044c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438 \u0443\u0433\u0440\u043e\u0437, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u0438\u043c \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u0432 \u0441\u0440\u043e\u043a, \u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u2014 \u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0441\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0430\u0445 \u2014 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0442\u0435\u043e\u0440\u0438\u044e \u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0442\u0440\u043e\u0433\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u044f\u043d\u043a\u0443 Kuba, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u043d\u0430\u00a0<a href=\"https:\/\/slurm.club\/3NOAbAv\"><strong>\u00abKubernetes \u041c\u0435\u0433\u0430\u00bb<\/strong><\/a><strong>.<\/strong>\u00a0\u0412\u0430\u0441 \u0436\u0434\u0443\u0442 6 \u0447\u0430\u0441\u043e\u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438, \u043f\u0440\u0438\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0449\u0435\u043f\u043e\u0442\u043a\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u043e\u0442 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432.<\/p>\n<p><strong>\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442?<\/strong><\/p>\n<ul>\n<li>\n<p>\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 autoscaling<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>Stateful \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f Kubernets \u0438 Vault \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>HorizontalPodAutoscaler<\/p>\n<\/li>\n<li>\n<p>\u0440\u043e\u0442\u0430\u0446\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435<\/p>\n<\/li>\n<li>\n<p>Blue-Green Deploy \u0438 Canary Deploy<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Service mesh<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/slurm.io\/kubernetes-megapotok?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=kubernetes-megapotok&amp;utm_content=article_21-02-2023&amp;utm_term=annavanna\">\u00ab\u041c\u0435\u0433\u0430\u00bb<\/a>\u00a0\u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0432\u0441\u0435\u043c, \u043a\u043e\u043c\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c Kubernetes \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c: \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c, \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430\u043c, DevOps \u0438 \u0434\u0440. \u041f\u0440\u043e\u0439\u0434\u0438\u0442\u0435\u00a0<a href=\"https:\/\/slurm.io\/kubernetes-megapotok?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=kubernetes-megapotok&amp;utm_content=article_21-02-2023&amp;utm_term=annavanna\">\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u0443\u0440\u0441<\/a>, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c Kubernetes \u0432 \u0440\u0443\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p><strong>\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043e\u043c \u0434\u0435\u0448\u0435\u0432\u043b\u0435:<\/strong><\/p>\n<p>\u041c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u044b \u0432\u0438\u0434\u0435\u043e\u043a\u0443\u0440\u0441\u043e\u0432 (\u0442\u0430\u0440\u0438\u0444 &#171;\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442&#187;) \u0441\u043e \u0441\u043a\u0438\u0434\u043a\u043e\u0439 \u043e\u0442 20%<\/p>\n<p>\u00ab\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u00bb + \u00ab\u041c\u0435\u0433\u0430\u00bb = 90\u00a0000 \u0440\u0443\u0431\u043b\u0435\u0439 \u0432\u043c\u0435\u0441\u0442\u043e 130 000<\/p>\n<p>\u0423\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f:\u00a0<a href=\"https:\/\/slurm.io\/kubernetes-security?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=kubernetes-security&amp;utm_content=article_21-02-2023&amp;utm_term=annavanna\"><strong>\u00ab\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432 Kubernetes\u00bb<\/strong><\/a><strong>,\u00a0<\/strong><a href=\"https:\/\/slurm.io\/kubernetes-megapotok?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=kubernetes-megapotok&amp;utm_content=article_21-02-2023&amp;utm_term=annavanna\"><strong>\u00abKubernetes \u041c\u0435\u0433\u0430\u00bb.<\/strong><\/a><\/p>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/718262\/\"> https:\/\/habr.com\/ru\/company\/southbridge\/blog\/718262\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 <strong>Kubernetes<\/strong> \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043b\u044e\u0431\u043e\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e pod \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0438\u043b\u0438 pod\u2019\u0430, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043c\u0443\u043b\u044c\u0442\u0438\u0442\u0435\u043d\u0430\u043d\u0442\u043d\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c, \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u0438\u043b\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u043c.<\/p>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439<\/h2>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e\u00a0\u0432\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0438\u043c\u0451\u043d Kubernetes \u043c\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u00a0\u0442\u0440\u0451\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445: <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434<\/strong>, <strong>\u0431\u044d\u043a\u0435\u043d\u0434<\/strong> \u0438 <strong>\u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>.<\/p>\n<p><strong>\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434 <\/strong>\u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <strong>\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/strong>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a\u00a0\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u00a0DNS\u2011\u0438\u043c\u0435\u043d\u0438 \u0438\u043b\u0438\u00a0IP\u2011\u0430\u0434\u0440\u0435\u0441\u0443 \u044d\u0442\u043e\u0433\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430.<\/p>\n<p><strong>\u0411\u044d\u043a\u0435\u043d\u0434 <\/strong>\u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0441\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0431\u0443\u0434\u0435\u0442 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e\u00a0\u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043b\u044e\u0431\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0443 \u0438\u043c\u0451\u043d \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0411\u0435\u0437\u00a0\u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u043d\u0430\u0448\u0430 \u0442\u0440\u0451\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0441\u043e\u0437\u0434\u0430\u0432 \u0442\u0440\u0438 \u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0442\u044c <em>\u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/em> \u0438 <em>\u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/em>.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 <strong><em>nginx<\/em><\/strong><em> <\/em>\u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f pod\u2019\u043e\u0432 \u0432 <em>\u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f\u0445<\/em>.<\/p>\n<h3>1. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d<\/h3>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0435\u0442\u043a\u0438 \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u043f\u043e \u044d\u0442\u0438\u043c \u043c\u0435\u0442\u043a\u0430\u043c.<\/p>\n<pre><code># Create \"frontend\" namespace and add a label  > kubectl create ns frontend  > kubectl label ns frontend tier=frontend  # Create \"backend\" namespace and add a label  > kubectl create ns backend  > kubectl label ns backend tier=backend   # Create \"database\" namespace and add a label  > kubectl create ns database  > kubectl label ns database tier=database<\/code><\/pre>\n<h3>2. \u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/h3>\n<h4>2.1 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<pre><code># Deploy a deployment named \"database\" with 2 replicas > kubectl create deploy database -n database  --image=nginx --replicas=2 # List the pods of \"database\" deployments > kubectl get pods -n database ---------------------------------------------------------------------------------------------------- NAME                        READY   STATUS    RESTARTS   AGE database-7d94797799-b9sdw   1\/1     Running   0          23h database-7d94797799-jc4xt   1\/1     Running   0          23h ----------------------------------------------------------------------------------------------------  # Create a service (cluster ip) named \"database\" for accessing the pods of the \"database\" deployment > kubectl create service clusterip database --tcp=80 -n database # List the service   > kubectl get svc -n database ---------------------------------------------------------------------------------------------------- NAME       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE database   ClusterIP   10.106.137.165   &lt;none>        80\/TCP    23h ---------------------------------------------------------------------------------------------------- <\/code><\/pre>\n<h4>2.2 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u044d\u043a\u0435\u043d\u0434\u0430  <\/h4>\n<pre><code># Deploy a deployment named \"backend\" with 2 replicas > kubectl create deploy backend -n backend  --image=nginx --replicas=2 # List the pods of \"backend\" deployments > kubectl get pods -n backend ---------------------------------------------------------------------------------------------------- NAME                       READY   STATUS    RESTARTS   AGE backend-5c5c74cbf6-h4d9p   1\/1     Running   0          23h backend-5c5c74cbf6-jf6fj   1\/1     Running   0          23h ----------------------------------------------------------------------------------------------------  # Create a service (cluster ip) named \"backend\" for accessing the pods of the \"backend\" deployment > kubectl create service clusterip backend --tcp=80 -n backend # List the service   > kubectl get svc -n backend ---------------------------------------------------------------------------------------------------- NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE backend   ClusterIP   10.101.154.161   &lt;none>        80\/TCP    23h ---------------------------------------------------------------------------------------------------- <\/code><\/pre>\n<h4>2.3 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/h4>\n<pre><code># Deploy a deployment named \"frontend\" with 2 replicas > kubectl create deploy frontend -n frontend  --image=nginx --replicas=2 # List the pods of \"frontend\" deployments > kubectl get pods -n frontend ---------------------------------------------------------------------------------------------------- NAME                        READY   STATUS    RESTARTS   AGE frontend-5d7445bdb8-g8rpb   1\/1     Running   0          24h frontend-5d7445bdb8-kqtnc   1\/1     Running   0          24h ----------------------------------------------------------------------------------------------------  # Create a service (load balancer) named \"frontend\" for accessing the pods of the \"frontend\" deployment,  # From internet through the load balancer IP or DNS > kubectl create service loadbalancer frontend --tcp=80:80 -n frontend # List the service, and note down the external IP   > kubectl get svc -n frontend  ---------------------------------------------------------------------------------------------------- NAME       TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)        AGE frontend   LoadBalancer   10.102.187.203   45.76.197.98   80:30008\/TCP   30m ----------------------------------------------------------------------------------------------------<\/code><\/pre>\n<p>\u0424\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u043c\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c <strong>EXTERNAL-IP <\/strong>\u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435.<\/p>\n<h3>3. \u0420\u0438\u0441\u043a\u0438 \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/h3>\n<h4>3.1 \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/h4>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043a pod\u2019\u0430\u043c \u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438. \u0412\u0441\u0435 pod\u2019\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c. \u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u0442\u0435\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438\u043b\u0438 \u0442\u0430\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435? \u041b\u044e\u0431\u043e\u0439 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0441 \u0443\u0440\u043e\u0432\u043d\u044f <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a <strong>\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438 \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u042d\u0442\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0439 \u0440\u0438\u0441\u043a \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>3.2 \u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u0438\u0445 \u0440\u0438\u0441\u043a\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438. \u0421 \u0438\u0445 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b \u043c\u043e\u0436\u0435\u043c <strong>\u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/strong> \u0432\u0441\u0435 \u0442\u0440\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c <strong>\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0434\u043b\u044f <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0441 <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/strong> \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 <strong>\u0431\u044d\u043a\u0435\u043d\u0434<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u043d\u0435 \u043c\u043e\u0433 \u0441 <strong>\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430<\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a <strong>\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u043c \u0438\u043c\u0451\u043d. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0445\u0435\u043c\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h3>4. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438<\/h3>\n<h4>4.1 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<ul>\n<li>\n<p><strong>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0432\u0435\u0441\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<br \/><\/strong>\u041c\u044b \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0442\u044c \u0432\u0435\u0441\u044c <strong>\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439<\/strong> \u0438 <strong>\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Deny all ingress and egress traffic > kubectl create -f \\  https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-deny-all-database.yaml   --- kind: NetworkPolicy apiVersion: networking.k8s.io\/v1 metadata:   name: default-deny-all-database   namespace: database spec:   podSelector:     matchLabels: {}   policyTypes:   - Ingress   - Egress ---<\/code><\/pre>\n<p>\u0423\u0440\u043e\u0432\u0435\u043d\u044c <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435.<\/p>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 \u0431\u044d\u043a\u0435\u043d\u0434\u0430.<br \/><\/strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a \u0443\u0440\u043e\u0432\u043d\u044e <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong> \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c <strong>\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0442\u043e\u043b\u044c\u043a\u043e \u0441 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Allow ingress traffic from \"backend-tier\" using the following manifest file: > kubectl create -f  \\ https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-allow-ingress-from-backend.yaml  --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-ingress-from-backend   namespace: database spec:   podSelector:     matchLabels: {}   ingress:     - from:       - podSelector:           matchLabels: {}         namespaceSelector:            matchLabels:               tier: backend ---<\/code><\/pre>\n<h4>4.2 \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/h4>\n<ul>\n<li>\n<p><strong>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043c \u0432\u0435\u0441\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a.<br \/><\/strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0436\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u043a\u0430\u043a \u0434\u043b\u044f <strong>\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c <strong>\u0431\u044d\u043a\u0435\u043d\u0434<\/strong> \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0451\u043d.<\/p>\n<\/li>\n<\/ul>\n<pre><code># Deny all ingress and egress traffic > kubectl create -f \\ https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-deny-all-backend.yaml  --- kind: NetworkPolicy apiVersion: networking.k8s.io\/v1 metadata:   name: default-deny-all-backend   namespace: backend spec:   podSelector:     matchLabels: {}   policyTypes:   - Ingress   - Egress ---<\/code><\/pre>\n<ul>\n<li>\n<p><strong>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<br \/><\/strong>\u041d\u0430 <a href=\"https:\/\/medium.com\/geekculture\/network-policy-to-secure-workloads-on-kubernetes-cluster-99017698c748#4b0a\"><strong><u>\u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/u><\/strong><\/a> \u043c\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0430 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u043b\u0438 \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0434\u043b\u044f \u0431\u044d\u043a\u0435\u043d\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0433\u043e\u0442\u043e\u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043e\u0442 \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0430 \u0441\u0430\u043c\u043e\u043c\u0443 \u0431\u044d\u043a\u0435\u043d\u0434\u0443 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c \u0438 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043b\u044e\u0441 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <strong>\u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/strong> \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a pod\u2019\u0430\u043c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0435\u0449\u0451 \u043e\u0434\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c DNS-\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u0412 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes \u0441\u0435\u0440\u0432\u0435\u0440 DNS \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 pod\u2019\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d kube-system. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0443 kube-system, \u043d\u043e \u043d\u0435 \u043a\u043e \u0432\u0441\u0435\u043c\u0443, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0443\u0440\u043e\u0432\u043d\u044e kube-dns. \u0422\u0435\u043f\u0435\u0440\u044c pod\u2019\u044b \u043d\u0430 \u0431\u044d\u043a\u0435\u043d\u0434\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c DNS-\u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.<\/p>\n<p>\u041f\u0438\u0448\u0435\u043c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c <strong>\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong> \u0441 <strong>\u0431\u044d\u043a\u0435\u043d\u0434\u0430<\/strong> \u0432 <strong>\u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 <strong>\u043f\u043e\u0440\u0442 53<\/strong> \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d kube-system:<\/p>\n<pre><code># allow egress from backend-tier to database-tier and allow dns resolving of services > kubectl create -f \\   https:\/\/raw.githubusercontent.com\/shamimice03\/Network_Policies_Kubernetes\/main\/netpol-allow-egress-to-database.yaml  --- apiVersion: networking.k8s.io\/v1 kind: NetworkPolicy metadata:   name: allow-egress-to-database   namespace: backend spec:   podSelector:     matchLabels: {}   egress:     - to:       - podSelector:           matchLabels: {}         namespaceSelector:            matchLabels:               tier: database     - to:       - namespaceSelector:           matchLabels:             kubernetes.io\/metadata.name: kube-system         podSelector:           matchLabels:             k8s-app: kube-dns       ports:       - protocol: UDP         port: 53 ---<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0431\u044d\u043a\u0435\u043d\u0434 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-345768","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/345768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=345768"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/345768\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=345768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=345768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=345768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}