Sao lưu Velero vào PowerScale S3 Bucket

Velero là một trong những công cụ phổ biến nhất để sao lưu và khôi phục tài nguyên Kubernetes.

Bạn có thể sử dụng Velero cho các tùy chọn sao lưu khác nhau để bảo vệ cụm Kubernetes của mình. Ba chế độ là:

  • Bảo vệ các đối tượng tài nguyên Kubernetes như Pod, Namespace, v.v., với CRD được bao gồm
  • Bảo vệ dữ liệu PersistentVolume với sự trợ giúp của VolumeSnapshot
  • Bảo vệ nội dung của PV với sự trợ giúp của restic

 Trong mọi trường hợp, Velero đều đồng bộ thông tin (dữ liệu YAML và restic) với một đối tượng lưu trữ.

PowerScale là giải pháp NAS mở rộng hàng đầu của Dell Technologies. Nó hỗ trợ nhiều giao thức truy cập khác nhau bao gồm NFS, SMB, HTTP, FTP, HDFS và, trong trường hợp chúng tôi quan tâm, S3!

Lưu ý : PowerScale không tương thích 100% với giao thức AWS S3 (để biết chi tiết, hãy xem Hướng dẫn API PowerScale OneFS S3 ). 

Đối với giải pháp sao lưu đơn giản cho vài terabyte dữ liệu Kubernetes, PowerScale và Velero là sự kết hợp hoàn hảo.

Triển khai

Để triển khai giải pháp này, bạn cần cấu hình PowerScale, sau đó cài đặt và cấu hình Velero.

Cấu hình PowerScale S3

Chuẩn bị PowerScale làm mục tiêu sao lưu như sau:

  1. Đảm bảo giao thức S3 được bật.

Bạn có thể kiểm tra điều đó trong UI tại Giao thức > Lưu trữ đối tượng (S3) > Cài đặt chung hoặc trong CLI.

Trong giao diện người dùng:

Trong CLI:

PS1-1% isi s3 cài đặt chế độ xem toàn cầu
         Cổng HTTP: 9020
        Cổng HTTPS: 9021
        Chỉ HTTPS: Không
Dịch vụ S3 được kích hoạt: Có

 

2. Tạo một thùng chứa có quyền ghi đối tượng (tối thiểu).

Hành động đó cũng có thể được thực hiện từ UI hoặc CLI.

Trong giao diện người dùng:

Trong CLI:

Xem cách tạo thùng isi S3 trong Tài liệu tham khảo lệnh CLI PowerScale OneFS .

3. Tạo khóa cho người dùng để tải lên các đối tượng.

Lưu ý quan trọng:

    • Tên người dùng là tên được chỉ định trong giao diện, không phải tên từ hệ thống tệp hoặc nhà cung cấp (ví dụ: ở đây, người dùng quản trị là 1_admin_accid Người dùng S3)
    • Khóa chỉ được hiển thị khi tạo và không thể lấy lại sau. Hãy chắc chắn sao chép ngay .

Bây giờ PowerScale đã sẵn sàng, chúng ta có thể tiến hành triển khai Velero.

Cài đặt và cấu hình Velero

Chúng tôi giả định rằng tệp nhị phân Velero đã được cài đặt và có quyền truy cập vào cụm Kubernetes. Nếu không, hãy xem tài liệu cài đặt Velero để biết hướng dẫn triển khai.

Cấu hình Velero:

  1. Tạo một tệp tin với thông tin đăng nhập đã lấy trước đó từ PowerScale.
    $ cat ~/credentials-velero
    [mặc định]
    aws_access_key_id = 1_admin_accid
    aws_secret_access_key = 0***************************i
  2. Tùy chọn, hãy lấy chứng chỉ SSL PowerScale.
    Trong trường hợp của chúng tôi, điểm cuối HTTPS sử dụng chứng chỉ tự ký, vì vậy chúng tôi phải lấy chứng chỉ đó và chuyển cho Velero. Lưu ý rằng chúng tôi có thể sử dụng giao thức HTTP và có thể bỏ qua bước đó với chi phí là dữ liệu văn bản thuần túy. Để biết thêm thông tin về chứng chỉ tự ký trong bối cảnh Velero, hãy xem  https://velero.io/docs/v1.9/self-signed-certificates/ .
  3. Cài đặt Velero:
$ velero cài đặt \
    --nhà cung cấp aws \
    --plugins velero/velero-plugin-for-aws:v1.5.1 \
    --bucket velero-backup \
    --secret-file ./credentials-velero \
    --use-volume-snapshots=sai \
    --cacert ./ps2-cacert.pem \
    --backup-location-config vùng=powerscale, s3ForcePathStyle="true", s3Url=https://192.168.1.21:9021

 Lệnh trước đó cho thấy cách sử dụng Velero đơn giản và an toàn nhất.

Có thể thêm tham số để bật chế độ bảo vệ bằng snapshot. Mỗi trình điều khiển Dell CSI đều có hỗ trợ snapshot. Để tận dụng hỗ trợ đó, chúng tôi sử dụng lệnh cài đặt với phần bổ sung này:

cài đặt velero \
--features=BậtCSI \
--plugins=velero/velero-plugin-for-aws:v1.5.1,velero/velero-plugin-for-csi:v0.3.0 \
--use-volume-snapshots=đúng
...

Bây giờ khi các ảnh chụp nhanh CSI đã được bật, chúng ta có thể cho phép restic di chuyển dữ liệu ra khỏi các ảnh chụp nhanh đó vào mục tiêu sao lưu của mình bằng cách thêm:

--sử dụng-restic

Như bạn có thể thấy, chúng tôi đang sử dụng hình ảnh velero/velero-plugin-for-aws:v1.5.1, đây là hình ảnh mới nhất có sẵn tại thời điểm xuất bản bài viết này. Bạn có thể tải phiên bản hiện tại từ GitHub: https://github.com/vmware-tanzu/velero-plugin-for-aws

Sau khi cài đặt Velero xong, hãy kiểm tra xem mọi thứ đã chính xác chưa:

nhật ký kubectl -n triển khai velero/velero

Nếu có lỗi với chứng chỉ, bạn sẽ thấy lỗi đó ngay.

Bây giờ bạn có thể sao lưu và khôi phục tài nguyên Kubernetes của mình bằng các lệnh Velero thông thường . Ví dụ, để bảo vệ toàn bộ Kubernetes ngoại trừ kube-system, bao gồm dữ liệu có ảnh chụp nhanh PV:

velero sao lưu tạo sao lưu-tất cả --exclude-namespaces kube-system

Bạn có thể kiểm tra nội dung thực tế trực tiếp từ trình khám phá hệ thống tệp PowerScale:

Sau đây là bản demo:

Phần kết luận

Để dễ dàng bảo vệ các cụm Kubernetes nhỏ, Velero kết hợp với PowerScale S3 là giải pháp tuyệt vời. Nếu bạn đang tìm kiếm các tính năng rộng hơn (cho lượng dữ liệu lớn hơn hoặc nhiều đích đến hơn vượt ra ngoài Kubernetes), hãy xem xét Dell PowerProtect Data Manager , giải pháp bảo vệ dữ liệu toàn diện thế hệ tiếp theo.

Điều thú vị là Dell PowerProtect Data Manager sử dụng plug-in Velero để bảo vệ tài nguyên Kubernetes!