Что такое Kubernetes
Kubernetes, или K8s, — система для управления контейнерными приложениями на нескольких машинах. Она даёт базовые механизмы развёртывания, сопровождения, масштабирования и восстановления приложений, упакованных в контейнеры.
Проект опирается на опыт Google с Borg и развивается в Cloud Native Computing Foundation. Поэтому Kubernetes — не просто программа, а центральная часть облачной экосистемы: вокруг него выросли операторы, ingress-контроллеры, Helm, сервисные сетки и платформы для кластеров.
Что внутри и как это используют
Минимальный объект Deployment
Пример показывает характер проекта и его обычную форму использования.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: nginx:stable
Внутри репозитория — код на Go, API-сервер, планировщик, контроллеры, kubelet, тесты, промежуточные модули и инфраструктура выпуска. При этом `k8s.io/kubernetes` не предназначен как обычная библиотека для подключения в приложения; для этого есть отдельные опубликованные компоненты.
Сильные стороны и ограничения
Сильная сторона Kubernetes — единая модель для сложных распределённых приложений. Ограничение — высокая операционная сложность: кластер требует знаний сети, хранения, безопасности, наблюдения, обновлений и стоимости ресурсов.