Translate Learn Kubernetes Basics into Russian

This commit is contained in:
Alexey Pyltsyn 2020-05-07 19:43:27 +03:00
parent ca1c7f7560
commit 5f88e973bd
21 changed files with 1172 additions and 69 deletions

View File

@ -1,70 +1,3 @@
---
title: Руководства
main_menu: true
weight: 60
content_template: templates/concept
---
{{% capture overview %}}
В данном разделе документации Kubernetes можно найти руководства. В них рассказывается, как достичь определённой цели, а не просто выполнить одно задачу (/docs/tasks/). Большинство уроков состоит из нескольких разделов, каждый из которых включает в себя шаги для последовательного выполнения. Перед тем как приступить к выполнению уроков, может быть полезно ознакомиться со [словарем терминов](/docs/reference/glossary/) для последующих обращений.
{{% /capture %}}
{{% capture body %}}
## Основы
* [Основы Kubernetes](/docs/tutorials/kubernetes-basics/) - глубокое интерактивное руководство, направленное на понимание системы и предлагающее попробовать некоторые основные возможности Kubernetes.
* [Масштабируемые микросервисы с Kubernetes (Udacity)](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615)
* [Введение в Kubernetes (edX)](https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x#)
* [Hello Minikube](/docs/tutorials/hello-minikube/)
## Конфигурирование
* [Конфигурирование Redis с использованием ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/)
## Stateless приложения
* [Установка внешнего IP адреса для получения доступа к приложению в кластере](/docs/tutorials/stateless-application/expose-external-ip-address/)
* [Пример: развёртывание приложения "Гостевая книга" на PHP с использованием Redis](/docs/tutorials/stateless-application/guestbook/)
## Stateful приложения
* [Основы StatefulSet](/docs/tutorials/stateful-application/basic-stateful-set/)
* [Пример: WordPress и MySQL с персистентным хранилищем](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
* [Пример: Развёртывание Cassandra с Stateful Sets](/docs/tutorials/stateful-application/cassandra/)
* [Запуск ZooKeeper, A CP Distributed System](/docs/tutorials/stateful-application/zookeeper/)
## CI/CD пайплайн
* [Настройка CI/CD пайплайна с Kubernetes Часть 1: Обзор](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/5/set-cicd-pipeline-kubernetes-part-1-overview)
* [Настройка CI/CD пайплайна с подом Jenkins в Kubernetes (Часть 2)](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/6/set-cicd-pipeline-jenkins-pod-kubernetes-part-2)
* [Запуск и масштабирование приложения распределённого кроссворда с CI/CD в Kubernetes (Часть 3)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/run-and-scale-distributed-crossword-puzzle-app-cicd-kubernetes-part-3)
* [Настройка CI/CD для приложения распределённого кроссворда в Kubernetes (Часть 4)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/set-cicd-distributed-crossword-puzzle-app-kubernetes-part-4)
## Clusters
* [AppArmor](/docs/tutorials/clusters/apparmor/)
## Services
* [Использование IP](/docs/tutorials/services/source-ip/)
{{% /capture %}}
{{% capture whatsnext %}}
Если вы хотите создать руководство самостоятельно, обратитесь к странице [Использование шаблонов страниц](/docs/home/contribute/page-templates/), чтобы узнать информацию и посмотреть шаблоны для составления руководств.
{{% /capture %}}
title: Документация
---

View File

@ -0,0 +1,70 @@
---
title: Руководства
main_menu: true
weight: 60
content_template: templates/concept
---
{{% capture overview %}}
В данном разделе документации Kubernetes можно найти руководства. В них рассказывается, как достичь определённой цели, а не просто выполнить одно задачу (/docs/tasks/). Большинство уроков состоит из нескольких разделов, каждый из которых включает в себя шаги для последовательного выполнения. Перед тем как приступить к выполнению уроков, может быть полезно ознакомиться со [словарем терминов](/docs/reference/glossary/) для последующих обращений.
{{% /capture %}}
{{% capture body %}}
## Основы
* [Основы Kubernetes](/docs/tutorials/kubernetes-basics/) - глубокое интерактивное руководство, направленное на понимание системы и предлагающее попробовать некоторые основные возможности Kubernetes.
* [Масштабируемые микросервисы с Kubernetes (Udacity)](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615)
* [Введение в Kubernetes (edX)](https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x#)
* [Hello Minikube](/docs/tutorials/hello-minikube/)
## Конфигурирование
* [Конфигурирование Redis с использованием ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/)
## Stateless приложения
* [Установка внешнего IP адреса для получения доступа к приложению в кластере](/docs/tutorials/stateless-application/expose-external-ip-address/)
* [Пример: развёртывание приложения "Гостевая книга" на PHP с использованием Redis](/docs/tutorials/stateless-application/guestbook/)
## Stateful приложения
* [Основы StatefulSet](/docs/tutorials/stateful-application/basic-stateful-set/)
* [Пример: WordPress и MySQL с персистентным хранилищем](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
* [Пример: Развёртывание Cassandra с Stateful Sets](/docs/tutorials/stateful-application/cassandra/)
* [Запуск ZooKeeper, A CP Distributed System](/docs/tutorials/stateful-application/zookeeper/)
## CI/CD пайплайн
* [Настройка CI/CD пайплайна с Kubernetes Часть 1: Обзор](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/5/set-cicd-pipeline-kubernetes-part-1-overview)
* [Настройка CI/CD пайплайна с подом Jenkins в Kubernetes (Часть 2)](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/6/set-cicd-pipeline-jenkins-pod-kubernetes-part-2)
* [Запуск и масштабирование приложения распределённого кроссворда с CI/CD в Kubernetes (Часть 3)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/run-and-scale-distributed-crossword-puzzle-app-cicd-kubernetes-part-3)
* [Настройка CI/CD для приложения распределённого кроссворда в Kubernetes (Часть 4)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/set-cicd-distributed-crossword-puzzle-app-kubernetes-part-4)
## Clusters
* [AppArmor](/docs/tutorials/clusters/apparmor/)
## Services
* [Использование IP](/docs/tutorials/services/source-ip/)
{{% /capture %}}
{{% capture whatsnext %}}
Если вы хотите создать руководство самостоятельно, обратитесь к странице [Использование шаблонов страниц](/docs/home/contribute/page-templates/), чтобы узнать информацию и посмотреть шаблоны для составления руководств.
{{% /capture %}}

View File

@ -0,0 +1,116 @@
---
title: Основы Kubernetes
linkTitle: Основы Kubernetes
weight: 10
card:
name: tutorials
weight: 20
title: Краткий обзор основ
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-9">
<h2>Основы Kubernetes</h2>
<p>В данном руководстве вы познакомитесь с основами системы оркестрации кластеров Kubernetes. Каждый модуль содержит краткую справочную информацию по основной функциональности и концепциям Kubernetes, а также включает интерактивные онлайн-уроки. С их помощью вы научитесь самостоятельно управлять простым кластером и контейнеризированными приложениями, которые были в нём развернуты.</p>
<p>Пройдя интерактивные уроки, вы узнаете, как:</p>
<ul>
<li>развёртывать контейнеризированное приложение в кластер.</li>
<li>масштабировать развёртывание.</li>
<li>обновить контейнеризированное приложение на новую версию ПО.</li>
<li>отлаживать контейнеризированное приложение.</li>
</ul>
<p>Все руководства используют сервис Katacoda, поэтому в вашем браузере будет показан виртуальный терминал с работающим Minikube, небольшой локальной средой Kubernetes, которая может работать где угодно. Вам не потребуется устанавливать дополнительное ПО или вообще что-либо настраивать. Каждый интерактивный урок запускается непосредственно в вашем браузере.</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-9">
<h2>Чем может Kubernetes помочь вам?</h2>
<p>От современных веб-сервисов пользователи ожидают, что приложения будут доступны 24/7, а разработчики — развёртывать новые версии приложений по нескольку раз в день. Контейнеризация направлена на достижение этой цели, упаковывая ПО и позволяя выпускать и обновлять приложения просто, быстро и без простоев. Kubernetes гарантирует вам, что ваши контейнеризованные приложения будет запущены где угодно и когда угодно, вместе со всеми необходимыми для их работы ресурсами и инструментами. Kubernetes — это готовая к промышленному использованию платформа с открытым исходным кодом, разработанная исходя из накопленного опыта Google по оркестровке контейнеров и лучшими идеями от сообщества.</p>
</div>
</div>
<br>
<div id="basics-modules" class="content__modules">
<h2>Учебные модули по основам Kubernetes</h2>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-4">
<div class="thumbnail">
<a href="/ru/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_01.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/ru/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><h5>1. Создание кластера Kubernetes</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/ru/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_02.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/ru/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><h5>2. Развёртывание приложение</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/ru/docs/tutorials/kubernetes-basics/explore/explore-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_03.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/ru/docs/tutorials/kubernetes-basics/explore/explore-intro/"><h5>3. Изучение приложения</h5></a>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="row">
<div class="col-md-4">
<div class="thumbnail">
<a href="/ru/docs/tutorials/kubernetes-basics/expose/expose-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_04.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/ru/docs/tutorials/kubernetes-basics/expose/expose-intro/"><h5>4. Открытие доступа к приложению</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/ru/docs/tutorials/kubernetes-basics/scale/scale-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_05.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/ru/docs/tutorials/kubernetes-basics/scale/scale-intro/"><h5>5. Масштабирование приложения</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/ru/docs/tutorials/kubernetes-basics/update/update-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_06.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/ru/docs/tutorials/kubernetes-basics/update/update-intro/"><h5>6. Обновление приложение</h5></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
---
title: Создание кластера
weight: 10
---

View File

@ -0,0 +1,37 @@
---
title: Интерактивный урок - Создание кластера
weight: 20
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<div class="katacoda">
<div class="katacoda__alert">
Данный экран слишком маленький, чтобы работать с терминалом, пожалуйста, используйте компьютер или планшет.
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/1" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;"></div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/" role="button">Перейти ко второму модулю<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,106 @@
---
title: Использование Minikube для создания кластера
weight: 10
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Темы</h3>
<ul>
<li>Узнать, что такое кластер Kubernetes.</li>
<li>Узнать, что такое Minikube.</li>
<li>Запуск кластера Kubernetes через онлайн-терминал.</li>
</ul>
</div>
<div class="col-md-8">
<h3>Кластеры Kubernetes</h3>
<p>
<b>Задача Kubernetes заключается в координации кластера компьютеров, работающего как одно целое.</b> Абстрактные объекты в Kubernetes позволяют развертывать контейнеризированные приложения в кластер, не привязывая их к отдельным машинам. Для использования этой новой модели развертывания, приложения должны быть подготовлены так, чтобы они не зависели от конкретных хостов, т.е. они должны быть упакованы в контейнеры. Приложения в контейнерах более гибки и доступны, чем в предыдущих моделях развертывания, когда приложения устанавливались непосредственно на конкретные машины в виде пакетов, тесно связанных с хостом. <b>Kubernetes автоматизирует распределение и выполнение контейнеров приложений для запуска в кластере более эффективным образом.</b> Kubernetes — это платформа с открытым исходным кодом, готовая к промышленной эксплуатации.
</p>
<p>Кластер Kubernetes состоит из двух типов ресурса:
<ul>
<li><b>Мастер (ведущий узел)</b> управляет кластером</li>
<li><b>Рабочие узлы</b> — машины, на которых выполняются приложения</li>
</ul>
</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Краткое содержание:</h3>
<ul>
<li>Кластер Kubernetes</li>
<li>Minikube</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>
Kubernetes — платформа с открытым исходным кодом промышленного уровня, которая управляет размещением (планированием) и запуском контейнеров приложений в пределах компьютерных кластеров и между ними.
</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2 style="color: #3771e3;">Схема кластера</h2>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_01_cluster.svg"></p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p><b>Мастер отвечает за управление кластером.</b> Мастер координирует все процессы в кластере, такие как планирование выполнения приложений, сохранение требуемого состояния приложений, а также их масштабирование и обновление.</p>
<p><b>Узел — это виртуальная машина или физический компьютер, который выполняет роль рабочего узла в кластере Kubernetes.</b> У каждого узла есть Kubelet — агент, управляющий узлом и взаимодействующий с ведущим узлом Kubernetes. Узел также имеет инструменты для выполнения контейнерных операций, например, Docker или rkt. Кластер Kubernetes в промышленном окружении должен состоять как минимум из трёх узлов.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_fill">
<p><i>Ведущие узлы управляют кластером и узлами, которые используются для запуска приложений.</i></p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p>При развертывании приложений в Kubernetes вы сообщаете ведущему узлу запускать контейнеры приложений. Ведущий узел планирует выполнение контейнеров на узлах кластера. <b>Узлы взаимодействуют с ведущим узлом посредством <a href="/docs/concepts/overview/kubernetes-api/">API Kubernetes</a></b>, который предлагает ведущий узел. Кроме этого, конечные пользователи могут напрямую использовать API Kubernetes для работы с кластером.</p>
<p>Kubernetes-кластер может быть развернут на физических или виртуальных машинах. Чтобы начать работать с Kubernetes, можно использовать Minikube. Minikube — это упрощённая реализация Kubernetes, которая создает виртуальную машину на вашем локальном компьютере и разворачивает простой кластер с одним узлом. Minikube доступен для Linux, macOS и Windows. В CLI-инструменте Minikube есть основные операции для инициализации кластера, включая запуск, завершение, просмотра состояния и удаления кластера. Однако в этом уроке вы будете использовать онлайн-терминал с уже установленным Minikube.</p>
<p>Теперь, когда вы знаете, что такое Kubernetes, можно перейти к онлайн-уроку, где вы запустите ваш первый кластер!</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/" role="button">Начать интерактивный урок <span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
---
title: Развёртывание приложения
weight: 20
---

View File

@ -0,0 +1,49 @@
---
title: Интерактивный урок - Развёртывание приложения
weight: 20
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<div class="row">
<div class="col-md-12">
<p>
Под — основной ресурс приложения Kubernetes. Каждый под представляет собой часть рабочей нагрузки, выполняемой в кластере. <a href="/docs/concepts/workloads/pods/pod-overview/#understanding-pods">Узнать подробнее про поды</a>.
</p>
</div>
</div>
<br>
<div class="katacoda">
<div class="katacoda__alert">
Для работы с терминалом, пожалуйста, используйте компьютер или планшет.
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/7" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/explore/explore-intro/" role="button">Перейти к третьему модулю<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,104 @@
---
title: Использование kubectl для развёртывания приложения
weight: 10
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Темы</h3>
<ul>
<li>Узнать про развёртывания приложения.</li>
<li>Развернуть первое приложение на Kubernetes с помощью kubectl.</li>
</ul>
</div>
<div class="col-md-8">
<h3>Развёртывания Kubernetes</h3>
<p>Как только вы запустили кластер Kubernetes, вы можете развернуть свои контейнеризированные приложения в него. Для этого вам нужно создать конфигурацию <b>развёртывания (Deployment)</b> в Kubernetes. Развёртывание сообщает Kubernetes, как создавать и обновлять экземпляры вашего приложения. После создания развёртывания ведущий узел Kubernetes планирует запустить экземпляры приложения на отдельных узлах в кластере.</p>
<p>Когда экземпляры приложения были созданы, контроллер развёртывания Kubernetes непрерывно отслеживает их. Если узел, на котором размещен экземпляр, вышёл из строя или был удалён, контроллер развёртывания вместо этого экземпляра использует экземпляр на другом узле в кластере. <b>Этот процесс представляет собой механизм самовосстановления, обеспечивающий работу кластера в случае возникновения аппаратных неисправностей либо технических работ.</b>
<p>До того, как появились системы оркестровки, для запуска приложений обычно использовались установочные скрипты, которые не перезапускались после сбоя компьютера. Создавая экземпляры приложений и поддерживая их работу на нескольких узлах, развёртывания Kubernetes коренным образом отличаются в плане управления приложениями.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Краткое содержание:</h3>
<ul>
<li>Развёртывания</li>
<li>Kubectl</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>
Развёртывание отвечает за создание и обновление экземпляров приложения
</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2 style="color: #3771e3;">Развёртывание вашего первого приложения на Kubernetes</h2>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg"></p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>Вы можете создавать и управлять развёртыванием через командный инструмент Kubernetes под названием <b>Kubectl</b>. Kubectl использует API Kubernetes для работы с кластером. В этом модуле вы узнаете про наиболее используемые команды Kubectl, необходимые для создания развёртываний, которые будут запускать приложения в кластере Kubernetes.</p>
<p>При создании развертывания нужно указать образ контейнера приложения и количество запущенных реплик. Впоследствии эти параметры можно изменить. В модулях <a href="/ru/docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a> и <a href="/ru/docs/tutorials/kubernetes-basics/update/update-intro/">6</a> рассказывается про масштабирование и обновление развертываний.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_fill">
<p><i>Чтобы приложение запускалось в Kubernetes, оно должно быть упаковано в один из поддерживаемых форматов контейнеров</i></p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p>
В качестве первого развёртывания будем использовать приложение на Node.js, упакованное в Docker-контейнер. Следуя инструкциям в <a href="/ru/docs/tutorials/hello-minikube/">руководстве "Привет, Minikube"</a> вы сможете создать такое приложение Node.js и поместить его в контейнер.
<p>
<p>Теперь, когда познакомились с развёртываниями, можно начать онлайн-урок, где вы развернёте своё первое приложение!</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/" role="button">Начать интерактивный урок <span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
---
title: Изучение приложения
weight: 30
---

View File

@ -0,0 +1,41 @@
---
title: Интерактивный урок - Изучение приложения
weight: 20
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<br>
<div class="katacoda">
<div class="katacoda__alert">
Для работы с терминалом, пожалуйста, используйте компьютер или планшет.
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/4" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/expose/expose-intro/" role="button">Перейти к четвёртому модулю<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,145 @@
---
title: Изучение подов и узлов
weight: 10
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Темы</h3>
<ul>
<li>Узнать про поды Kubernetes.</li>
<li>Узнать про узлы Kubernetes.</li>
<li>Диагностика развёрнутых приложений.</li>
</ul>
</div>
<div class="col-md-8">
<h2>Поды Kubernetes</h2>
<p>После того, как вы создали развёртывание в модуле <a href="/ru/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">2</a>, Kubernetes создал <b>под (Pod)</b>, в котором был размещён экземпляр вашего приложения. Под — это абстрактный объект Kubernetes, представляющий собой группу из одного или нескольких контейнеров приложения (например, Docker или rkt) и совместно используемых ресурсов для этих контейнеров. Ресурсами могут быть:</p>
<ul>
<li>Общее хранилище (тома)</li>
<li>Сеть (уникальный IP-адрес кластера)</li>
<li>Информация по выполнению каждого контейнера (версия образа контейнера или используемые номера портов)</li>
</ul>
<p>Под представляет специфичный для приложения "логический хост" и может содержать разные контейнеры приложений, которые в общем и целом тесно связаны. Например, в поде может размещаться как контейнер с приложением на Node.js, так и другой контейнер, который использует данные от веб-сервера Node.js. Все контейнеры в поде имеют одни и те же IP-адрес и пространство порта, выполняющиеся в общем контексте на одном и том же узле.</p>
<p>Поды — неделимая единица в платформе Kubernetes. При создании развёртывания в Kubernetes, создаются поды с контейнерами внутри (в отличие от непосредственного создания контейнеров). Каждый Pod-объект связан с узлом, на котором он размещён, и остаётся там до окончания работы (согласно стратегии перезапуска) либо удаления. В случае неисправности узла такой же под будет распределён на другие доступные узлы в кластере.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Краткое содержание:</h3>
<ul>
<li>Поды</li>
<li>Узлы</li>
<li>Основные команды Kubectl</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>
Под — группа из одного или нескольких контейнеров приложений (например, Docker или rkt), включающая общие используемые хранилище (тома), IP-адрес и информацию по их запуску.
</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2 style="color: #3771e3;">Схема подов</h2>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_pods.svg"></p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2>Узлы</h2>
<p>Под всегда работает в <b>узле</b>. Узел — это рабочая машина в Kubernetes, которая в зависимости от кластера может быть либо виртуальной, либо физической. Каждый узел управляется мастером (ведущим узлом). Узел может содержать несколько подов, которые мастер Kubernetes автоматически размещает на разные узлы кластера. Ведущий узел при автоматическом планировании (распределении подов по узлам) учитывает доступные ресурсы на каждом узле.</p>
<p>В каждом узле Kubernetes как минимум работает:</p>
<ul>
<li>Kubelet — процесс, отвечающий за взаимодействие между мастером Kubernetes и узлом; он управляет подами и запущенными контейнерами на рабочей машине.</li>
<li>Среда выполнения контейнера (например, Docker или rkt), отвечающая за получение (загрузку) образа контейнера из реестра, распаковку контейнера и запуск приложения.</li>
</ul>
</div>
<div class="col-md-4">
<div class="content__box content__box_fill">
<p><i>Контейнеры должны запускаться вместе только в пределах одного пода, если они тесно связаны и должны совместно использовать ресурсы (например, диск)</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2 style="color: #3771e3;">Схема узла</h2>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_03_nodes.svg"></p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2>Диагностика с помощью kubectl</h2>
<p>В модуле <a href="/ru/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">2</a> вы использовали инструмент командной строки Kubectl. В этом (третьем) модуле вы продолжите его использовать, но для получения информации о развернутых приложениях и окружениях, в которых они работают. Наиболее распространенные операции выполняются с использованием следующих команд kubectl:</p>
<ul>
<li><b>kubectl get</b> — вывод списка ресурсов</li>
<li><b>kubectl describe</b> — вывод подробной информации о ресурсе</li>
<li><b>kubectl logs</b> — вывод логов контейнера в поде</li>
<li><b>kubectl exec</b> — выполнение команды в контейнере пода</li>
</ul>
<p>Перечисленные выше команды можно использовать, чтобы узнать, когда и где приложения были развернуты, их текущее состояние и конфигурацию.</p>
<p>Теперь, когда вы познакомились поближе с компонентами кластера и командами, давайте изучим приложение.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_fill">
<p><i>Узел — рабочая машина в Kubernetes, которая может быть как виртуальной, так и физической (в зависимости от используемого кластера). В одном узле могут быть запущены несколько подов</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/explore/explore-interactive/" role="button">Начать интерактивный урок <span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
---
title: Открытие доступа к приложению
weight: 40
---

View File

@ -0,0 +1,38 @@
---
title: Интерактивный урок - Открытие доступа к приложению
weight: 20
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<div class="katacoda">
<div class="katacoda__alert">
Для работы с терминалом, пожалуйста, используйте компьютер или планшет.
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/8" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/scale/scale-intro/" role="button">Перейти к пятому модулю<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,108 @@
---
title: Создание сервиса для открытия доступа к приложению
weight: 10
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Темы</h3>
<ul>
<li>Узнать о сервисах в Kubernetes</li>
<li>Разобраться с тем, как метки и объекты LabelSelector связаны с сервисом</li>
<li>Открыть доступ к приложению вне кластера Kubernetes через сервис</li>
</ul>
</div>
<div class="col-md-8">
<h3>Обзор сервисов Kubernetes</h3>
<p><a href="/docs/concepts/workloads/pods/pod-overview/">Под</a> — это расходный материал в Kubernetes. У подов есть <a href="/docs/concepts/workloads/pods/pod-lifecycle/">жизненный цикл</a>. Когда рабочий узел завершается, запущенные поды в узле также уничтожаются. После этого <a href="/docs/concepts/workloads/controllers/replicaset/">ReplicaSet</a> попытается автоматически вернуть кластер обратно в требуемое состояние, создавая новые поды, чтобы поддержать работоспособность приложения. Другой пример — бэкенд для обработки изображений с 3 репликами. Поскольку это взаимозаменяемые реплики, то они не влияют на фронтенд-часть, даже если под был уничтожен и пересоздан. Тем не менее, каждый под в кластере Kubernetes имеет уникальный IP-адрес, даже под на одном и том же узле, поэтому должен быть способ автоматической координации изменений между подами, чтобы приложения продолжали функционировать.</p>
<p>Сервис в Kubernetes — это абстрактный объект, который определяет логический набор подов и политику доступа к ним. Сервисы создают слабую связь между подами, которые от них зависят. Сервис создаётся в формате YAML <a href="/docs/concepts/configuration/overview/#general-configuration-tips">(рекомендуемый формат)</a> или JSON, как и все остальные объекты в Kubernetes. Как правило, набор подов для сервиса определяется <i>LabelSelector</i> (ниже описано, в каких случаях понадобиться сервис без указания <code>selector</code> в спецификации).</p>
<p>Хотя у каждого пода есть уникальный IP-адрес, эти IP-адреса не доступны за пределами кластера без использования сервиса. Сервисы позволяют приложениям принимать трафик. Сервисы могут по-разному открыты, в зависимости от указанного поля <code>type</code> в ServiceSpec:</p>
<ul>
<li><i>ClusterIP</i> (по умолчанию) - открывает доступ к сервису по внутреннему IP-адресу в кластере. Этот тип делает сервис доступным только внутри кластера.</li>
<li><i>NodePort</i> - открывает сервис на одном и том же порту каждого выбранного узла в кластере с помощью NAT. Делает сервис доступным вне кластера, используя <code>&lt;NodeIP&gt;:&lt;NodePort&gt;</code>. Является надмножеством ClusterIP.</li>
<li><i>LoadBalancer</i> - создает внешний балансировщик нагрузки в текущем облаке (если это поддерживается) и назначает фиксированный внешний IP-адрес для сервиса. Является надмножеством NodePort.</li>
<li><i>ExternalName</i> - открывает доступ к сервису с указанным именем (определённое в поле <code>externalName </code> в спецификации) и возвращает запись CNAME. Прокси не используется. Для этого типа требуется версия <code>kube-dns</code> 1.7 или выше.</li>
</ul>
<p>Более подробно узнать о различных типах сервисах можно в руководстве <a href="/docs/tutorials/services/source-ip/">Использование IP-порта источника</a>. Также изучите <a href="/docs/concepts/services-networking/connect-applications-service">Подключение приложений к сервисам</a>.</p>
<p>Кроме этого, обратите внимание, что в некоторых случаях в сервисах не определяется <code>selector</code> в спецификации. Сервис без <code>selector</code> не будет создавать соответствующий объект конечной точки (Endpoint). Таким образом, пользователь может вручную назначить сервис определённым конечным точкам. Использование <code>type: ExternalName</code> — это другой вариант использования, когда не нужно определять селектор в сервисе.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Краткое содержание</h3>
<ul>
<li>Открытие внешнего трафика для подов</li>
<li>Балансировка нагрузки трафика между подов</li>
<li>Использование метки</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>Сервис Kubernetes — это уровень абстракции, который определяет логический набор подов, перенаправляет внешний трафик, балансирует нагрузку и реализует паттерн Service Discovery для этих подов.</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h3>Сервисы и метки</h3>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_services.svg" width="150%" height="150%"></p>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p>Сервис направляет трафик через набор подов. Сервисы — это абстракция, позволяющая взаимозаменять поды Kubernetes без ущерба для приложения. Сервисы в Kubernetes находят и маршрутизируют трафик между зависимыми подами (это могут быть фронтенд- и бэкенд-компоненты приложения).</p>
<p>Сервисы для выбора набора подов используют <a href="/docs/concepts/overview/working-with-objects/labels">метки и селекторы</a>. Метки — пары ключ-значение, добавленные к объектам; например, они могут использоваться чтобы:</p>
<ul>
<li>Идентифицировать объекты для окружений разработки, тестирования и продакшена</li>
<li>Добавить теги версии</li>
<li>Классифицировать объекты через теги</li>
</ul>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_labels.svg"></p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>Метки могут добавляться во время создания объектов или после этого. Они также могут быть изменены в любое время. Теперь давайте откроем доступ к приложению путём создания сервиса и добавление меток.</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/expose/expose-interactive/" role="button">Начать интерактивный урок <span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
---
title: Масштабирование приложения
weight: 50
---

View File

@ -0,0 +1,40 @@
---
title: Интерактивный урок - Масштабирование приложения
weight: 20
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<div class="katacoda">
<div class="katacoda__alert">
Для работы с терминалом, пожалуйста, используйте компьютер или планшет
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/5" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/update/update-intro/" role="button">Перейти к шестому модулю <span class="btn__next"></span></a>
</div>
</div>
</main>
<a class="scrolltop" href="#top"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,120 @@
---
title: Запуск нескольких экземпляров приложения
weight: 10
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Темы</h3>
<ul>
<li>Масштабирование приложения с помощью kubectl.</li>
</ul>
</div>
<div class="col-md-8">
<h3>Масштабирование приложения</h3>
<p>В предыдущих модулях мы создали <a href="/docs/concepts/workloads/controllers/deployment/">развёртывание</a>, а затем открыли к нему публичный доступ через <a href="/docs/concepts/services-networking/service/">сервис</a>. Развёртывание создало только один под, в котором работает наше приложение. По мере увеличения трафика необходимо будет промасштабировать приложение, чтобы оно могло справиться с возросшим потоком пользователей.</p>
<p><b>Масштабирование</b> осуществляется за счёт изменения количества реплик в развёртывании.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Краткое содержание:</h3>
<ul>
<li>Масштабирование развёртывания</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>Количество экземпляров можно указать прямо при создании развёртывания, используя параметр --replicas команды kubectl run</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2 style="color: #3771e3;">Обзор масштабирования</h2>
</div>
</div>
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-8">
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item carousel-item active">
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling1.svg">
</div>
<div class="item carousel-item">
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling2.svg">
</div>
</div>
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="sr-only ">Предыдущая картинка</span>
</a>
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="sr-only">Следующая картинка</span>
</a>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>В случае масштабирования развёртывания создаются новые поды, которые распределяются по узлам с доступными ресурсами. Масштабирование увеличит количество подов в соответствии с указанным требуемым состоянием. Kubernetes также поддерживает <a href="/docs/user-guide/horizontal-pod-autoscaling/">автоматическое масштабирование</a> подов (не рассматривается в данном уроке). Кроме этого, возможно масштабирование до нуля, тогда завершается работа всех подов в развертывании.</p>
<p>При запуске нескольких экземпляров приложения нужно правильно распределить трафик между ними. У сервисов есть встроенный балансировщик нагрузки, который распределяет сетевой трафик всех подов в открытом извне развертывания. Сервисы постоянно отслеживают запущенные поды через их конечные точки, чтобы направлять трафик только на доступные поды.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_fill">
<p><i>Масштабирование выполняется с помощью изменения количества реплик в развертывании.</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>Имея несколько работающих экземпляров приложения можно выполнять плавающие обновления (rolling updates) без простоев. С ними мы познакомимся в следующем модуле. А пока перейдём к онлайн-терминалу и промасштабируем наше приложение.</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/scale/scale-interactive/" role="button">Начать интерактивный урок <span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
---
title: Обновление приложения
weight: 60
---

View File

@ -0,0 +1,37 @@
---
title: Интерактивный урок - Обновление приложения
weight: 20
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<div class="katacoda">
<div class="katacoda__alert">
Для работы с терминалом, пожалуйста, используйте компьютер или планшет
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/6" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/" role="button">Вернуться на главную страницу с основами по Kubernetes<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,135 @@
---
title: Выполнение плавающего обновления
weight: 10
---
<!DOCTYPE html>
<html lang="en">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Темы</h3>
<ul>
<li>Выполнение плавающего обновления с помощью kubectl.</li>
</ul>
</div>
<div class="col-md-8">
<h3>Обновление приложения</h3>
<p>Пользователи надеются, что приложения будут работать круглосуточно, а разработчики в свою очередь ожидают развёртывать новые версии приложений по нескольку раз в день. В Kubernetes это возможно благодаря механизму плавающих обновлений (rolling updates). <b>Плавающие обновления</b> позволяет обновить развёртывания без простоев, шаг за шагом заменяя старые поды на новые. Новые поды будут запущены на узлах, имеющих достаточно ресурсов.</p>
<p>В предыдущем модуле мы промасштабировали приложение до нескольких экземпляров. Это необходимо сделать, чтобы иметь возможность обновлять приложение, не влияя на его доступность. По умолчанию максимальное количество подов, которое может быть недоступно во время обновления, и максимальное количество новых подов, которое можно создать, равны 1. Эти две опции могут быть определены в абсолютном (числа) или относительном соотношении (проценты).
В Kubernetes обновления версионируются, поэтому любое обновление развёртывания можно откатить до предыдущей (стабильной) версии.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Краткое содержание:</h3>
<ul>
<li>Обновление приложения</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>Плавающие обновления последовательно заменяют экземпляры подов на новые, тем самым позволяя обновить развёртывания без простоев</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h2 style="color: #3771e3;">Обзор плавающих обновлений</h2>
</div>
</div>
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-8">
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
<li data-target="#myCarousel" data-slide-to="3"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item carousel-item active">
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates1.svg" >
</div>
<div class="item carousel-item">
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates2.svg">
</div>
<div class="item carousel-item">
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates3.svg">
</div>
<div class="item carousel-item">
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06_rollingupdates4.svg">
</div>
</div>
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="sr-only ">Предыдущая картинка</span>
</a>
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="sr-only">Следующая картинка</span>
</a>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>Подобно масштабированию приложения, если развёртывание доступно извне, при обновлении сервис будет балансировать трафик только между доступными подами. Доступный под — это экземпляр, который может быть запущен для пользователей приложения.</p>
<p>С помощью плавающих обновлений можно:</p>
<ul>
<li>Переводить приложение из одного окружения в другое (через обновления образа контейнера)</li>
<li>Откатываться к предыдущим версиям</li>
<li>Осуществлять непрерывную интеграцию и непрерывную доставку приложений без простоев</li>
</ul>
</div>
<div class="col-md-4">
<div class="content__box content__box_fill">
<p><i>Если развёртывание было открыто наружу, в процессе обновления сервис будет балансировать нагрузку трафика только на доступные поды.</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>В следующем интерактивном уроке мы обновим приложение до новой версии, а потом выполним откат, т.е. вернёмся к предыдущей версии</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/ru/docs/tutorials/kubernetes-basics/update/update-interactive/" role="button">Начать интерактивный урок <span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>