Kubernetes Deployment and Installation
K3S Installation
A good starting point for k3s installation using k3sup would be:
# run the following commands on your master VM
# create kubeconfig directory
mkdir ~/.kube
# master information
export MASTER_IP=10.1.1.1
# install k3s
k3sup install \
--local \
--k3s-channel stable \
--local-path ~/.kube/config \
--k3s-extra-args "--node-external-ip $MASTER_IP --node-ip $MASTER_IP --bind-address $MASTER_IP --no-deploy traefik --write-kubeconfig-mode 644" \
--print-command
And to have the worker join the cluster:
# to only install k3sup
curl -sLS https://get.k3sup.dev | sudo sh
# master information
export MASTER_IP=10.1.1.1
export MASTER_USER=ubuntu
# worker information
export WORKER_IP=10.1.1.2
export WORKER_USER=ubuntu
k3sup join --ip $WORKER_IP --user $WORKER_USER --server-ip $MASTER_IP --server-user $MASTER_USER --k3s-extra-args "--node-external-ip $WORKER_IP --node-ip $WORKER_IP" --k3s-channel stable --print-command
K3S Upgrade
To upgrade k3s:
# https://update.k3s.io/v1-release/channels/stable/k3s
curl -sSL https://github.com/k3s-io/k3s/releases/download/v1.21.4%2Bk3s1/k3s -o k3s
chmod +x ./k3s
# test k3s out: ./k3s
sudo mv k3s /usr/local/bin/k3s
# on the master
sudo systemctl restart k3s.service
# on the agents
sudo systemctl restart k3s-agent.service
# verify installation was OK
kubectl version
# check all agents version
kubectl get nodes -o wide
Data Science Tools
Jupyter Hub
- Setup JupyterHub
- DEPLOYING A CONTAINERIZED JUPYTERHUB SERVER WITH DOCKER
- JupyterHub with Kubernetes On Single Bare Metal Instance Tutorial
- Multi user Jupyter Notebooks with authentication
Serverless Computing Platforms
OpenFaaS
Installation over SSL and nginx proxy:
# OpenFaaS over SSL/TLS: https://blog.alexellis.io/tls-the-easy-way-with-openfaas-and-k3sup/
export DOMAIN=openfaas.example.com
export EMAIL=webmaster@$DOMAIN
k3sup app install nginx-ingress
k3sup app install cert-manager
k3sup app install openfaas
k3sup app install openfaas-ingress \
--domain $DOMAIN \
--email $EMAIL
Raw installation:
# OpenFaaS
k3sup app install openfaas
PASSWORD=$(kubectl get secret -n openfaas basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode; echo)
echo $PASSWORD | faas-cli login -s
faas-cli store deploy nodeinfo
faas-cli list -v
Then, install the CLI:
# OpenFaaS CLI (faas-cli)
curl -sSL https://cli.openfaas.com | sudo sh
export OPENFAAS_URL=http://XXX.YYY:31112
export PASSWORD="XXXXXXXXXXXXXXXXXXXX"
echo -n $PASSWORD | faas-cli login --username admin --password-stdin
faas ls
Fission
# Fission (assumes docker and minikube installed)
# Check for updates: https://docs.fission.io/docs/installation/
curl -sSL https://nimamahmoudi.github.io/cicd-cheatsheet/sh/install-fission.sh | bash
# In case error happens:
sudo systemctl restart kubelet