---
title: "Install Kubernetes\n    | Ubuntu"
description: A step-by-step guide to install Kubernetes on your software defined infrastructure
  from workstations, to clouds, edge and IoT devices.
url: https://ubuntu.com/kubernetes/install?format=md
keywords: index, follow
---

# Install Kubernetes

Canonical Kubernetes is pure upstream and works on any infrastructure, from bare metal to public clouds and edge. Deploy single-node and multi-node clusters to support container orchestration, from testing to production. Get the latest innovations from the Kubernetes community within a week of upstream release, enabling your team to learn, experiment and upskill.

[Read the docs](https://ubuntu.com/kubernetes/documentation)
[Purchase support with Ubuntu Pro ›](https://ubuntu.com/pro/subscribe)

---

## Kubernetes cluster with K8s snap

Single-node

Multi-node

Install Kubernetes with a single command. Canonical Kubernetes comes with in-built networking, gateway, local storage, DNS, load balancer, metrics server and ingress.

[Read the docs to learn more](https://documentation.ubuntu.com/canonical-kubernetes/latest/src/snap/)

1. Install the K8s snap

   ```
   sudo snap install k8s --classic
   ```

   Don’t have the snap command? [Get set for snaps](https://docs.snapcraft.io/installing-snapd)
2. Bootstrap the cluster

   ```
   sudo k8s bootstrap
   ```
3. View status of your installation

   ```
   sudo k8s status
   ```
4. Start using Kubernetes

   ```
   sudo k8s kubectl get all --all-namespaces
   ```

To create a cluster out of two or more already-running Kubernetes instances, use the *k8s join-cluster* command. With three or more control plane nodes you will automatically get high availability.

[Read the docs to learn more](https://documentation.ubuntu.com/canonical-kubernetes/latest/src/snap/)

1. Generate token on the already existing *control-plane* node

   ```
   sudo k8s get-join-token --worker
   ```
2. To join the worker node to the cluster, run on the *worker* node

   ```
   sudo k8s join-cluster <join-token>
   ```
3. Verify the worker node successfully joined the cluster, by running on the *control-plane* node

   ```
   sudo k8s kubectl get nodes
   ```

---

## Multi-node Kubernetes cluster with K8s charm

Get automated Kubernetes operations from bare-metal to the cloud. Build your Kubernetes cluster from the ground up, integrate it with your favorite tools, and create multi-cloud topologies.

[Install Canonical Kubernetes with Juju](https://documentation.ubuntu.com/canonical-kubernetes/latest/src/charm/tutorial/getting-started/)

---

## Multi-node Kubernetes with Cluster API

With Canonical Kubernetes you can deploy and operate Kubernetes through Cluster API (CAPI) bootstrap and infrastructure providers.

[Deploy Canonical Kubernetes with Cluster API](https://documentation.ubuntu.com/canonical-kubernetes/latest/src/capi/tutorial/getting-started/)

---

## For more information, [read the docs](https://ubuntu.com/kubernetes/documentation) Or [contact us](https://ubuntu.com/kubernetes/contact-us) to let our experts help you take the next step
