Schedule
Select the first option to perform a one-time backup, or select the second option to schedule recurring backups. Selecting Recurring Backups lets you configure following two fields:
- Schedule: This field accepts
- Standard cron expressions, such as
- Descriptors, such as
"@midnight"
or"@every 1h30m"
- Retention Count: This value specifies how many backup files must be retained. If files exceed the given retentionCount, the oldest files will be deleted. The default value is 10.
Encryption
The rancher-backup gathers resources by making calls to the kube-apiserver. Objects returned by apiserver are decrypted, so even if encryption At rest is enabled, even the encrypted objects gathered by the backup will be in plaintext.
To avoid storing them in plaintext, you can use the same encryptionConfig file that was used for at-rest encryption, to encrypt certain resources in your backup.
The operator consumes this encryptionConfig as a Kubernetes Secret, and the Secret must be in the operator’s namespace. Rancher installs the rancher-backup
operator in the cattle-resources-system
namespace, so create this encryptionConfig secret in that namespace.
To create the Secret, the encryption configuration file must be named encryption-provider-config.yaml
, and the --from-file
flag must be used to create this secret.
Save the EncryptionConfiguration
in a file called encryption-provider-config.yaml
and run this command:
This will ensure that the secret contains a key named encryption-provider-config.yaml
, and the operator will use this key to get the encryption configuration.
The Encryption Config Secret
dropdown will filter out and list only those Secrets that have this exact key
In the example command above, the name encryptionconfig
can be changed to anything.
Storage Location
Selecting the first option stores this backup in the storage location configured while installing the rancher-backup chart. The second option lets you configure a different S3 compatible storage provider for storing the backup.
The S3 storage location contains the following configuration fields:
- Bucket Name: The name of the S3 bucket where backup files will be stored.
- Region (optional): The AWS region where the S3 bucket is located. This field isn’t needed for configuring MinIO.
- Folder (optional): The name of the folder in the S3 bucket where backup files will be stored.
- Endpoint: The that is used to access S3 in the region of your bucket.
- Endpoint CA (optional): This should be the Base64 encoded CA cert. For an example, refer to the example S3 compatible configuration.
- Skip TLS Verifications (optional): Set to true if you are not using TLS.
s3:
credentialSecretName: s3-creds
credentialSecretNamespace: default
bucketName: rancher-backups
folder: rancher
region: us-west-2
endpoint: s3.us-west-2.amazonaws.com
apiVersion: v1
kind: Secret
metadata:
name: creds
type: Opaque
data:
accessKey: <Enter your access key>
secretKey: <Enter your secret key>
Make sure to encode the keys to base64 in YAML file. Run the following command to encode the keys.
There are two ways to set up the rancher-backup
operator to use S3 as the backup storage location.
One way is to configure the credentialSecretName
in the Backup custom resource, which refers to AWS credentials that have access to S3.
If the cluster nodes are in Amazon EC2, the S3 access can also be set up by assigning IAM permissions to the EC2 nodes so that they can access S3.
To allow a node to access S3, follow the instructions in the to create an IAM role for EC2. When you add a custom policy to the role, add the following permissions, and replace the Resource
with your bucket name:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::rancher-backups"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::rancher-backups/*"
]
}
}
Examples
For example Backup custom resources, refer to