A big congratulations to the Kubernetes project and community on releasing version 1.0 to the public! Kubernetes (a.k.a. k8s) is an open source system for managing containerized applications across multiple hosts called a cluster. Over the past six months we’ve had a small team of “container people” working to make sure that we could deliver the best Kubernetes experience on the first day of the version 1.0 release! And, at last, that day has come.
Here’s what you can do today:
Find all the charms and bundles in the cluster/juju directory in the kubernetes project on github: https://github.com/GoogleCloudPlatform/kubernetes/tree/master/cluster/juju
To use our magic you will need to have Juju installed (see here for native setup or here for using Docker). We maintain a Juju bundle as part of the Kubernetes repository. Then you can hack and launch a cluster easily using semantics common to the k8s project.
Our first goal is to make it simple for anybody to deploy a Kubernetes cluster v1.0. So we’ve added a kubernetes-cluster bundle to the charm store that does just that: https://jujucharms.com/u/kubernetes/kubernetes-cluster
sudo add-apt-repository ppa:juju/stable sudo apt-get update sudo apt-get install juju-quickstart
Now just deploy the bundle from either the charm store or the kubernetes github project.
juju quickstart u/kubernetes/kubernetes-cluster
Make sure you follow the directions in the README, which you can find here:
The resulting cluster consumes 4 virtual machines or units. One machine runs the kubernetes-master, two kubernetes nodes with docker installed on different hosts. One machine for etcd to provide coordination and shared configuration. The flannel-docker subordinate is installed on docker units, and related to etcd – which enables the different container hosts to communicate with each other on an overlay network.
Our secondary goal was to ensure that developers could easily deploy a kubernetes cluster without having to know how to run a cluster and connect all the pieces. So developers can deploy Kubernetes right from their own git directory and see their changes in the cluster right away. For those with Juju installed just: git clone, hack hack hack, and deploy a cluster with your changes. Since we are integrated in the Kubernetes github project use the Kubernetes semantics to deploy the cluster:
git clone https://github.com/GoogleCloudPlatform/kubernetes.git cd kubernetes export KUBERNETES_PROVIDER=juju cluster/kube-up.sh
The default Juju cluster contains two Docker hosts and many containers can run on each host. For large applications you may need to add more Kubernetes nodes. To scale out, deploy additional units of the docker charm.
juju add-unit docker
All the supporting services: Kubernetes node, as well as flannel overlay networking, will automatically be added and configured in the existing cluster.
Now that Kubernetes 1.0 is released we’re inviting you to deploy these charms to your environments. Kick the tires, break stuff, and by all means, let us know how it’s working out for you. All of this work is Open Source, and we’ll gladly work with the community on making it better.
The current cluster uses Flannel to create an Software Defined Network. Thanks to the pluggable Juju model we can replace Flannel with other SDN technologies such as Docker’s experimental overlay networking support. This means as our bundle continues to improve post 1.0 the same set of instructions here will always reflect the deployment of a best of breed Kubernetes cluster.
You’ll find us on #juju on freenode (if you want to talk Juju), and of course you can find us in #google-containers. Also check out the mailing list.
Happy Containerizing! Is that even a word?
Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.
Event Information Date: March 27 – 29 City/State: San Jose, CA Location: San Jose McEnery Convention Center Booth: #1227 GTC is the premier AI and deep learning conference, providing unparalleled training, industry insights, and…
This article originally appeared on Chris Sanders’ blog MAAS is designed to run in a data center where it expects to have control of DNS and DHCP. The use of an external DHCP server is listed as ‘may work but not supported’ in the…