Skip to main content

Kubernetes Deployments

Tools

List of tools that we would use with Kubernetes deployments:

# install arkade
curl -sLS https://dl.get-arkade.dev | sudo sh
# Add tools bin directory to PATH
echo "export PATH=\$HOME/.arkade/bin:\$PATH" >> ~/.bashrc
# Copy bash completion script
arkade completion bash > ~/.arkade_bash_completion.sh
echo "source ~/.arkade_bash_completion.sh" >> ~/.bashrc
# Kubectl
arkade get kubectl
# Kubectl bash completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
source ~/.bashrc
# Helm
arkade get helm
# k3sup
arkade get k3sup
# move kubectl to /usr/bin to allow it to be used in python later on
sudo cp ~/.arkade/bin/kubectl /usr/bin/ && sudo chmod +x /usr/bin/kubectl
# Skaffold
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && sudo install skaffold /usr/local/bin/ && rm skaffold

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