Choosing an installation method¶
Canonical Kubernetes can be installed in a variety of ways, depending on your needs and preferences. All installation methods provide a fully functional cluster with upstream Kubernetes and additional built-in features such as networking, ingress and storage. Your choice may be influenced by the cluster size, the environment you are deploying to, and the life cycle management tools that you prefer to use. The following sections describe the different installation methods:
Snap¶
The Canonical Kubernetes snap is a self-contained, simple to install package. It can be installed on any Linux distribution that supports the snapd service, such as Ubuntu. If you’re using a non-Linux system, we recommend creating virtual machines using Multipass or LXD. Snaps come with the advantage of automatic and atomic updates making it easy for users to install, maintain and update their software.
If you are looking for a straightforward way to get started with Canonical Kubernetes, and your cluster will not grow beyond a few nodes, using the snap is the recommended installation method. Follow the getting-started guide to install Canonical Kubernetes using the snap.
Juju¶
Juju is an open-source orchestration engine that allows you to deploy, configure, scale and operate Canonical Kubernetes on any infrastructure. Juju uses charms which are encapsulated reusable software packages to define how applications are deployed and related to each other. At its core, Canonical Kubernetes comprises of two Juju charms: a control plane charm and a worker charm. Additionally, the Juju charm ecosystem provides further integrations, for example an observability stack.
If you are looking to deploy Canonical Kubernetes in a public/private cloud environment, on metal, in VMs or on your local machine you can take advantage of Juju’s powerful lifecycle management. Get started with a simple deployment of the Canonical Kubernetes’s charms using the juju-cli guide or leverage Terraform’s Juju provider by following the installing-with-terraform guide.
Cluster API (CAPI)¶
Cluster API is a Kubernetes sub-project that provides declarative APIs for creating, configuring, and managing multiple Kubernetes clusters.
If you plan to deploy and operate a large deployment with multiple Kubernetes clusters, you can use the Canonical Kubernetes’s CAPI providers. Follow the CAPI guide to deploy and operate Canonical Kubernetes with the help of the CAPI providers.