5 ms·
Great to see! StatefulSet's are an example of how Kubernetes is enabling applications of all types to run on cluster. This doesn't mean the user can't take zero
by philips 10y ago
Great to see! StatefulSet's are an example of how Kubernetes is enabling applications of all types to run on cluster. This doesn't mean the user can't take zero action to port to Kubernetes, the application needs to be running in a container of course, but it is proof that an application doesn't need to be "12 Factor" to run on Kubernetes.
Essentially I see the world broken down into four potential application types:
1) Stateless applications: trivial to scale at a click of a button with no coordination. These can take advantage of Kubernetes deployments directly and work great behind Kubernetes Services or Ingress Services.
2) Stateful applications: postgres, mysql, etc which generally exist as single processes and persist to disks. These systems generally should be pinned to a single machine and use a single Kubernetes persistent disk. These systems can be served by static configuration of pods, persistent disks, etc or utilize StatefulSets.
2) Static distributed applications: zookeeper, cassandra, etc which are hard to reconfigure at runtime but do replicate data around for data safety. These systems have configuration files that are hard to update consistently and are well-served by StatefulSets.
3) Clustered applications: etcd, redis, prometheus, vitess, rethinkdb, etc are built for dynamic reconfiguration and modern infrastructure where things are often changing. They have APIs to reconfigure members in the cluster and just need glue to be operated natively seemlessly on Kubernetes, and thus the Kubernetes Operator concept https://coreos.com/blog/introducing-operators.html https://coreos.com/blog/introducing-operators.html
You can see more from about Operators in my short KubeCon keynote here: https://youtu.be/Uf7PiHXqmnw?t=11 https://youtu.be/Uf7PiHXqmnw?t=11
Overall, great progress in Kubernetes v1.5! Great to see critical features moving from Alpha to Beta.
- TheIronYuppie 10y agoBrandon's talk was awesome - highly recommended! Disclosure: I work at Google on Kubernetes.
- user5994461 10y ago4) Production applications: Don't trust docker and kubernetes to work flawlessly. Ain't running on that.
- TheIronYuppie 10y agoCan you say more? I'm happy to help wherever possible. Disclosure: I work at Google on Kubernetes.
- user5994461 10y agoShort version: Docker is unstable. Whatever is built on top of that is rotten. Note: GKE uses internal google container technologies (can you confirm?) so obviously it avoids the potential issues.
- harlowja 10y agoYou should remove zookeeper from 2 and move it to 3. https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.htm... That's been out for a while now.
- philips 10y agoNeat. Noted. Although, I can't edit the comment anymore.
- majewsky 10y agoTotally agreed. My current work assignment is to put OpenStack Swift (a distributed object storage) in Kubernetes, so exactly the kind of application that you would expect to catch fire in a cluster. The experience has been very pleasant so far. Maybe I'll speak about it at Kubecon Europe in March (if the organizers like my abstract). EDIT: I forgot that I actually have something to link to, since we open-sourced our Helm chart yesterday: https://github.com/sapcc/helm-charts/tree/master/openstack/swift https://github.com/sapcc/helm-charts/tree/master/openstack/s... There are some other custom pieces that we built for a Kubernetized Swift. Just search for repos with "swift" in their name in the same GitHub org.