Ответ
В Kubernetes есть несколько ключевых абстракций для управления доступом:
-
Namespaces — логическое разделение кластера на изолированные среды (dev, prod и т.д.).
Пример:kubectl create namespace test -
RBAC (Role-Based Access Control):
- Roles/ClusterRoles — определяют набор разрешений (например, доступ к Pods).
- RoleBindings/ClusterRoleBindings — связывают роли с пользователями/группами.
Пример Role:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
-
ServiceAccounts — аккаунты для процессов внутри кластера (например, для Pod).
Пример:kubectl create serviceaccount my-app -
NetworkPolicies — ограничивают сетевой трафик между Pods.
-
ResourceQuotas — ограничивают потребление ресурсов (CPU, RAM) в Namespace.
Эти механизмы позволяют гибко управлять доступом к API, ресурсам и сети.