{"id":395175,"date":"2024-06-29T12:03:58","date_gmt":"2024-06-29T12:03:58","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=395175"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=395175","title":{"rendered":"<span>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 ReportPortal \u0432 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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/reportportal.io\/\" rel=\"nofollow noopener noreferrer\">ReportPortal<\/a> \u2013 \u044d\u0442\u043e \u0432\u0435\u0431-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u041f\u041e, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 EPAM \u0438 OSS-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u0415\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432, \u0418\u0422-\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e ReportPortal \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0423\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/li>\n<li>\u041f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u00ab\u0437\u0434\u0435\u0441\u044c \u0438 \u0441\u0435\u0439\u0447\u0430\u0441\u00bb, \u0441 \u043b\u043e\u0433\u0430\u043c\u0438, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438, \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/li>\n<li>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0441 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 (\u0431\u0430\u0433\u0430\u043c\u0438), \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 <a href=\"https:\/\/reportportal.io\/\" rel=\"nofollow noopener noreferrer\">ReportPortal<\/a> \u0432 kubernetes.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h3 id=\"trebovaniya\">\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f:<\/h3>\n<p>  <\/p>\n<ul>\n<li>Kubernetes (\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 1.18)<\/li>\n<li>3 Worker \u043d\u043e\u0434\u044b kubernetes \u0441 2 \u044f\u0434\u0440\u0430\u043c\u0438 CPU \u0438 10\u0413\u0411 \u041e\u0417\u0423.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"ustanovka-kubernetes\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Kubernetes<\/h3>\n<p>  <\/p>\n<p><a href=\"https:\/\/github.com\/reportportal\/kubernetes\/tree\/master\/reportportal#cloud-computing-services-platform-installation\" rel=\"nofollow noopener noreferrer\">\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Reportportal \u0432 kubernets <\/a><\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0432 Managed by kubernetes \u0432 Yandex Cloud.<\/p>\n<p>  <\/p>\n<h4 id=\"poluchaem-spisok-nod-k8s\">\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0434 k8s<\/h4>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0442\u043e\u0432 kubernetes, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0434 k8s.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl get nodes NAME                        STATUS   ROLES    AGE     VERSION cl1mikj7kfic31snr11h-ivow   Ready    &lt;none>   2m13s   v1.18.18 cl1mikj7kfic31snr11h-ubus   Ready    &lt;none>   2m12s   v1.18.18 cl1mikj7kfic31snr11h-ynax   Ready    &lt;none>   95s     v1.18.18<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"ustanavlivaem-kubernetes-labels-na-nody\">\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Kubernetes Labels \u043d\u0430 \u043d\u043e\u0434\u044b<\/h4>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl label nodes &lt;NODE-1> service=api kubectl label nodes &lt;NODE-2> service=rabbitmq kubectl label nodes &lt;NODE-3> service=db<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u0435\u043d\u044f\u0435\u043c <code>&lt;NODE-X><\/code> \u043d\u0430 \u0438\u043c\u044f \u0432\u0430\u0448\u0435\u0439 \u043d\u043e\u0434\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl label nodes cl1mikj7kfic31snr11h-ivow service=api kubectl label nodes cl1mikj7kfic31snr11h-ubus service=rabbitmq kubectl label nodes cl1mikj7kfic31snr11h-ynax service=db<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"ustanavlivaem-ingress-nginx\">\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c ingress-nginx<\/h4>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm repo add ingress-nginx https:\/\/kubernetes.github.io\/ingress-nginx &amp;&amp; helm repo update helm install --atomic nginx-ingress ingress-nginx\/ingress-nginx --version 3.36.0  <\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"skachivaem-repozitoriy-reportportal\">\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 reportportal<\/h4>\n<p>  <\/p>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <a href=\"https:\/\/github.com\/reportportal\/kubernetes\" rel=\"nofollow noopener noreferrer\">https:\/\/github.com\/reportportal\/kubernetes<\/a><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">git clone https:\/\/github.com\/reportportal\/kubernetes cd kubernetes<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"ustanovka-elasticsearch\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Elasticsearch<\/h3>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c helm \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 Elasticsearch<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm repo add elastic https:\/\/helm.elastic.co &amp;&amp; helm repo update<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c helm \u0447\u0430\u0440\u0442\u044b<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm dependency build .\/reportportal\/<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Elasticsearch<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install &lt;elastic-release-name> .\/reportportal\/charts\/elasticsearch-7.6.1.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;elastic-release-name><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>elasticsearch<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Elasticsearch. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f 3 \u043d\u043e\u0434\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install elasticsearch .\/reportportal\/charts\/elasticsearch-7.6.1.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 1 master \u043d\u043e\u0434\u0443 elasticsearch (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f dem\u043e \u0438\u043b\u0438 devel \u0441\u0442\u0435\u043d\u0434\u043e\u0432) \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 yaml \u0444\u0430\u0439\u043b <code>.\/reportportal\/single-elasticsearch\/value.yaml<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">extraEnvs:   - name: discovery.type     value: single-node   - name: cluster.initial_master_nodes     value: \"\"<\/code><\/pre>\n<p>  <\/p>\n<p>\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install elasticsearch .\/reportportal\/charts\/elasticsearch-7.6.1.tgz --set replicas=1 -f .\/reportportal\/single-elasticsearch\/value.yaml<\/code><\/pre>\n<p>  <\/p>\n<p>\u0411\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d <a href=\"https:\/\/github.com\/reportportal\/kubernetes\/pull\/205\" rel=\"nofollow noopener noreferrer\">pull request<\/a>, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 yaml \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 single node elasticsearch<\/p>\n<p>  <\/p>\n<h3 id=\"ustanovka-rabbitmq\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 RabbitMQ<\/h3>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 RabbitMQ <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install &lt;rabbitmq-release-name> --set auth.username=rabbitmq,auth.password=&lt;rmq_password>,replicaCount=1 .\/reportportal\/charts\/rabbitmq-7.5.6.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;rabbitmq-release-name><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>rabbitmq<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;rmq_password><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 RabbitMQ. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>password<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install rabbitmq --set auth.username=rabbitmq,auth.password=password,replicaCount=1 .\/reportportal\/charts\/rabbitmq-7.5.6.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0415\u0441\u043b\u0438 release-name \u0432 helm \u043d\u0430\u0437\u0432\u0430\u043d &#171;rabbitmq&#187;, \u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u0431\u0443\u0434\u0435\u0442 &#171;rabbitmq.default.svc.cluster.local&#187;.<\/li>\n<li>\u0415\u0441\u043b\u0438 release-name \u0432 helm \u043d\u0430\u0437\u0432\u0430\u043d &#171;rabbit&#187;, \u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u0431\u0443\u0434\u0435\u0442 &#171;rabbit-rabbitmq.default.svc.cluster.local&#187;.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f \u0447\u0442\u043e \u043f\u043e\u0434 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 running<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl get pod rabbitmq-0 NAME         READY   STATUS    RESTARTS   AGE rabbitmq-0   0\/1     Running   0          60s<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c RabbitMQ memory threshold<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl exec -it rabbitmq-0 -- rabbitmqctl set_vm_memory_high_watermark 0.8<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c <code>reportportal\/values.yaml<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">rabbitmq:   SecretName: \"\"   installdep:     enable: false   endpoint:     address: &lt;rabbitmq-release-name>.default.svc.cluster.local     port: 5672     user: rabbitmq     apiport: 15672     apiuser: rabbitmq<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;rabbitmq-release-name><\/code> \u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>rabbitmq<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">rabbitmq:   SecretName: \"\"   installdep:     enable: false   endpoint:     address: rabbitmq.default.svc.cluster.local     port: 5672     user: rabbitmq     apiport: 15672     apiuser: rabbitmq<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"ustanovka-postgresql\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 PostgreSQL<\/h3>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 PostgreSQL<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install  &lt;postgresql-release-name> --set postgresqlUsername=rpuser,postgresqlPassword=&lt;rpuser_password>,postgresqlDatabase=reportportal,postgresqlPostgresPassword=&lt;postgres_password> -f .\/reportportal\/postgresql\/values.yaml .\/reportportal\/charts\/postgresql-10.9.4.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;postgresql-release-name><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>postgresql<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;rpuser_password><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f rpuser. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>password<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;postgres_password><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f postgres. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>password<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install postgresql --set postgresqlUsername=rpuser,postgresqlPassword=password,postgresqlDatabase=reportportal,postgresqlPostgresPassword=password -f .\/reportportal\/postgresql\/values.yaml .\/reportportal\/charts\/postgresql-10.9.4.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c <code>reportportal\/values.yaml<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">postgresql:   SecretName: \"\"   installdep:     enable: false   endpoint:     address: &lt;postgresql-release-name>.default.svc.cluster.local     port: 5432     user: rpuser     dbName: reportportal     password:<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0415\u0441\u043b\u0438 release-name \u0432 helm \u043d\u0430\u0437\u0432\u0430\u043d &#171;postgresql&#187;, \u0442\u043e address \u0431\u0443\u0434\u0435\u0442 &#171;postgresql.default.svc.cluster.local&#187;.<\/li>\n<li>\u0415\u0441\u043b\u0438 release-name \u0432 helm \u043d\u0430\u0437\u0432\u0430\u043d &#171;postgres&#187;, \u0442\u043e address \u0431\u0443\u0434\u0435\u0442 &#171;postgres-postgresql.default.svc.cluster.local&#187;.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;postgresql-release-name><\/code> \u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>postgresql<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">postgresql:   SecretName: \"\"   installdep:     enable: false   endpoint:     address: postgresql.default.svc.cluster.local     port: 5432     user: rpuser     dbName: reportportal     password:<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"ustanovka-minio\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 MinIO<\/h3>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 MinIO <\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install  &lt;minio-release-name> --set accessKey.password=&lt;your_minio_accesskey>,secretKey.password=&lt;your_minio_secretkey>,persistence.size=5Gi .\/reportportal\/charts\/minio-7.1.9.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;minio-release-name><\/code> \u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>minio<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;your_minio_accesskey><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 accesskey. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>accesskey<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;your_minio_secretkey><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 secretkey. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>secretkey<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install minio --set accessKey.password=accesskey,secretKey.password=secretkey,persistence.size=5Gi .\/reportportal\/charts\/minio-7.1.9.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c <code>reportportal\/values.yaml<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">minio:   secretName: \"\"   enabled: true   installdep:     enable: false   endpoint: http:\/\/&lt;minio-release-name>.default.svc.cluster.local:9000   endpointshort: &lt;minio-release-name>.default.svc.cluster.local:9000   region:   accesskey: &lt;minio-accesskey>   secretkey: &lt;minio-secretkey>   bucketPrefix:   defaultBucketName:   integrationSaltPath:<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;minio-release-name><\/code> \u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430. \u042d\u0442\u043e <code>minio<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;minio-accesskey><\/code> \u043c\u0435\u043d\u044f\u0435\u043c accesskey, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>accesskey<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;minio-secretkey><\/code> \u043c\u0435\u043d\u044f\u0435\u043c secretkey, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e <code>secretkey<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">minio:   secretName: \"\"   enabled: true   installdep:     enable: false   endpoint: http:\/\/minio.default.svc.cluster.local:9000   endpointshort: minio.default.svc.cluster.local:9000   region:   accesskey: accesskey   secretkey: secretkey   bucketPrefix:   defaultBucketName:   integrationSaltPath:<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"nastroyka-ingress-dlya-dostupa-k-reportportal\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Ingress \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a reportportal<\/h4>\n<p>  <\/p>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c <code>reportportal\/values.yaml<\/code><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ingress:   enable: true   # IF YOU HAVE SOME DOMAIN NAME SET INGRESS.USEDOMAINNAME to true   usedomainname: false   hosts:     - reportportal.k8.com<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043c\u0435\u043d <code>reportportal.k8.com<\/code> \u043d\u0430 \u0432\u0430\u0448 \u0434\u043e\u043c\u0435\u043d.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442 \u0434\u043e\u043c\u0435\u043d\u0430, \u043d\u043e ingress-nginx \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430\u0440\u0443\u0436\u0443, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 nip.io, xip.io \u0438\u043b\u0438 sslip.io.<\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043e\u043c\u0435\u043d \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e IP \u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 IP \u043e\u0442 ingress-ingress<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">kubectl get svc nginx-ingress-ingress-nginx-controller NAME                                     TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)                      AGE nginx-ingress-ingress-nginx-controller   LoadBalancer   10.96.165.32   178.154.210.20   80:31767\/TCP,443:31456\/TCP   4m56s<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043d\u0435\u0448\u043d\u0438\u0439 IP \u0430\u0434\u0440\u0435\u0441 \u2014 178.154.210.20.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u043c\u0435\u043d reportportal.178.154.210.20.sslip.io.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">ingress:   enable: true   # IF YOU HAVE SOME DOMAIN NAME SET INGRESS.USEDOMAINNAME to true   usedomainname: false   hosts:     - reportportal.178.154.210.20.sslip.io<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"ustanovka-helm-charta-reportportal\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 helm \u0447\u0430\u0440\u0442\u0430 reportportal<\/h4>\n<p>  <\/p>\n<p>\u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430 helm \u0447\u0430\u0440\u0442\u0430 reportportal<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm package .\/reportportal\/<\/code><\/pre>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 reportportal<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install &lt;reportportal-release-name> --set postgresql.SecretName=&lt;postgresql-release-name>-postgresql,rabbitmq.SecretName=&lt;rabbitmq-release-name>-rabbitmq,minio.secretName=&lt;minio-release-name> .\/reportportal-5.5.0.tgz <\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;reportportal-release-name><\/code> \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0447\u0430\u0440\u0442\u0430 \u0434\u043b\u044f reportportal. \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>reportportal<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;postgresql-release-name><\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430 postgresql. \u042d\u0442\u043e <code>postgresql<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e <code>&lt;rabbitmq-release-name><\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 helm \u0447\u0430\u0440\u0442\u0430 rabbitmq. \u042d\u0442\u043e <code>rabbitmq<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">helm install reportportal --set postgresql.SecretName=postgresql,rabbitmq.SecretName=rabbitmq,minio.secretName=minio .\/reportportal-5.5.0.tgz<\/code><\/pre>\n<p>  <\/p>\n<p>\u041b\u043e\u0433\u0438\u043d\u044b\/\u043f\u0430\u0440\u043e\u043b\u0438 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 reportportal:<\/p>\n<p>  <\/p>\n<ul>\n<li>Default User: default\\1q2w3e<\/li>\n<li>Administrator: superadmin\\erebus<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/kz\/le\/x3\/kzlex34taozpoigg18rerdugsls.png\" data-src=\"https:\/\/habrastorage.org\/webt\/kz\/le\/x3\/kzlex34taozpoigg18rerdugsls.png\"\/><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/wr\/gt\/7x\/wrgt7xleqrv0p2fnhvw-ym_1jpi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/wr\/gt\/7x\/wrgt7xleqrv0p2fnhvw-ym_1jpi.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0418\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438:<br \/>  <a href=\"https:\/\/github.com\/reportportal\/kubernetes\/issues\/203\" rel=\"nofollow noopener noreferrer\">Memory cgroup out of memory: Killed process (uwsgi)<\/a><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">[ 7063.247407] Memory cgroup out of memory: Killed process 63214 (uwsgi) total-vm:3149468kB, anon-rss:164992kB, file-rss:52176kB, shmem-rss:92kB, UID:0 pgtables:1372kB oom_score_adj:986 [ 7063.263325] oom_reaper: reaped process 63214 (uwsgi), now anon-rss:0kB, file-rss:0kB, shmem-rss:92kB [ 7093.543707] uwsgi invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=986 [ 7093.543711] CPU: 4 PID: 63635 Comm: uwsgi Not tainted 5.4.0-77-generic #86-Ubuntu ... [ 7093.544021] [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name [ 7093.544025] [  18904]     0 18904      255        1    32768        0          -998 pause [ 7093.544028] [  20358]     0 20358    13850     3787    98304        0           986 uwsgi [ 7093.544030] [  20425]     0 20425    15899     3877   114688        0           986 uwsgi [ 7093.544033] [  62892]     0 62892   787367    54312  1400832        0           986 uwsgi [ 7093.544039] [  63384]     0 63384   787367    54314  1400832        0           986 uwsgi [ 7093.544041] [  63635]     0 63635   328986    37869  1069056        0           986 uwsgi [ 7093.544046] [  63794]     0 63794   202492    24945   753664        0           986 uwsgi [ 7093.544048] oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=7c29217c3af6fef0b7bcc4150d2502f684ef8f83d2ea377411c9a2265e8d4843,mems_allowed=0,oom_memcg=\/kubepods\/burstable\/pod05347bee-e95c-4857-8435-410a406f1f7a,task_memcg=\/kubepods\/burstable\/pod05347bee-e95c-4857-8435-410a406f1f7a\/7c29217c3af6fef0b7bcc4150d2502f684ef8f83d2ea377411c9a2265e8d4843,task=uwsgi,pid=63384,uid=0 [ 7093.544177] Memory cgroup out of memory: Killed process 63384 (uwsgi) total-vm:3149468kB, anon-rss:164988kB, file-rss:52176kB, shmem-rss:92kB, UID:0 pgtables:1368kB oom_score_adj:986<\/code><\/pre>\n<p>  <\/p>\n<p><a href=\"https:\/\/github.com\/reportportal\/kubernetes\/pull\/208\" rel=\"nofollow noopener noreferrer\">\u042d\u0442\u043e\u0442 issue \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f pull request<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u043a\u043b\u0430\u043c\u044b: \u041d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 <a href=\"https:\/\/rotoro.cloud\/\" rel=\"nofollow noopener noreferrer\">https:\/\/rotoro.cloud\/<\/a> \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043a\u0443\u0440\u0441\u044b \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u043d\u044f\u0442\u0438\u044f\u043c\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/ansible-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Ansible \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/certified-kubernetes-administrator-cka-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Certified Kubernetes Administrator (CKA) + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/docker-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Docker \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/kubernetes-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Kubernetes \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/terraform-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85-%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BE%D0%BF%D1%8B%D1%82\/\" rel=\"nofollow noopener noreferrer\">Terraform \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 + \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/a><\/li>\n<li><a href=\"https:\/\/rotoro.cloud\/ld-courses\/wiki-practice\/\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432 IT (Linux, Docker, git, Jenkins)<\/a><\/li>\n<\/ul>\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\/articles\/579506\/\"> https:\/\/habr.com\/ru\/articles\/579506\/<\/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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/reportportal.io\/\" rel=\"nofollow noopener noreferrer\">ReportPortal<\/a> \u2013 \u044d\u0442\u043e \u0432\u0435\u0431-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u041f\u041e, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 EPAM \u0438 OSS-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u0415\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432, \u0418\u0422-\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e ReportPortal \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0423\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/li>\n<li>\u041f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u00ab\u0437\u0434\u0435\u0441\u044c \u0438 \u0441\u0435\u0439\u0447\u0430\u0441\u00bb, \u0441 \u043b\u043e\u0433\u0430\u043c\u0438, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438, \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/li>\n<li>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0441 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 (\u0431\u0430\u0433\u0430\u043c\u0438), \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 <a href=\"https:\/\/reportportal.io\/\" rel=\"nofollow noopener noreferrer\">ReportPortal<\/a> \u0432 kubernetes.<\/p>\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-395175","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/395175","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=395175"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/395175\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=395175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=395175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=395175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}