From c6f4b637204ecdec3685a08e343907ee25bee322 Mon Sep 17 00:00:00 2001 From: Brian Lachniet Date: Sun, 4 Feb 2024 09:33:17 -0500 Subject: [PATCH] Add 'Backup Your Kubernetes Cluster with Velero and Backblaze' (draft) --- .../add-app-key.png | Bin 0 -> 21121 bytes .../create-bucket.png | Bin 0 -> 22036 bytes .../index.md | 148 ++++++++++++++++++ .../view-bucket-hl.png | Bin 0 -> 13812 bytes 4 files changed, 148 insertions(+) create mode 100644 content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/add-app-key.png create mode 100644 content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/create-bucket.png create mode 100644 content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/index.md create mode 100644 content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/view-bucket-hl.png diff --git a/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/add-app-key.png b/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/add-app-key.png new file mode 100644 index 0000000000000000000000000000000000000000..97c37241ede3d34a546c387b29490d518c385b89 GIT binary patch literal 21121 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 IM6N<$g52<7KL7v# literal 0 HcmV?d00001 diff --git a/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/index.md b/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/index.md new file mode 100644 index 0000000..9c2af95 --- /dev/null +++ b/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/index.md @@ -0,0 +1,148 @@ +--- +title: "Backup Your Kubernetes Cluster with Velero and Backblaze" +date: 2024-02-04T07:15:11-05:00 +draft: true +tags: +- backblaze +- backup +- kubernetes +- velero +--- + +After finalizing backups from my NAS and household computers to Backblaze's B2 Cloud Storage, I decided it was time to do the same for my Kubernetes cluster. I use the built-in backup utility on my NAS and [Restic](https://restic.readthedocs.io/en/stable/) on my household computers. After a little research, I found that [Velero](https://velero.io/) is a solid option for backing up Kubernetes clusters. It supports storage providers that have an AWS S3-compatible API, which includes [B2 Cloud Storage](https://www.backblaze.com/docs/cloud-storage-s3-compatible-api)! + +In this post, I'll walk through a minimal Velero install that saves snapshots to B2 using the `aws` provider. + + +## In praise of Backblaze + +Before we dive in, allow me a moment to express my love for [Backblaze](https://www.backblaze.com/). ❤️🔥 + +I have used Backblaze products since "CrashPlan for Home" was discontinued. I started off with Backblaze Computer Backup and it paid off when the drive holding all my important documents and photos died. + +It was a fairly large amount of data, so I took advantage of "Restore by Mail" which is where Backblaze mails a USB Hard Drive with a snapshot of your backup. A couple days later I had restored all my files on a new NAS and was returning the hard drive! 🎉 + +I can't give Backblaze enough praise for how smooth the process was to restore my data! It was a welcome relief in a normally stressful situation. + +Alright, with my gushing out of the way, let's dive in... + +## Create the bucket and application key + +To start we will create a bucket and application key in Backblaze. I'm going to use the web UI, but you may be able to complete some or all of these steps with the [Backblaze CLI](https://www.backblaze.com/docs/cloud-storage-command-line-tools). + +Create a [B2 Cloud Storage Bucket](https://secure.backblaze.com/b2_buckets.htm) with the following options. This is where Velero will store backups. + +| Option | Value | +| ------------------- | ------------------ | +| Bucket name | `` | +| Files in bucket are | Private | +| Default Encryption | Disable | +| Object Lock | Disable | + +![Dialog to create a Backblaze B2 bucket](create-bucket.png) + +Create an [Application Key](https://secure.backblaze.com/app_keys.htm) with access to the bucket. Velero will use these credentials to authenticate with Backblaze. + +| Option | Value | +| ------------------------- | ------------------ | +| Name of Key | `` | +| Allow access to Bucket(s) | `` | +| Type of Access | Read and Write | +| File name prefix | _blank_ | +| Duration (seconds) | _blank_ | + +![Dialog to add a Backblaze B2 application key](add-app-key.png) + +Save the Application Key credentials to a file named `credentials.txt`. We'll need this file when installing the Velero server components later. + +```ini +# credentials.txt +[default] +aws_access_key_id= +aws_secret_access_key= +``` + +Take note of your bucket's "Endpoint" by viewing the bucket information in [B2 Cloud Storage Buckets](https://secure.backblaze.com/b2_buckets.htm). It will look something like this: `s3.us-west-001.backblazeb2.com`. You will need this when installing Velero server components. + +![Backblaze B2 bucket information with the endpoint highlighted](view-bucket-hl.png) + +You will also need the region for your bucket, which is the second part of that endpoint. For example, in `s3.us-west-001.backblazeb2.com`, the region is `us-west-001`. + +## Install Velero + +A basic Velero install involves two components: the CLI and the server. You should install the CLI on the same machine that you generally run `kubectl` on. Once the CLI is installed, we'll use it to install the server components in the Kubernetes cluster. + +Follow the instructions in [Basic Install](https://velero.io/docs/v1.13/basic-install/) to install the CLI. + +Now use the CLI to install and configure the Velero server components in the Kubernetes cluster. Run the following command, replacing `<...>` with the values from your Backblaze setup. + +```sh +velero install \ + --provider aws \ + --bucket \ + --plugins velero/velero-plugin-for-aws:v1.8.2 \ + --secret-file credentials.txt \ + --backup-location-config region=,s3Url=https:// \ + --snapshot-location-config region= +``` + +Follow instructions in the output to review the logs and ensure that the install completed successfully. + +## Backup and restore + +Most of your interactions with Velero will happen through the CLI. With it you can get, create, and delete backups and restores. + +Let's test out the backup and restore functionality. To do that, we will: + +1. Deploy nginx. +2. Create a backup with Velero. +3. Delete nginx. +4. Restore the backup with Velero. +5. Confirm nginx was restored. + +Create an nginx deployment and service. + +```sh +kubectl create deployment nginx --image=nginx:latest +kubectl expose deployment nginx --port=80 --name=nginx +``` + +Wait for the deployment to ready and then test it. + +```sh +# Wait for the deployment to ready. +kubectl rollout status deployment nginx + +# Make a request. +curl http://$(kubectl get svc nginx --output=go-template={{.spec.clusterIP}}) +``` + +Backup the cluster. + +```sh +velero create backup b01 --wait +``` + +Delete nginx. + +```sh +kubectl delete deployment/nginx service/nginx +``` + +Restore from our earlier backup. + +```sh +velero create restore --from-backup=b01 --wait +``` + +Wait for the deployment to ready and then test it. + +```sh +# Wait for the deployment to ready. +kubectl rollout status deployment nginx + +# Make a request. +curl http://$(kubectl get svc nginx --output=go-template={{.spec.clusterIP}}) +``` + +You should get a successful response from your `curl` request, indicating that you successfully restored your Kubernetes resources! diff --git a/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/view-bucket-hl.png b/content/posts/backup-your-kubernetes-cluster-with-velero-and-backblaze/view-bucket-hl.png new file mode 100644 index 0000000000000000000000000000000000000000..359dd16b8f6092ae1f2082b33a7b0ed44473447e GIT binary patch literal 13812 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