// the find
apache/flink-kubernetes-operator
Apache Flink Kubernetes Operator
The official Kubernetes operator for Apache Flink, letting you manage Flink Application and Session deployments as native CRDs via kubectl and Helm. It handles the full lifecycle: deploy, upgrade, savepoint/checkpoint management, and autoscaling. This is the production-grade path for running Flink on Kubernetes — the alternative is hand-rolling Flink's native k8s integration, which gets painful fast.
The built-in autoscaler is the standout feature — it uses actual operator metrics to adjust parallelism per-operator in a pipeline, not just CPU/memory like HPA. Blue-green deployment support for stateless jobs is genuinely useful for zero-downtime upgrades. The savepoint/checkpoint lifecycle is well-thought-out: upgrades trigger savepoints automatically, and you can restore from a specific savepoint via the CRD spec. The standalone autoscaler module means you can run the scaling logic without the full operator, useful if you're stuck in a non-k8s environment.
The API is still `v1beta1` despite being called 'Production Ready' — breaking changes are possible and upgrades between operator versions require reading the compatibility matrix carefully. The autoscaler's lag-based scaling works well for simple pipelines but struggles with backpressure from external sinks; you can tune it but the defaults will disappoint you at scale. Multi-tenant setups are awkward: the operator watches all namespaces or a configured set, but RBAC isolation between teams sharing a cluster needs manual work. Documentation for edge cases (custom HA storage backends, non-standard Flink configs that conflict with operator assumptions) is thin and you end up reading source code.