---
title: Deploy a Kubernetes development cluster with Juju!
description: Our team has been working to make Kubernetes easy to deploy in a public
  cloud. In March we created some Juju charms that have the ability to deploy specific
  releases of Kubernetes on a public cloud. In April we worked to get the charm and
  bundle code in the Kubernetes project itself. Making it even  […]
url: https://canonical.com/blog/deploy-a-kubernetes-development-cluster-with-juju-2?format=md
---

1. [Blog](https://canonical.com/blog)
2. Article

---

[Matt Bruzek](https://canonical.com/blog/author/mbruzek "More about Matt Bruzek")

23 July 2015

# Deploy a Kubernetes development cluster with Juju!

---

Share the article

Our team has been working to make [Kubernetes](http://kubernetes.io/) easy to deploy in a public cloud. In March we created some [Juju](https://jujucharms.com/u/kubernetes/kubernetes-master/trusty) [charms](https://jujucharms.com/u/kubernetes/kubernetes/trusty) that have the ability to deploy specific releases of [Kubernetes on a public cloud](https://github.com/GoogleCloudPlatform/kubernetes/tree/master/cluster/juju). In April we worked to get the charm and bundle code in the Kubernetes project itself. Making it even easier for people to deploy a cluster from the [official Kubernetes repository](https://github.com/GoogleCloudPlatform/kubernetes).

We have reached another milestone in the Kubernetes story. We added the ability to deploy a Kubernetes cluster with binaries built from local source! This is important to software engineers because it gives them an easy way to stand up a cluster and see their changes right away.

## Development setup

To use this new feature the local environment must be set up for development. Refer to the [Development Guide](https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/devel/development.md) for details on how to set up your environment for development in the [Go](http://golang.org/) programming language.

## Deploy local binaries

We are calling this deploy from source option “local”. Here is how it works:

* Clone the Kubernetes project from Github:

  ```
  git clone http://github.com/GoogleCloudPlatform/kubernetes.git
  cd kubernetes
  ```
* Set the Kubernetes provider to “juju”:

  ```
  export KUBERNETES_PROVIDER=juju
  ```
* Change/edit the source code, and when you are ready, run the kube-up.sh script to deploy a cluster with your locally built binaries:

  ```
  cluster/kube-up.sh
  ```

The kube-up.sh script will build the required binary files (using make all), copy the binary files to the charm directory and deploy a cluster to the [public cloud you have configured with Juju](https://jujucharms.com/docs/devel/getting-started#configuring), if you do not have a public cloud configured you will be presented with the opportunity to configure one.

The resulting cluster consists of one kubernetes-master, two kubernetes nodes on different hosts. The [etcd](https://coreos.com/etcd/) and [flannel](https://github.com/coreos/flannel) parts are there so the containers on different hosts can communicate with each other.

To get access to the controller node use juju ssh kubernetes-master/0 or the minion nodes with juju ssh kubernetes/0 commands. You will find the kubectl is already installed on the controller node.

When you are done with the cluster running kube-down.sh will destroy the cluster as expected.

```
cluster/kube-down.sh
```

## Why use Kubernetes with Juju?

Juju provides a way to model deployments in a cloud agnostic language. The same commands can deploy a cluster on the major public clouds [Amazon](https://jujucharms.com/docs/devel/config-aws), [Google Compute Engine](https://jujucharms.com/docs/devel/config-gce), [any OpenStack cloud](https://jujucharms.com/docs/devel/config-openstack), [Windows Azure](https://jujucharms.com/docs/devel/config-azure) and [many others](https://jujucharms.com/docs/devel/getting-started). You will need to put your cloud credentials into Juju but that only needs to be done one time. This allows you to deploy a cluster on AWS, juju switch gce and deploy the same cluster on the GCE public cloud using the same kube-up.sh command. Juju reduces the cost of experimentation on other clouds and lets you focus on the Kubernetes development.

## Help us improve!

There is a small team working on the Kubernetes story [@whitmo](https://github.com/whitmo), [@chuckbutler](https://github.com/chuckbutler), and [@mbruzek](https://github.com/mbruzek). We are always trying to improve and make something useful for the community. If you find a bug in the code create an [issue](https://github.com/googlecloudplatform/kubernetes/issues) and reference one or all of us in the issue and we will have a look. If you have any feedback or a use case that we can help with please let us know. You can reach us on IRC in #system-zoo on irc.freenode.net.

[Get in touch

Interested in running Ubuntu in your organization?](https://ubuntu.com/about/contact-us/form)

## Sign up for our newsletter

Get the latest Canonical news and updates in your inbox.

Work email:

\*I agree to receive information about Canonical's
products and services.

By submitting this form, I confirm that I have read and agree to [Canonical's Privacy Policy](https://canonical.com/legal/dataprivacy).

Sign up

## Share on

---

## Related posts

[### Canonical joins the Open Secure AI Alliance](https://canonical.com/blog/open-secure-ai-alliance)

Canonical is now part of the Open Secure AI Alliance, announced by NVIDIA with partners across cloud computing, cybersecurity, enterprise software, open source foundations, and...

[Canonical](https://canonical.com/blog/author/canonical)

28 August 2026

[### Arduino® VENTUNO™ Q is available for pre-order with Ubuntu pre-installed](https://canonical.com/blog/arduino-ventuno-q-is-available-for-pre-order-with-ubuntu-pre-installed)

London, UK – August 25, 2026 – Following our initial collaboration announcement in March 2026, Canonical and Arduino (a subsidiary of Qualcomm Technologies, Inc.) are excited...

[Canonical](https://canonical.com/blog/author/canonical)

25 August 2026

[### Advantech AOM-2721 is now Ubuntu Certified](https://canonical.com/blog/advantech-aom-2721-ubuntu-certified)

Canonical announces that the Advantech AOM-2721 is officially joining the list of Ubuntu Certified Hardware.

[Mikhail Khazov](https://canonical.com/blog/author/khazov-m)

13 August 2026

[### Canonical integrates NVIDIA Nemotron 3.5 Lightning with Ubuntu for always-on AI agents](https://canonical.com/blog/nvidia-nemotron-3-5-lightning)

Canonical is pleased to announce that NVIDIA’s newly introduced NVIDIA Nemotron 3.5 Lightning, an open, customizable model built for always-on AI agents, is now available on...

[Canonical](https://canonical.com/blog/author/canonical)

11 August 2026
