---
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
---

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.

In submitting this form, I confirm that I have read and agree to
[Canonical's Privacy Notice](https://canonical.com/legal/data-privacy/contact)
and [Privacy Policy](https://canonical.com/legal/data-privacy).

Sign up

## Share on

---

## Related posts

[### What designers should know about semiotics](https://canonical.com/blog/what-designers-should-know-about-semiotics)

What happens when you look at an apple? When you see it, you perceive the apple and assign meaning to it based on your language, experience, and personal preferences – such as...

[Sophie Carroll](https://canonical.com/blog/author/sophiecarroll)

15 October 2026

[### Canonical releases Ubuntu 26.10 Stonking Stingray](https://canonical.com/blog/canonical-releases-ubuntu-26-10-stonking-stingray)

The latest interim release of Ubuntu previews privacy conscious speech-to-text, enables post-quantum package signing, completes the rollout of Rust coreutils, and improves...

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

15 October 2026

[### Securing open source software dependencies in the public cloud](https://canonical.com/blog/securing-open-source-software-dependencies-in-the-public-cloud)

Building stable and secure software requires understanding build systems and having a plan for vulnerabilities in your software dependencies.

[Aaron Whitehouse](https://canonical.com/blog/author/aaron-whitehouse)

5 October 2026

[### AI infrastructure for telcos](https://canonical.com/blog/ai-infrastructure-for-telcos)

Why moving from pilots to production changes the platform Artificial intelligence has moved beyond the demonstration phase. Telco operators are already exploring it for fault...

[Benjamin Ryzman](https://canonical.com/blog/author/benjaminryzman)

2 October 2026
