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 с помощью службы Azure Kubernetes (AKS). Развертывание и обслуживание контейнерных приложений без опыта управления контейнерами. Подготовка, обновление и масштабирование ресурсов по требованию без отключения приложений от сети.
Быстрый запуск Kubernetes: запуск и использование через 50 дней
Используйте это пошаговое руководство, чтобы начать работу с Kubernetes и получить практический опыт работы с компонентами, функциями и решениями Kubernetes.
Следуйте схеме обучения в Kubernetes