This plugin is used for saving and retrieving backup data on JDCloud OSS as an object storage plugin. The backup includes metadata files of Kubernetes resources and CSI objects, as well as the progress of asynchronous operations. It is also used to store result data from backups and restores, including log files, warning/error files, and more.
Features
JDCloud OSS Integration: Seamless integration with JDCloud Object Storage Service
Kubernetes Backup: Full support for Kubernetes resource backup and restore
CSI Support: Compatible with Container Storage Interface (CSI) snapshots
Asynchronous Operations: Handles long-running backup and restore operations
Multi-namespace Support: Backup and restore across multiple Kubernetes namespaces
Secure Credentials: Secure handling of cloud provider credentials
Prerequisites
JKE Cluster or other Kubernetes Cluster
Git
Docker
Docker-buildx
Velero CLI (v1.17.1 or later)
Deployment
Step 1: Prepare Environment
Log in to a node in the JKE Cluster or other Kubernetes Cluster and connect to the cluster.
Install the Velero CLI tool.
Download the appropriate Velero CLI binary for your architecture:
<Your Endpoint>: Your JDCloud OSS endpoint (e.g., https://s3.cn-north-1.jdcloud-oss.com)
📝 Configuration Notes:
Private Registry: If using a private container registry, ensure your Kubernetes cluster can pull images from it. You may need to configure image pull secrets.
Endpoint Format: Use the correct JDCloud OSS endpoint format, typically https://s3.<region>.jdcloud-oss.com
Region Values: Common regions include cn-north-1, cn-south-1, cn-east-1. Check JDCloud documentation for your specific region.
Bucket Naming: Bucket names must be globally unique across JDCloud OSS
Prefix: The prefix velero-backups/ helps organize backup files in your bucket
Step 5: Verify Installation
Check the storage location status:
velero backup-location get
The expected output:
NAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT
default jdcloud.com/jdcloud <Your Bucket>/<Your prefix> Available 2026-01-04 15:48:35 +0800 CST ReadWrite true
Available indicates a successful installation.
Step 6: Create Your First Backup
Create a test backup of all resources in the default namespace:
Backup request "default-backup" submitted successfully.
Waiting for backup to complete. You may safely press ctrl-c to stop waiting - your backup will continue in the background.
..........
Backup completed with status: Completed. You may check for more information using the commands `velero backup describe default-backup` and `velero backup logs default-backup`.
Check backup status:
velero backup get
The expected output:
NAME STATUS ERRORS WARNINGS CREATED EXPIRES STORAGE LOCATION SELECTOR
default-backup Completed 0 0 2026-01-04 15:52:39 +0800 CST 29d default <none>
Status meanings:
Completed: Backup finished successfully
InProgress: Backup is still running
Failed: Backup encountered errors
View backup details:
# Get detailed information about the backup
velero backup describe default-backup --details
# View backup logs for troubleshooting
velero backup logs default-backup
Step 7: Restore from Backup
Optional - Test restore: Delete resources in the default namespace to test restore functionality:
Restore request "restore-default" submitted successfully.
Waiting for restore to complete. You may safely press ctrl-c to stop waiting - your restore will continue in the background.
......
Restore completed with status: Completed. You may check for more information using the commands `velero restore describe restore-default` and `velero restore logs restore-default`.
Check restore status:
velero restore get
The expected output:
NAME BACKUP STATUS STARTED COMPLETED ERRORS WARNINGS CREATED SELECTOR
restore-default default-backup Completed 2026-01-04 15:56:38 +0800 CST 2026-01-04 15:56:44 +0800 CST 0 3 2026-01-04 15:56:38 +0800 CST <none>
⚠️ Warning: This will permanently delete the backup from storage. Ensure you have other backups or don’t need this data.
The expected output:
Are you sure you want to continue (Y/N)? Y
Request to delete backup "default-backup" submitted successfully.
The backup will be fully deleted after all associated data (disk snapshots, backup files, restores) are removed.
List All Backups
velero backup get
Uninstall Velero
If you need to completely remove Velero from your cluster:
Velero Plugin For JDCloud
Velero Plugin For JDCloud
Seamless Kubernetes Backup & Restore with JDCloud Object Storage
🐛 Report a Bug · ✨ Request a Feature · 💬 Ask a Question
📑 Table of Contents
Overview
This plugin is used for saving and retrieving backup data on JDCloud OSS as an object storage plugin. The backup includes metadata files of Kubernetes resources and CSI objects, as well as the progress of asynchronous operations. It is also used to store result data from backups and restores, including log files, warning/error files, and more.
Features
Prerequisites
Deployment
Step 1: Prepare Environment
Log in to a node in the JKE Cluster or other Kubernetes Cluster and connect to the cluster.
Install the Velero CLI tool.
Download the appropriate Velero CLI binary for your architecture:
Extract Velero:
Step 2: Get Plugin Image
You have two options to obtain the plugin image:
Option A: Use Pre-built Image (Recommended)
Pull the official image from Docker Hub:
Option B: Build from Source
Clone the Velero plugin repository:
Build the Docker image:
Step 3: Configure JDCloud OSS
Create a new OSS bucket:
Create a credentials configuration file:
Add the following content:
Step 4: Install Velero
Install Velero using the CLI tool:
Replace the following placeholders:
<Your Bucket>: Your JDCloud OSS bucket name<Your Endpoint>: Your JDCloud OSS endpoint (e.g.,https://s3.cn-north-1.jdcloud-oss.com)Step 5: Verify Installation
Check the storage location status:
The expected output:
Availableindicates a successful installation.Step 6: Create Your First Backup
Create a test backup of all resources in the
defaultnamespace:The expected output:
Check backup status:
The expected output:
Status meanings:
Completed: Backup finished successfullyInProgress: Backup is still runningFailed: Backup encountered errorsView backup details:
Step 7: Restore from Backup
Optional - Test restore: Delete resources in the
defaultnamespace to test restore functionality:Set backup location to read-only mode (recommended during restore):
Restore from backup:
The expected output:
Check restore status:
The expected output:
Status meanings:
Completed: Restore finished successfullyInProgress: Restore is still runningFailed: Restore encountered errorsView restore details:
Restore backup location to read-write mode:
Step 8: Manage Backups
Delete a Backup
The expected output:
List All Backups
Uninstall Velero
If you need to completely remove Velero from your cluster:
Troubleshooting
Common Issues and Solutions
1. Backup Location Not Available
Symptoms:
velero backup-location getshows status asUnavailableSolutions:
2. Image Pull Errors
Symptoms: Velero pods stuck in
ImagePullBackOfforErrImagePullSolutions:
3. Permission Issues
Symptoms: Backup/restore operations fail with permission errors
Solutions:
4. Backup/Restore Failures
Symptoms: Operations fail with various error messages
Debugging Steps:
Getting Help
Contributors
Star History