Skip to content

Kubernetes Operator

Коротко:

Kubernetes Operator — pattern (+ tooling) для packaging complex stateful applications как native K8s resources. Operator = Custom Resource Definition (CRD) + Controller, который reconciles desired state. Примеры: Postgres-operator (автоматически provisions PostgreSQL clusters + backups), Redis Operator, Kafka Strimzi, cert-manager (SSL automation). OperatorHub.io — registry of 200+ operators.

Ниже: подробности, пример, смежные термины, FAQ.

Подробности

  • CRD: defines your custom resource type (e.g. PostgresCluster)
  • Controller: watches CRD, performs reconciliation
  • Frameworks: Operator SDK (Go), Kopf (Python), kubebuilder
  • Capability levels: Basic Install → Seamless Upgrades → Full Lifecycle → Deep Insights → Auto-Pilot
  • Popular ones: cert-manager, Prometheus Operator, Strimzi (Kafka), CloudNativePG

Пример

# Custom resource (Postgres Operator)
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: my-pg
spec:
  instances: 3
  storage:
    size: 100Gi
  backup:
    barmanObjectStore:
      destinationPath: s3://backups/
      s3Credentials:
        accessKeyId:
          name: backup-key
          key: ACCESS_KEY

Смежные термины

Больше по теме

Часто задаваемые вопросы

Operator vs Helm chart?

Helm — install + upgrade templates. Operator — on-going management (backup, scale, heal). Operator — higher level of automation.

Когда писать свой operator?

Если вы deploy complex stateful app и нужна automation backups, failover, schema migrations. Simple stateless app — Deployment достаточно.

Тестирование operators?

Operator SDK имеет e2e test framework. kind/minikube local clusters для testing reconciliation.