Lori Lorusso is head of community, Percona.
Kubernetes saw its first code commit in June 2014. After the hype around Hadoop, some speculated that Kubernetes would fade away as well. Instead, it has continued to grow thanks to features that made it more accessible and useful across IT domains beyond just app deployment.
StatefulSets is one such feature. By providing pods with stable network identities and persistent storage attachment, StatefulSets allowed mature solutions for managing clustered databases on traditional infrastructure, like Patroni for Postgres, to be used in Kubernetes pods. Kubernetes could now support databases reliably as well as stateless containers.
Some developers explored alternative approaches. They argued that having the Kubernetes operator manage the addressing, storage and role of each pod in the cluster makes the best use of Kubernetes and aligns more with cloud-native principles. Additionally, using database-native tools inside pods, such as Patroni or Stolon, allowed clusters to extend beyond Kubernetes’s boundaries, making multi-cluster deployments possible across data centres.
The best answer would be to extend the capabilities of StatefulSets to handle pod roles in a standard way. This will be discussed at KubeCon Europe.