oneuptime/HelmChart/Docs/MicroK8s.md

2.5 KiB

Introduction

Installation

Install Microk8s: Read the installation guide for more details. Install Helm

Run

sudo microk8s kubectl config view --raw > ~/.kube/config

Bash Alias

Edit bashrc file and add these aliases

vi ~/.bashrc

Add these lines to it:

alias kubectl='microk8s kubectl'
alias helm='microk8s helm3'

Save it and run source ~/.bashrc

Setup Addons

  • Hostpath Storage (skip if you're running on a multinode cluster)

Use MicroCeph if you have multiple nodes. If you're using the miltinode k8s cluster, you can skip this step.. Please read Ceph Installation guide at HelmChart/Docs/MicroCeph.md for more details

microk8s enable hostpath-storage

# then you should see storage class name 
kubectl get storageclass

# You can then use this storage class to run this chart

By default, the hostpath provisioner will store all volume data under /var/snap/microk8s/common/default-storage

To customize the default directory, please read the docs here: https://microk8s.io/docs/addon-hostpath-storage

  • Metal LB

# Enable Metal LB
microk8s enable metallb:192.168.0.105-192.168.0.111
  • Kubernetes Dashboard
microk8s enable dashboard

and then you can run microk8s dashboard-proxy to access the dashboard.

  • DNS
microk8s enable dns
  • Rook Ceph

Skip this step if you're NOT running on a multinode cluster

microk8s enable rook-ceph
sudo microk8s connect-external-ceph

After running the above command, check if you see the storageclass:

kubectl get storageclass

Common Issues

  • launch failed: instance "microk8s-vm" already exists (on MacOS)
multipass delete microk8s-vm
multipass purge

# reinstall
microk8s install
microk8s status --wait-ready

Unistallation

microk8s uninstall

High Availability

Microk8s in a multi-node configuration is highly available. You can add and remove nodes without downtime.

Network High Availability

Use a Load Balancer to distribute traffic across the nodes. The Load Balancer can be a physical device or a software solution like HAProxy. The Load Balancer should be configured to forward traffic to the nodes on ports 80, 443 and have the LoadBalancer IP as the destination IP for the traffic in DNS and MetalLB.

Storage High Availability

Ceph takes care of storage high availability. Please read the docs at HelmChart/Docs/MicroCeph.md for more details.