Adding velero scheduled backup and dropbo sync
This commit is contained in:
+23
-33
@@ -24,31 +24,7 @@ kubectl patch deployment $DEPLOYMENT -n $NAMESPACE -p "{\"spec\": {\"template\":
|
||||
|
||||
# Deployment
|
||||
|
||||
## namespaces
|
||||
|
||||
DEPRECATED. Namespaces shall be created for the specific service.
|
||||
|
||||
```sh
|
||||
namespaces="flux cert-manager nginx-ingress infrapuzzle kuard auth nextcloud datalab web development tt-rss backup monitoring nextcloud mailu"
|
||||
for i in $( echo $NAMESPACES ) ; do
|
||||
k create ns $i
|
||||
done
|
||||
```
|
||||
|
||||
## helm repositories
|
||||
|
||||
|
||||
DEPRECATED. Helm repo will be listed for the individual apps.
|
||||
|
||||
```sh
|
||||
helm repo add stable https://kubernetes-charts.storage.googleapis.com
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm repo add k8s-land https://charts.k8s.land
|
||||
helm repo add mailu https://mailu.github.io/helm-charts/
|
||||
helm repo update
|
||||
```
|
||||
|
||||
## [ingress-controller](https://github.com/helm/charts/tree/master/stable/nginx-ingress)
|
||||
## [ingress-nginx](https://github.com/kubernetes/ingress-nginx/tree/master/charts/ingress-nginx)
|
||||
|
||||
Apply with helm:
|
||||
|
||||
@@ -66,7 +42,7 @@ Apply with helm. [See chart.](https://github.com/jetstack/cert-manager):
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo update
|
||||
helm upgrade --install --create-namespace cert-manager jetstack/cert-manager -n cert-manager -f cert-manager/cert-manager.yaml
|
||||
# this is required:
|
||||
# apply the two issuer classes
|
||||
kubectl apply -f cert-manager/staging-issuer.yaml
|
||||
kubectl apply -f cert-manager/production-issuer.yaml
|
||||
```
|
||||
@@ -83,7 +59,7 @@ $ kubectl delete -f kuard
|
||||
|
||||
Update with the follwoing command. Chart can be found [here](https://github.com/openebs/charts/tree/master/charts/openebs).
|
||||
|
||||
Pitfal:
|
||||
Pitfall:
|
||||
* On fresh installation: activate *ndmOperator*, so that CRDs are correctly installed. It may be deactivated afterwards.
|
||||
|
||||
```sh
|
||||
@@ -114,20 +90,26 @@ Backup tool. See chart [README](https://github.com/vmware-tanzu/helm-charts/blob
|
||||
helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts
|
||||
helm repo update
|
||||
helm upgrade --install --create-namespace --namespace velero -f ./velero/velero.secret.yaml velero vmware-tanzu/velero
|
||||
kubectl create secret generic rclone-config --from-file=./velero/rclone.secret
|
||||
kubectl apply -f velero/dropbox_sync.yml
|
||||
# #
|
||||
helm delete velero -n velero
|
||||
kubectl delete ns velero
|
||||
```
|
||||
|
||||
A backup may be created using:
|
||||
A manual backup may be created executing the following command. **Note: Keep backuped namespaces in sync with config from helm chart!!!**
|
||||
|
||||
```sh
|
||||
DATE=$( date +%Y%m%d )
|
||||
velero backup create $DATE --default-volumes-to-restic --include-namespaces datalab,development,nextcloud,tt-rss,zebrium --wait
|
||||
velero backup create $DATE --include-namespaces datalab,development,nextcloud,tt-rss,zebrium,mailu --wait
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Add private docker registry
|
||||
|
||||
**TODO: chart no longer exists. Check how to replace this someday.**
|
||||
|
||||
```sh
|
||||
# create secret base64 encoded and put it in htpasswd helm chart
|
||||
USER='moritz'
|
||||
@@ -143,7 +125,7 @@ helm upgrade --install --create-namespace docker-registry stable/docker-registry
|
||||
Create credentials secret [according to docu](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line):
|
||||
|
||||
```sh
|
||||
namespaces="datalab"
|
||||
namespaces="datalab web"
|
||||
for i in $( echo $namespaces ) ; do
|
||||
kubectl create secret docker-registry registry-haumdaucher-de \
|
||||
-n $i \
|
||||
@@ -203,7 +185,7 @@ EOF
|
||||
|
||||
## metrics-server
|
||||
|
||||
Getting resources (was already done):
|
||||
Getting resources (already done):
|
||||
|
||||
```sh
|
||||
cd kube-system
|
||||
@@ -214,10 +196,16 @@ curl -L -o metrics-server.yml https://github.com/kubernetes-sigs/metrics-server/
|
||||
# - --kubelet-insecure-tls
|
||||
```
|
||||
|
||||
Implement metrics-server:
|
||||
|
||||
```sh
|
||||
kubectl apply -n kube-system -f kube-system/metrics-server.yml
|
||||
```
|
||||
|
||||
# Persistent stuff
|
||||
|
||||
From here everything should be covered by the backup. Implenting those objects should already be performed by the velero backup.
|
||||
|
||||
## rstudio
|
||||
|
||||
Currently only for one user:
|
||||
@@ -316,7 +304,7 @@ helm upgrade --install nextcloud-phpmyadmin bitnami/phpmyadmin -n nextcloud -f n
|
||||
|
||||
### backup & restore
|
||||
|
||||
#TODO
|
||||
#TODO with Velero
|
||||
|
||||
## Jupyter
|
||||
|
||||
@@ -357,7 +345,7 @@ ssh moritzgraf.de "sudo su - docker -c 'cd /home/docker/mailu && docker-compose
|
||||
cd ../terraform && terraform apply
|
||||
# helm apply
|
||||
cd ../k8s
|
||||
helm upgrade --install mailu mailu/mailu -n mailu -f mailu/mailu.secret.yml
|
||||
helm upgrade --create-namespace --install mailu mailu/mailu -n mailu -f mailu/mailu.secret.yml
|
||||
# apply mailu and scale all to 0
|
||||
kc mailu
|
||||
k scale --replicas=0 --all=true deploy
|
||||
@@ -411,5 +399,7 @@ k delete -f dbench
|
||||
## Web
|
||||
|
||||
```sh
|
||||
kubectl create ns web
|
||||
kubectl apply -n web ./re
|
||||
kubectl apply -f web/
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user