Разбираемся в API Kubernetes

В Kubernetes все — от модулей до сервисов — является объектом API, и чтобы эффективно управлять кластером, важно понимать, как взаимодействовать с этими объектами.
API Kubernetes

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

Группы и версии API

Kubernetes не кладет все яйца в одну корзину. Он классифицирует API на разные группы в зависимости от их назначения, и это разделение — ваша карта. Можно представить библиотеку, где группы — это её разделы, и каждый содержит книги (в данном случае, API) по определенной теме.


Основная группа — это ваш доступ к фундаментальным ресурсам: пространствам имен и модулям. Именованные группы отвечают за конкретные штуки, такие как сети или хранилище.


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

Доступ к API Kubernetes

Основной инструмент для контроля кластера — kubectl, интерфейс командной строки для запуска команд в Kubernetes. Это ваш руль для управления кластером.


Чтобы получить больше контроля, можно выполнять прямые вызовы REST к серверу API. Это похоже на переключение с режима автопилота на ручное управление.


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


А для более простого маршрута есть kubectl proxy. При этом между вашим компьютером и API Kubernetes создается прокси-сервер, упрощающий взаимодействие с кластером. Это похоже на GPS, который направляет вас через поток запросов API.

Ресурсы и команды Kubernetes

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


Чтобы узнать, какие ресурсы и глаголы доступны, используйте такие команды, как kubectl api-resources и kubectl api-versions.

Kubernetes API Deprecation Policy

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


Политика проста: когда API переходит из бета-версии в стабильную версию, старые бета-версии устаревают и в конечном итоге удаляются через определенный период. Этот период дает вам достаточно времени для переноса ресурсов на более новую стабильную версию. Это похоже на знак, что дорога закрыта, и у вас есть время спланировать альтернативный маршрут.


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


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

Где и как учиться Kubernetes
Предлагаем курсы от Слёрм — по Kubernetes, DevOps, SRE, Безопасности, Работе с данными, IaC и другим скиллам. Граждане Казахстана могут купить их в рассрочку от Kaspi либо по региональной скидке от 10%.
Kubernetes от А до Я