Какие Kubernetes-операторы знаешь и использовал на практике?

«Какие Kubernetes-операторы знаешь и использовал на практике?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Работал с несколькими операторами, которые решают конкретные задачи управления stateful-приложениями и платформенными сервисами:

1. Prometheus Operator — наиболее часто используемый

# Пример мониторинга кастомного приложения
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: myapp-monitor
spec:
  selector:
    matchLabels:
      app: myapp
  endpoints:
  - port: web
    interval: 30s
    path: /metrics

Оператор автоматически создает Prometheus configuration, ServiceMonitors, PodMonitors и Alertmanager конфигурации.

2. Cert-Manager — для автоматического управления TLS-сертификатами

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: example-com
spec:
  secretName: example-com-tls
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  commonName: example.com
  dnsNames:
  - example.com
  - www.example.com

3. Elasticsearch Operator (ECK) — развертывание и управление Elastic Stack

apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: logging-cluster
spec:
  version: 8.6.0
  nodeSets:
  - name: default
    count: 3
    config:
      node.store.allow_mmap: false

4. Postgres Operator — использовал Crunchy Data Operator

apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
  name: hippo
spec:
  image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.5-0
  postgresVersion: 14
  instances:
  - name: instance1
    replicas: 2
    dataVolumeClaimSpec:
      accessModes:
      - "ReadWriteOnce"
      resources:
        requests:
          storage: 1Gi
  backups:
    pgbackrest:
      repos:
      - name: repo1
        volume:
          volumeClaimSpec:
            accessModes:
            - "ReadWriteOnce"
            resources:
              requests:
                storage: 1Gi

5. ArgoCD Operator — для управления самим ArgoCD в GitOps-стиле

6. Istio Operator — установка и управление service mesh

7. Custom Operators — писал простые операторы на Kubebuilder для управления внутренними сервисами компании. Например, оператор для автоматического создания test environments на каждый Pull Request.

Почему операторы важны: Они инкапсулируют операционные знания (как безопасно обновить, как делать backup, как масштабировать) и позволяют управлять сложными приложениями декларативно, как нативными Kubernetes-ресурсами.