Charmed PostgreSQL K8s How to | Deploy on Canonical Kubernetes

How to deploy on Canonical Kubernetes

Canonical Kubernetes is a Kubernetes service built on Ubuntu and optimized for most major public clouds.

This guide shows you how to deploy Charmed PostgreSQL K8s to Canonical Kubernetes.

Summary

This guide assumes you have a spare hardware/VMs running Ubuntu 22.04 LTS (or newer).


Install Canonical Kubernetes

The following instructions are a complete but summarized version of the steps for installing Canonical K8s. For more thorough instructions and details, see the official Canonical Kubernetes documentation: Install Canonical Kubernetes from a snap.

Install, bootstrap, and check the status of Canonical K8s with the following commands:

sudo snap install k8s --edge --classic
sudo k8s bootstrap
sudo k8s status --wait-ready

Once Canonical K8s is up and running, enable local storage (or any another persistent volume provider, to be used by Juju Storage later):

sudo k8s enable local-storage
sudo k8s status --wait-ready

(Optional) Install kubectl tool and dump the K8s config:

sudo snap install kubectl --classic
mkdir ~/.kube
sudo k8s config > ~/.kube/config
kubectl get namespaces # to test the credentials

Install Juju

Install Juju and bootstrap the first Juju controller in K8s:

sudo snap install juju --channel 3.6/candidate
juju add-k8s ck8s --client --context-name="k8s"
juju bootstrap ck8s

Deploy Charmed PostgreSQL K8s

juju add-model postgresql
juju deploy postgresql-k8s --trust

follow the deployment progress using:

juju status --watch 1s

Example output:

Model       Controller  Cloud/Region  Version  SLA          Timestamp
postgresql  ck8s        ck8s          3.6-rc1  unsupported  17:25:11+01:00

App             Version   Status  Scale  Charm           Channel     Rev  Address         Exposed  Message
postgresql-k8s  14.12     active      1  postgresql-k8s  14/stable   381  10.152.183.30   no       

Unit               Workload  Agent  Address    Ports  Message
postgresql-k8s/0*  active    idle   10.1.0.16         Primary

Next steps: Learn how to scale your application, relate with other applications and more.