Single host deployment

Warning
This deployment is only for learning and testing purposes.

The following instructions will help you set up a standalone Kubernetes cluster with Microk8s to deploy SD Elements on an Ubuntu based system that supports snaps.

Requirements

Minimal specifcations to support a single-node Kubernetes cluster and SD Elements

Software

  • Ubuntu 18.04 LTS or newer

    • snapd package installed

Hardware

  • 8 vCPU/cores

  • 16 GB RAM

  • 100 GB disk

Install Kubernetes (Microk8s v1.18.2 or later)

  1. Install snaps

    sudo snap install --channel=1.18/stable --classic microk8s
    sudo snap install --classic helm
  2. Add current user to microk8s group

    sudo usermod -a -G microk8s "${USER}" && su - "${USER}"
  3. Enable required microk8s addons

    microk8s.enable dns dashboard storage ingress
  4. Configure kube

    microk8s.kubectl config view --raw > "${HOME}/.kube/config"
  5. Ensure correct permissions on kube config file and directory

    chown "${USER}" "${HOME}/.kube"
    chown "${USER}" "${HOME}/.kube/config"
    chmod 750 "${HOME}/.kube"
    chmod 640 "${HOME}/.kube/config"

Configure and deploy SD Elements

  • See Helm for a guide on deploying, accessing, upgrading and undeploying SD Elements

  • See Configuration for a guide on configuring SD Elements

Access Microk8s Kubernetes Dashboard

Note

The dashboard proxy needs to be enabled on microk8s to allow access.

Dashboard Proxy

  • Create self signed kubernetes dashboard certificates

    mkdir kube_certs
    openssl req -nodes -newkey rsa:2048 -keyout kube_certs/key.pem -out kube_certs/cert.pem -subj "/CN=kubernetes-dashboard"
    microk8s.kubectl --namespace kube-system delete secret/kubernetes-dashboard-certs
    microk8s.kubectl --namespace kube-system create secret generic kubernetes-dashboard-certs --from-file=./kube_certs
    # Verify certs are loaded then clean up local artifacts
    microk8s.kubectl --namespace kube-system describe secret/kubernetes-dashboard-certs
    rm -rf kube_certs
Connecting to Microk8s running locally
  • Start the kubernetes dashboard-proxy. Retrieve the token displayed on the terminal

    microk8s.dashboard-proxy
    Checking if Dashboard is running.
    Dashboard will be available at https://127.0.0.1:10443
    Use the following token to log in:
    <Dashboard Access Token>
    • Follow the above instructions and browse here: https://127.0.0.1:10443.

  • On the Kubernetes Dashboard screen, select Token and enter the access token listed above.

  • Click Sign in.

Connecting to Microk8s running remotely

API Authentication (Microk8s versions 1.18 and earlier only)

If you are running microk8s versions 1.18 or earlier, you can access the dashboard directly via log in through the API:

  • Retrieve the Kubernetes admin credentials:

    grep -E "username|password" ~/.kube/config
  • Retrieve the Kubernetes token. Store the token name in a variable, then print token:

    token="$(microk8s.kubectl -n kube-system get secret | \
           grep default-token | \
           cut -d " " -f1)" && microk8s.kubectl -n kube-system describe secret "${token}"  | grep "token:"
  • Browse to the Kubernetes dashboard with the following URL (same IP_or_hostname used to access SD Elements). Log in with the admin credentials.

    https://<IP_or_hostname>:16443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#/login
    • Enter the admin username and password to log in when prompted.

    • On the Kubernetes Dashboard screen, select Token and enter the token you saved earlier.

    • Click Sign in.

Common tasks

See the Common Tasks page for detailed information on tasks that you may need to perform to manage SD Elements.

Note
Remember to use the microk8s.kubectl command when you need to run kubectl in a single-host Microk8s deployment.

results matching ""

    No results matching ""