Trace Id is missing
Пропустить и перейти к основному содержимому

Kubernetes: Начало работы

Узнайте, как начать развертывание контейнерных приложений и управление ими.

Начальное руководство по контейнерам

Прежде чем начать работу с Kubernetes, важно понять, как работает контейнеризация.

Точно так же, как судоходные компании используют физические контейнеры для изоляции различных грузов с целью транспортировки на судах, поездах, грузовиках и самолетах, технологии разработки программного обеспечения все чаще используют концепцию, называемую контейнеризацией.

Единый пакет программного обеспечения, который называется контейнером, объединяет код приложения с соответствующими файлами конфигурации, библиотеками и зависимостями, необходимыми для запуска приложения. Это позволяет разработчикам и ИТ-специалистам создавать и развертывать приложения быстрее и безопаснее.

Контейнеризация обеспечивает такие преимущества как изоляция, портативность, гибкость, масштабируемость и контроль на протяжении всего жизненного цикла приложения. Отдельный контейнер, абстрагированный от основной операционной системы, становится более портативным, и этот контейнер можно единообразно и согласованно запустить в любой инфраструктуре на любой платформе или в облаке.

Компоненты и концепции Kubernetes

Кластер

На самом высоком уровне Kubernetes организован в виде кластера виртуальных или локальных машин. Эти машины (узлы) совместно используют ресурсы вычислений, сети и хранилища. Каждый кластер имеет один главный узел, соединенный с одним или несколькими рабочими узлами. Рабочие узлы отвечают за запуск групп контейнерных приложений и рабочих нагрузок, известных как объекты pod, а главный узел управляет тем, на каких рабочих узлах запускаются эти узлы.

Схема концепции кластера

Уровень управления

Для того, чтобы главный узел мог взаимодействовать с рабочими узлами, а пользователь — с главным узлом, в состав сети Kubernetes входит ряд объектов, которые в совокупности образуют уровень управления.

Разработчики и операторы взаимодействуют с кластером главным образом через главный узел, используя kubectl — интерфейс командной строки, который устанавливается на их локальную ОС. Команды, посылаемые кластеру через kubectl, принимаются сервером kube-apiserver, API Kubernetes, который расположен на главном узле. Затем kube-apiserver передает запросы kube-controller-manager (управляющему контроллеру) в главном узле, который, в свою очередь, отвечает за обработку операций рабочего узла. Команды от главного узла принимаются kubelet на рабочих узлах.

Схема концепции уровня управления

Развертывание приложений и рабочих нагрузок

Следующим шагом на пути к началу работы с Kubernetes является развертывание приложений и рабочих нагрузок. Главный узел поддерживает текущее состояние кластера Kubernetes и конфигурацию в etcd — базе данных хранения ключевых значений, в любое время. Для запуска pod с контейнерными приложениями и рабочими нагрузками, вы должны описать новое нужное состояние кластера в виде YAML-файла. kube-controller-manager берет YAML-файл и поручает kube-scheduler определить, какие рабочие узлы приложения или рабочей нагрузки следует запускать, исходя из заранее определенных ограничений. Работая совместно с kubelet каждого рабочего узла, kube-scheduler запускает объекты pod, следит за состоянием компьютеров и осуществляет общее управление ресурсами.

В развертывании Kubernetes, желаемое состояние, которое вы описываете, становится текущим состоянием в etcd, однако предыдущее состояние не теряется. Kubernetes поддерживает откаты, откатные обновления и приостановку развертывания. Кроме того, при развертывании используется ReplicaSet в фоновом режиме для обеспечения работы указанного количества одинаково настроенных pod. Если один или несколько pod выйдут из строя, ReplicaSet заменит их. Таким образом, Kubernetes выполняет самовосстановление.

Схема концепции стратегии развертывания

Структурирование и обеспечение безопасности среды Kubernetes

Когда ваше приложение или рабочая нагрузка развернуты, последним шагом к началу работы с Kubernetes является их организация и определение пользователей или объектов, которые будут иметь к ним доступ. Создавая пространство имен — метод группировки внутри Kubernetes, вы позволяете службам, pod, контроллерам и томам легко работать вместе, изолируя их от других частей кластера. Концепцию пространств имен Kubernetes можно использовать для применения согласованных конфигураций к ресурсам.

Кроме того, каждый рабочий узел содержит kube-proxy, который определяет, как различные аспекты кластера могут быть доступны извне. Храните конфиденциальную внутреннюю информацию, такую как маркеры, сертификаты и пароли, в секрете (другой объект Kubernetes), который шифруется до запуска.

Наконец, укажите, какие пользователи с какими компонентами кластера могут взаимодействовать и как они могут это делать. Для этого используется управление доступом на основе ролей (RBAС).

Схема структурирования и обеспечения безопасности среды Kubernetes
Ознакомьтесь с более глубокими техническими сведениями о Kubernetes   
Документация по Kubernetes

Реализация полностью управляемого решения Kubernetes

Управление размещенной средой Kubernetes с помощью службы Azure Kubernetes (AKS). Развертывание и обслуживание контейнерных приложений без опыта управления контейнерами. Подготовка, обновление и масштабирование ресурсов по требованию без отключения приложений от сети.

Быстрый запуск Kubernetes: запуск и использование через 50 дней

Используйте это пошаговое руководство, чтобы начать работу с Kubernetes и получить практический опыт работы с компонентами, функциями и решениями Kubernetes.

Следуйте схеме обучения в Kubernetes

Другие способы изучения Kubernetes

Сведения об использовании AKS

Подготовка приложения для AKS

Kubernetes уже к вашим услугам — бесплатно в Azure