Обзор сети Kubernetes
Узлы
Часто Кубернетес называют кластером. На высоком уровне кластеры — это группа компьютеров, которые работают вместе и совместно используют ресурсы для повышения производительности и доступности. Если какие-либо компьютеры в кластере выйдут из строя, работающие в кластере службы могут продолжать работу на оставшихся исправных компьютерах.
В Microsoft Azure эти компьютеры называются виртуальными машинами. В Kubernetes эти виртуальные машины называются узлами.
Узлы нуждаются в сетевом подключении, чтобы они могли взаимодействовать друг с другом и эффективно маршрутизировать сетевой трафик. Узлы также должны взаимодействовать с уровня управления Kubernetes, который предоставляет основные службы Kubernetes и оркестрацию рабочих нагрузок приложений, чтобы они могли запускать ресурсы рабочей нагрузки приложения.
Стручки
В Kubernetes ресурсы рабочей нагрузки приложения включают поды, развертывания и наборы. Модули (Pods) — это наименьшие единицы развертывания в кластере Kubernetes. Они распределяются по узлам таким образом, что обеспечивает оптимальное использование доступных ресурсов процессора и памяти на узлах. Модули Pod обычно представляют один экземпляр или подкомпонент приложения. Модуль pod может запускать компонент корзины покупок, который управляет товарами в корзине клиента, или компонент доставки, отвечающий за обработку завершенных заказов.
Можно запустить несколько копий или репликиодного модуля pod. Реплики распределяют множество подов по узлам для обеспечения высокой доступности. С несколькими репликами подов наше приложение может продолжать работать, если компонент, работающий в поде, выходит из строя.
С помощью функций масштабирования в Kubernetes можно добавлять или удалять поды в ответ на уровень нагрузки в кластере. Возможности самовосстанавливания в Kubernetes могут заменить любой pod, который падает, а встроенная поддержка поэтапного обновления автоматизирует развертывание новых версий приложения без простоя.
Модули pod назначаются новому IP-адресу во время первоначального развертывания. Этот IP-адрес используется для всех сетевых подключений с pod. В некоторых сценариях для pod назначается новый IP-адрес. При высокой нагрузке на кластер и масштабировании развертываются новые поды. При обновлении приложения новые поды развертываются для замены старых подов. Если модуль pod завершается ошибкой, новый модуль pod автоматически заменяет его. Все эти сценарии приводят к новым IP-адресам pod'ов.
Если IP-адреса pod часто изменяются, как Kubernetes знает, куда отправлять сетевой трафик для доступа к нашему приложению? Ответ — службы.
Услуги
Kubernetes сервис расположен перед группой подов и предоставляет статический IP-адрес. Когда трафик поступает на службу, служба распределяет его циклическим образом в набор серверных контейнеров. Служба отслеживает изменения в IP-адресах модулей pod, чтобы обеспечить отправку сетевого трафика в правильные модули pod.