diff --git a/advanced/k3s.md b/advanced/k3s.md new file mode 100644 index 0000000..f3986d8 --- /dev/null +++ b/advanced/k3s.md @@ -0,0 +1,84 @@ +# k3s + +For those looking to deploy k3s ([http://k3s.io/](http://k3s.io/)) the below notes should help get it setup and quickly deployed. + +# Inspiration / Further Reading + +- [https://github.com/kubernetes/dashboard](https://github.com/kubernetes/dashboard) +- [https://kubernetes.io/docs/concepts/](https://kubernetes.io/docs/concepts/) +- [https://kubernetes.io/docs/tasks/](https://kubernetes.io/docs/tasks/) +- [https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/](https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/) +- [https://helm.sh/docs/using_helm/#quickstart](https://helm.sh/docs/using_helm/#quickstart) +- [https://helm.sh/docs/using_helm/#installing-helm](https://helm.sh/docs/using_helm/#installing-helm) +- [https://github.com/helm/chartmuseum](https://github.com/helm/chartmuseum) +- [https://github.com/helm/monocular](https://github.com/helm/monocular) +- [https://github.com/jessestuart/tiller-multiarch](https://github.com/jessestuart/tiller-multiarch) +- [https://github.com/kubeapps/kubeapps](https://github.com/kubeapps/kubeapps) +- [https://github.com/kubeapps/kubeapps/issues/929](https://github.com/kubeapps/kubeapps/issues/929) +- [https://github.com/kubeapps/kubeapps/blob/master/Makefile] +- [https://github.com/chartmuseum/ui](https://github.com/chartmuseum/ui) +- [https://github.com/helm/chartmuseum](https://github.com/helm/chartmuseum) +- [https://github.com/rancher/k3s/issues/81](https://github.com/rancher/k3s/issues/81) + +# Quick Deployment + +## Armbian Install / Setup + +1. Install Armbian +1. Login and run through first login steps +1. ```apt update && apt install htop nload iotop vim nano tmux && apt upgrade``` +1. ```systemctl reboot``` + +## Run tmux as root + +### Prep + +``` +cat > admin-user.yaml < /root/pleroma.sh < /root/plume.sh < /root/traefik.sh << EOF -#!/bin/bash - -ARCH=\`arch\` -if [ \$ARCH == "aarch64" ] -then - ARCH="arm64v8" -else - ARCH="arm32v7" -fi - -docker pull registry.lollipopcloud.solutions/\$ARCH/traefik:latest - -docker stop traefik -docker rm traefik - -########## - change -e ACME_DNS_PROVIDER to match one from https://docs.traefik.io/configuration/acme/#provider if using DNS ACME challenges - add -e options for each variable for your chosen dns provider - don’t include CF_API vars in portainer template - need to create /var/traefik/acme/acme.json with 600 perms ahead of container run - change --logLevel=DEBUG via -e? if so: set to ERROR by default - label docs for templates: https://docs.traefik.io/configuration/backends/docker/#labels-overriding-default-behavior -########## - -docker run -it \\ --e TZ=UTC \\ --e DEBUG=1 \\ --e ACME_EMAIL="user@domain.tld" \\ --e ACME_DNS_PROVIDER="--acme.dnschallenge.provider=cloudflare" \\ --e CF_API_EMAIL="user@domain.tld" \\ --e CF_API_KEY=big_string \\ --v /var/traefik:/etc/traefik \\ --v /var/run/docker.sock:/var/run/docker.sock \\ -registry.lollipopcloud.solutions/\$ARCH/traefik:latest \\ ---api --docker --logLevel=DEBUG --defaultentrypoints=http,https --entrypoints="Name:http address::80 Redirect.EntryPoint:https" --entrypoints="Name:https address::443 TLS" --acme=true --acme.acmelogging=true --acme.storage=/etc/traefik/acme/acme.json --acme.tlsconfig=true --acme.entrypoint=https --acme.httpchallenge.entrypoint=http --acme.email=$ACME_EMAIL --acme.onhostrule=true --acme.httpchallenge=true $ACME_DNS_PROVIDER - -EOF - +wget -O traefik.sh https://git.lollipopcloud.solutions/lollipop-docker/traefik/raw/branch/master/run.sh chmod a+x /root/traefik.sh ```