Пропустить навигацию

Второе издание книги Начало работы

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

Поверхностные сведения о контейнерах

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

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

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

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

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

Кластер

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

Общие сведения о Kubernetes

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

Для того, чтобы главный узел мог взаимодействовать с рабочими узлами, а пользователь — с главным узлом, в состав сети 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, следит за состоянием машин и несет общую ответственность за управление ресурсами.

Сведения о работе kube-scheduler

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

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

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

Узнайте, как работает управление конфигурацией

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

Следите за тем, как работает управление секретами

В конце, укажите, кто может видеть и взаимодействовать с частями кластера, а также с какими именно частями и как они могут взаимодействовать, используя управление доступом на основе ролей (RBAC).

Узнайте, как работает управление доступом на основе ролей

Узнайте больше технических подробностей о Kubernetes.

Документация по Kubernetes

Выполнение полностью управляемого решения Kubernetes

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

Быстрый запуск Kubernetes: запуск и эксплуатация через 50 дней

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

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