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.