# 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 <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system
EOF

```

### Session 1

1. ```curl -sfL https://get.k3s.io | sh -```
1. ```journalctl -fu k3s```

### Session 2

1. ```k3s kubectl get node``` -- This should eventually give output
1. ``` kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard-arm.yaml```
1. ```kubectl apply -f admin-user.yaml```
1. ```kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')```

### Session 3

1. ```cp /etc/rancher/k3s/k3s.yaml ~/.kube/config```
1. ```curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash```
1. ```helm init --tiller-image=jessestuart/tiller```
1. ```helm repo add bitnami https://charts.bitnami.com/bitnami```
1. ```helm install --name kubeapps --namespace kubeapps bitnami/kubeapps```

### Local Machine

1. Setup proxy per the "Accessing cluster from outside section" section at [https://github.com/rancher/k3s/blob/master/README.md](https://github.com/rancher/k3s/blob/master/README.md)
1. Access dashboard at [http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/](http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/)

