Описание Kubernetes
Современные приложения все чаще создаются с применением контейнеров. Это микрослужбы, укомплектованные зависимостями и конфигурациями. Kubernetes (произносится "ку-бер-не-тис") — это программное обеспечение с открытым кодом для развертывания контейнеров и управления ими в большом масштабе, а также греческое слово, означающее "кормчий", "рулевой". Kubernetes (иногда также используется название k8s или k-eights) сокращает время сборки, поставки и масштабирования контейнерных приложений.
Как работает Kubernetes
Поскольку приложения развиваются, охватывая контейнеры, развернутые на разных серверах, работать с ними становится все сложнее. Для решения этой проблемы Kubernetes предоставляет API с открытым исходным кодом, который контролирует, как и где такие контейнеры будут выполняться.
Kubernetes позволяет координировать кластеры виртуальных машин и планировать запуск контейнеров на таких виртуальных машинах в зависимости от доступных вычислительных ресурсов и потребностей в них каждого контейнера. Контейнеры объединяются в группы, называемые pod (основная единица операций в Kubernetes), которые масштабируются до нужного состояния.
Kubernetes также автоматически управляет обнаружением служб, добавляет балансировку нагрузки, отслеживает выделение ресурсов и масштабирует их в зависимости от использования вычислений. Кроме того, платформа проверяет работоспособность отдельных ресурсов и обеспечивает самостоятельное восстановление приложений за счет автоматического перезапуска или репликации контейнеров.
Зачем использовать Kubernetes?
Поддержание работы контейнерных приложений — непростая задача, потому что в них часто задействовано множество контейнеров, развернутых на разных компьютерах. Платформа Kubernetes позволяет планировать запуск и развертывание таких контейнеров, а также масштабировать их до требуемого состояния и управлять их жизненным циклом. Она обеспечивает переносимость, масштабируемость и расширяемость при реализации приложений на основе контейнеров.
Переносимость рабочих нагрузок
Так как контейнерные приложения отделены от инфраструктуры, они становятся переносимыми при запуске в Kubernetes. Их можно перемещать с локальных компьютеров в локальные, гибридные или многооблачные рабочие среды, сохраняя согласованность между этими средами.
Простое масштабирование контейнеров
Определяйте комплексные контейнерные приложения и развертывайте их с помощью Kubernetes в кластере серверов и даже в нескольких кластерах. При масштабировании приложений в Kubernetes до нужного состояния мониторинг и поддержание работоспособности контейнеров выполняются автоматически.
Создание приложений с дополнительными возможностями расширения
Многочисленное сообщество, состоящее из разработчиков и компаний, работающих с открытым кодом, активно создает расширения и подключаемые модули, которые позволяют добавлять в Kubernetes такие возможности, как обеспечение безопасности, мониторинг и управление. Кроме того, согласно требованиям программы Certified Kubernetes Conformance Program каждая версия Kubernetes должна поддерживать API-интерфейсы, гарантирующие простое использование этих предложений сообщества.
Начать работу с Kubernetes
Узнайте, как начать развертывание контейнерных приложений и управление ими.
Следуйте схеме обучения
Изучите практические навыки, которые помогут приступить к работе с Kubernetes.
Разработка с помощью комплексной платформы Kubernetes
Платформа Kubernetes сама обеспечивает переносимость, масштабируемость и расширяемость. Но добавив комплексные возможности разработки, эксплуатации и управления безопасностью, можно ускорить развертывание обновлений без ущерба для безопасности и надежности, а также экономить время на управлении инфраструктурой. При внедрении Kubernetes также рассмотрите следующие возможности:
-
Автоматизация инфраструктуры или бессерверная служба Kubernetes для решения таких рутинных задач, как подготовка к работе и установка исправлений и обновлений.
-
Средства для разработки, а также непрерывной интеграции и развертывания (CI/CD) контейнерных приложений.
-
Службы для контроля безопасности, управления, идентификации и доступа.
Использование Kubernetes с методиками DevOps
По мере развития приложения Kubernetes — с добавлением контейнеров, сред и команд разработчиков, — обычно увеличивается и частота выпусков, а также сложность разработки и использования. Используя DevOps в средах Kubernetes, вы сможете быстро изменить масштаб и усилить защиту.
Ускорение доставки кода за счет CI/CD
Контейнеры служат единым форматом упаковки приложений и упрощают совместную работу для команд разработчиков и операторов, а CI/CD может ускорить переход от кода к контейнеру и в кластер Kubernetes до считанных минут за счет автоматизации этих задач.
Эффективное управление ресурсами за счет инфраструктуры в виде кода
Инфраструктура в виде кода обеспечивает согласованность и улучшает видимость вычислительных ресурсов для всех команд, а значит, уменьшает вероятность человеческой ошибки. Эта практика хорошо сочетается с декларативным характером приложений Kubernetes на платформе Helm. Подобная комбинация позволяет определять приложения, ресурсы и конфигурации надежным, контролируемым и повторяемым образом.
Ускорение цикла обратной связи за счет постоянного мониторинга
Чтобы сократить промежуток времени между возникновением и устранением ошибок, необходимо видеть полную картину своих ресурсов, кластера, API Kubernetes, контейнеров и кода, начиная с мониторинга работоспособности контейнера и заканчивая централизованным ведением журналов. Это позволяет избегать дефицита ресурсов, отслеживать злонамеренные запросы и поддерживать работоспособность приложений Kubernetes.
Уравновешивание скорости и защиты с помощью DevOps
Добавьте в рабочий процесс DevOps возможности отслеживания в реальном времени без ущерба для скорости работы. Применяйте проверки соответствия и перенастройки автоматически и, таким образом, защищайте свою сборку и конвейер выпуска, а значит, и свое приложение Kubernetes.
Пример рабочего процесса DevOps на базе Kubernetes
- Мгновенная итерация, тестирование и отладка различных частей приложения в одном и том же кластере Kubernetes.
- Внедрение кода в репозиторий GitHub для непрерывной интеграции и его проверка. Запуск автоматической сборки и тестирования в рамках непрерывной поставки.
- Проверка источника и целостности образов контейнеров. До прохождения сканирования образы находятся на карантине.
- Оснащение кластеров Kubernetes такими средствами, как Terraform. Terraform устанавливает чарты Helm, которые определяют желаемое состояние ресурсов и конфигураций приложения.
- Применение политик для регулирования развертывания к кластеру Kubernetes.
- Конвейер выпуска автоматически выполнит предустановленную стратегию развертывания для каждого кода.
- Добавление проверки и автоматического исправления политик в конвейер CI/CD. Например, создавать объекты pod в вашей среде Kubernetes может только конвейер выпуска.
- Включение телеметрии приложения, мониторинга работоспособности контейнера и анализа журналов в режиме реального времени.
- Устранение проблем с аналитическими сведениями и планирование следующего спринта.
Используйте возможности Azure Kubernetes
Автоматизируйте подготовку, обновление, мониторинг и масштабирование, используя полностью управляемую службу Microsoft Azure Kubernetes (AKS). Бессерверная служба Kubernetes — это простой переход от разработки к производству, а также защита и управление корпоративного уровня.
Черпайте вдохновение и инновации в сообществе Kubernetes
Платформа Kubernetes появилась на свет и успешно развивается благодаря тому, что тысячи людей и сотни организаций продолжают передавать свои знания и наработки кода, а также предоставлять постоянную поддержку тем, кто использует платформу. Вдохновенная работа создателей проекта — надежная основа для успешной разработки ваших собственных приложений.
35,000
Соавторы
180,000
Фиксации
Самый популярный проект
на GitHub
Вклад Майкрософт в Kubernetes
Искусство открытого кода на предприятиях
Чтобы упростить внедрение платформы Kubernetes для организаций и ее использование для разработчиков, корпорация Майкрософт всего за три года втрое увеличила число сотрудников, участвующих в проекте с открытым исходным кодом. В настоящее время Майкрософт является третьим по величине корпоративным спонсором и стремится сделать платформу Kubernetes более удобной и доступной для предприятий, делясь с сообществом Kubernetes новыми знаниями и лучшими методиками, полученными в результате работы с различными клиентами.
Часто задаваемые вопросы о Kubernetes
-
Присоединяйтесь к этому курируемому путешествию , чтобы начать обучение Kubernetes.
-
Kubernetes пригодится в различных ситуациях, от переноса приложений в облако до упрощения сложностей в машинном обучении и ИИ.
Основные примеры таких ситуаций:
Перемещение существующих приложений в облако
Упрощение развертывания приложений с микрослужбами и управления ими
-
Ознакомьтесь с лучшими методиками и архитектурными шаблонами, созданными тысячами технических специалистов и партнеров, использующих Kubernetes.
-
Развертывание Kubernetes позволяет описать желаемое состояние развертывания приложения. Планировщик Kubernetes следит за тем, чтобы фактическое состояние соответствовало желаемому, и сохраняет это состояние даже при отказе одного или нескольких объектов pod. Кроме того, развертывания Kubernetes позволяют обновлять приложения без простоев.
-
Обычно для развертывания в Kubernetes с применением DevOps требуется репозиторий для управления версиями, такой как Git. Репозиторий служит стартовой точкой конвейера CI/CD. В зависимости от выбранного вами подхода изменения в репозитории запускают интеграцию, сборку, доставку и развертывание.
-
Kubernetes и Docker работают сообща.
Docker предоставляет открытый стандарт для упаковки и распространения контейнерных приложений. Docker позволяет собирать и выполнять контейнеры, а также хранить образы контейнеров и предоставлять к ним доступ.
Kubernetes управляет распределенными контейнерными приложениями, созданными в Docker, и предоставляет инфраструктуру, необходимую для развертывания и выполнения таких приложений в кластере машин.
Ресурсы
Подробнее о Kubernetes
Знакомство с AKS
Общие сведения о Службе Azure Kubernetes (AKS)
Смотрите видеоролики AKS и вебинары Azure по запросу , чтобы ознакомиться с демонстрациями, основными функциями и техническими сеансами.
Шаблоны быстрого запуска Azure для Kubernetes
Присоединяйтесь к другим пользователям AKS на GitHub, на KubeConили на ближайшей к вам встрече Kubernetes Meetup .