Логотип Зефирнет

Что вы должны знать о Kubernetes

Дата:

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

Так что это за штука? И почему вы должны заботиться о его использовании? Давайте исследовать.


Image Source: https://www.pexels.com/photo/codes-on-tilt-shift-lens-2004161/

Система с открытым исходным кодом

Kubernetes — это система с открытым исходным кодом, которая автоматизирует процесс создания, развертывания и управления приложениями, особенно микросервисами. Если вы когда-нибудь что-то делали с Docker, то знаете, что нужно настроить две основные вещи: сами контейнеры и способ их развертывания на разных машинах. Управлять всем этим вручную может быть утомительно. Kubernetes позаботится об этом за вас, поэтому вы можете сосредоточиться на простом развертывании своего приложения.

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

Ролевое управление доступом

Kubernetes имеет встроенный механизм управления доступом на основе ролей (RBAC), который вы можете использовать для контроля того, кто и к чему имеет доступ. Безопасность — это определенно то, о чем вам следует беспокоиться, когда дело доходит до развертывания вашего приложения в приложении с открытым исходным кодом. Kubernetes учитывает это и гарантирует, что только авторизованные запросы через управление доступом на основе ролей (RBAC), может выполняться на сервере API. Это означает, что вы можете предоставлять только необходимые разрешения тем людям, которым они нужны.

Механизм RBAC также имеет иерархическую структуру, поэтому вы можете определять правила доступа как на уровне сервера API, так и для объектов Kubernetes. Вы можете контролировать, кто может создавать и обновлять объекты API, такие как модули, службы, развертывания и реплики. Вы можете определить доступ к веб-перехватчикам для интеграции с системами CI/CD. Вы также можете определить доступ к пространствам имен Kubernetes и управлять привилегиями пользователей на уровне пространства имен.

Очень масштабируемый

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

С другой стороны, уменьшение масштаба также важно, особенно если ваше приложение начинает работать медленно из-за возросшей нагрузки. С Kubernetes вы можете легко масштабировать модули, не дожидаясь их корректной остановки, что может занять минуты или часы в зависимости от того, как закодировано ваше приложение. Вы можете сделать это, просто изменив количество реплик в дескрипторе пода.

Декларативная конфигурация

Kubernetes был разработан как декларативный, а не императивный. Это означает, что вы определяете, что вы хотите иметь, вместо того, чтобы описывать, как чего-то нужно достичь. В долгосрочной перспективе это намного эффективнее, поскольку не требует дополнительного кода или сценариев, выполняемых в определенное время в процессе развертывания. Это также упрощает визуализацию всего процесса развертывания, поскольку все можно описать в одном месте — в одном файле/файлах.

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

Встроенная оркестровка

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

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

В кластере Kubernetes у вас есть основные компоненты и компоненты-агенты. Мастер содержит основной сервер API, планировщик, компонент диспетчера контроллеров, в то время как агент запускает службу kubelet вместе с другими вспомогательными демонами/контроллерами для выполнения таких задач, как ведение журнала или управление контейнерами. И мастер, и агенты легковесны, поэтому вы можете запускать их несколько экземпляров на одном компьютере.

Управление и гибкость

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

Kubernetes также использует существующие компоненты, такие как Docker, для запуска ваших приложений, поэтому он не зависит от платформы. Вы можете выбрать правильную среду хостинга для своего приложения (например, AWS, Google Cloud, Azure), а затем использовать Kubernetes для его развертывания, не беспокоясь о несовместимости хостинг-провайдера.

То, как вы управляете контейнерами, также является большим преимуществом использования Kubernetes. — вам не нужно запускать какие-либо другие процессы на серверах, где развернуты ваши контейнеры. Вы можете развернуть несколько контейнеров на сервер, и все они будут управляться Kubernetes без каких-либо дополнительных ресурсов или накладных расходов.

Kubernetes также является гибким, и его можно настроить несколькими способами. Вы можете либо использовать официальный файл конфигурации (kubernetes/examples/config-rb.yml), либо определить свой собственный дескриптор, который более эффективно описывает модули, контейнеры и другие компоненты.


Image Source: https://www.pexels.com/photo/scientists-checking-data-3912469/

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

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

Источник: Plato Data Intelligence: PlatoData.io

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?