Справочник ресурсов Kubernetes

Справочник: Все ресурсы K8s: сокращения, API-версии, namespaced или нет. kubectl api-resources — актуальный список для вашего кластера.

Workloads (Нагрузки)

KindShortapiVersionNSОписание
Podpov1Минимальная единица — один или несколько контейнеров
Deploymentdeployapps/v1Управление stateless-приложениями, rolling updates
ReplicaSetrsapps/v1Поддерживает N реплик подов (управляется Deployment)
StatefulSetstsapps/v1Stateful-приложения: стабильные имена, порядок, PVC
DaemonSetdsapps/v1По одному поду на каждой ноде (мониторинг, логи)
Jobjobbatch/v1Задача, выполняемая до завершения
CronJobcjbatch/v1Периодическая задача по расписанию
ReplicationControllerrcv1Устаревший предшественник ReplicaSet

Networking (Сеть)

KindShortapiVersionNSОписание
Servicesvcv1Стабильный endpoint для подов (ClusterIP/NodePort/LB)
Endpointsepv1Список IP-адресов подов за Service
Ingressingnetworking.k8s.io/v1HTTP/HTTPS маршрутизация по доменам
IngressClassnetworking.k8s.io/v1Класс Ingress-контроллера (nginx, traefik)
NetworkPolicynetpolnetworking.k8s.io/v1Правила сетевого доступа между подами

Configuration (Конфигурация)

KindShortapiVersionNSОписание
ConfigMapcmv1Конфигурация в key-value (не секретная)
Secretv1Секретные данные (base64, не шифрованные по умолчанию!)
ServiceAccountsav1Идентификация подов для RBAC

Storage (Хранение)

KindShortapiVersionNSОписание
PersistentVolumepvv1Физический том (создаётся админом или динамически)
PersistentVolumeClaimpvcv1Запрос на том (создаётся разработчиком)
StorageClassscstorage.k8s.io/v1Класс хранилища (SSD, HDD, provisioner)

Cluster (Кластер)

KindShortapiVersionNSОписание
Nodenov1Физическая/виртуальная машина кластера
Namespacensv1Логическое разделение ресурсов
Eventevv1Системные события (создание, ошибки)

RBAC (Права доступа)

KindShortapiVersionNSОписание
Rolerbac.authorization.k8s.io/v1Набор разрешений в namespace
ClusterRolerbac.authorization.k8s.io/v1Набор разрешений на уровне кластера
RoleBindingrbac.authorization.k8s.io/v1Привязка Role к пользователю/SA
ClusterRoleBindingrbac.authorization.k8s.io/v1Привязка ClusterRole к пользователю/SA

Полезные команды

# Полный список ресурсов вашего кластера
kubectl api-resources
 
# Только namespaced ресурсы
kubectl api-resources --namespaced=true
 
# Ресурсы конкретной API-группы
kubectl api-resources --api-group=apps
 
# Версии API
kubectl api-versions
 
# Документация по ресурсу
kubectl explain pod.spec.containers
kubectl explain deployment.spec.strategy
kubectl explain service.spec --recursive

apiVersion — когда какой?

apiVersionРесурсы
v1Pod, Service, ConfigMap, Secret, PV, PVC, Namespace, Node, SA
apps/v1Deployment, StatefulSet, DaemonSet, ReplicaSet
batch/v1Job, CronJob
networking.k8s.io/v1Ingress, IngressClass, NetworkPolicy
storage.k8s.io/v1StorageClass
rbac.authorization.k8s.io/v1Role, ClusterRole, RoleBinding, ClusterRoleBinding
autoscaling/v2HorizontalPodAutoscaler
policy/v1PodDisruptionBudget