Creating a PostgreSQL Cluster Using Helm
blog.kubernetes.io
blog.kubernetes.io
In this Helm chart, your master is a single Pod (which is ephemeral and which you should usually not be creating directly) that stores data in an emptyDir (which is coupled to the lifecycle of the Pod).
https://github.com/gravitational/stolon
this is heavily modified version of
https://github.com/sorintlab/stolon
K8s-native deployment of PostgreSQL
But can you please tell what's the general difference between the original and the fork? I see that both are active, but nothing in README tells what one has over another.
* S3 backup restore feature
* RPC to communicate with controller over API
* Refactored client and updated the CLI
* Updated and slimmed down base imagesBut you're right it is alpha, and we would not recommend running production workloads on them.
Disclosure: I work at Google on Kubernetes
https://github.com/emacs-helm/helm
edit: search from incognito window (without my profile's emacs bias): http://imgur.com/QXkBlLq
*Note: looks like in this example they are not setting up a persistent volume.
Well tested databases have evolved to have to survive arbitrary power cuts- even in the middle of a transaction; and so have slowly become reliable enough to trust to start from on-disk state only.
Good f-in' luck bringing your db flavor of the month back online from disk state alone. Hope you didn't have any transactions open to your DB before it got rescheduled to a different node in your cluster.
There are still some bugs with this, particularly on AWS. Getting better with every release, though.
I did say "played with" because we haven't beat on it to know if one could run Jira, Gitlab, Prometheus, that kind of workload. I wouldn't at this point try Postgres but maybe it'd work.
That may be true, but getting a k8s cluster unwedged from EBS volume state mismanagement is expensive, too.
What I really want is the hutzpah to run GlusterFS but I am not yet brave enough to be in the keeping-a-production-FS-alive business.
And I do mean everything. We've got .NET apps running in docker containers, perl scripts .. they went hard in on docker.
But our databases: Amazon RDS instances.
It's one of the few things that isn't dockerized.
I've personally been looking at a lot of docker solutions for my own projects and I'm still weary of a lot of the data storage solutions out there.
My requirements were deploying 30 different apps using pretty much every kin do k8s objects and deploy custom consul configuration. It could have been done with helm, but the quick and dirty was jinja2 to the rescue.
- what if the master pod dies (or I transfer it to another node pool)?
- how do I make sure if everything dies, my data is safe?
- how do I use peristent disks in this scenario?
- how can I have a service that handles both the master and the replicas?
- what happens when I update the node pool to a new version of Kubernetes
- How can I achieve true HA?