Los administradores de los cl煤steres de Kubernetes se enfrentan a la tarea de guardar la configuraci贸n de recursos del espacio de nombres y transferirla a otro cl煤ster, o hacer una copia de seguridad de un sitio de prueba inestable. Un script de una sola l铆nea con la utilidad kubectl, escrito con fluidez en la terminal, hace frente a esta tarea sin ning煤n problema, pero 驴qu茅 pasa si est谩s cansado de dedicar un par de minutos a escribir el siguiente script cada vez? As铆 es como apareci贸 la utilidad kube-dump , de hecho, es una utilidad que solo puede hacer una cosa: volcar los recursos del cl煤ster.
yaml .
:
, .
, .
, .
kubernetes CronJob.
.
git .
.
.env .
:
./kube-dump dump
dev prod /dump, kubectl.
docker pull woozymasta/kube-dump:latest
docker run --tty --interactive --rm \
--volume $HOME/.kube:/.kube \
--volume $HOME/dump:/dump \
woozymasta/kube-dump:latest \
dump-namespaces -n dev,prod -d /dump --kube-config /.kube/config
CronJob
, ServiceAccount view. view, , .
CronJob ServiceAccount ClusterRoleBinding view:
kubectl create ns kube-dump kubectl -n kube-dump apply -f \ https://raw.githubusercontent.com/WoozyMasta/kube-dump/master/deploy/cluster-role-view.yaml
GitLab OAuth , :\
kubectl -n kube-dump create secret generic kube-dump \
--from-literal=GIT_REMOTE_URL=https://oauth2:$TOKEN@corp-gitlab.com/devops/cluster-bkp.git
Antes de la instalaci贸n, configure las variables de entorno para que se adapten a sus necesidades, en el ejemplo, de forma predeterminada , se establece el modo de copia de los espacios de nombres dev y prod, seguido de la confirmaci贸n de los cambios en la rama my-cluster y el env铆o al repositorio remoto.
Configure CronJob en el que especificamos la frecuencia de lanzamiento de la tarea:
spec:
schedule: "0 1 * * *"
Alternativamente, instale el ejemplo como est谩 y luego ed铆telo:
kubectl -n kube-dump apply -f \ https://github.com/WoozyMasta/kube-dump/blob/master/deploy/cronjob-git-token.yaml kubectl -n kube-dump edit cronjobs.batch kube-dump
Planes para un mayor desarrollo
Implementar el env铆o de volcados al almacenamiento compatible con s3;
Env铆o de notificaciones por correo electr贸nico y webhook;
Git-crypt para cifrar datos confidenciales;
Autocompletar Bash / Zsh;
Soporte OpenShift.
Tambi茅n estar茅 encantado de recibir sus comentarios y sugerencias con ideas y cr铆ticas.