跳到内容

提供备份

操作员将MySQL备份存储在Kubernetes集群之外:onAmazon S3或S3兼容的存储,或在Azure Blob存储

图像

操作员目前允许进行集群备份随需应变(即随时手动操作)。它使用雷竞技下载官网Percona XtraBackup工具。

控件控制备份备份部份部署/ cr.yaml文件。本节包含backup.enabled键(它应该设置为真正的选项中的选项数目存储分段,需要访问云存储备份。

备份在Amazon S3或S3兼容的存储上

由于备份是单独存储在Amazon S3上的,因此AWS_ACCESS_KEY_ID而且AWS_SECRET_ACCESS_KEY应该出现在Kubernetes集群上。应该创建带有这些base64编码密钥的secrets文件:例如部署/ backup-s3.yaml包含以下内容的文件。

apiVersionv1种类秘密元数据名字cluster1-s3-credentials类型不透明的数据AWS_ACCESS_KEY_IDUkVQTEFDRS1XSVRILUFXUy1BQ0NFU1MtS0VZAWS_SECRET_ACCESS_KEYUkVQTEFDRS1XSVRILUFXUy1TRUNSRVQtS0VZ

请注意

下面的命令可以用来从一个纯文本字符串中获取一个base64编码的字符串:

回声- n“纯文本字符串”|base64——包装0
回声- n“纯文本字符串”|base64

名字值是Kubernetes秘密将进一步使用的名称,以及AWS_ACCESS_KEY_ID而且AWS_SECRET_ACCESS_KEY是访问S3存储的键(显然,它们应该包含适当的值以使这种访问成为可能)。为了有效果,秘密文件应该应用适当的命令来创建秘密对象,例如。Kubectl apply -f deploy/backup-s3.yaml(Kubernetes)。

访问s3兼容云以存储备份所需的所有数据都应放入backup.storages分段。这里有一个例子部署/ cr.yaml使用Amazon S3存储进行备份:

...备份启用真正的...存储s3-us-west类型s3s3S3-BACKUP-BUCKET-NAME-HERE地区us-west-2credentialsSecretcluster1-s3-credentials

如果使用一些与S3兼容的存储而不是原始的Amazon S3,则endpointURL需要在s3子项,指向用于备份的实际云,并且特定于云提供商。例如,使用谷歌云涉及到endpointUrl:

endpointUrlhttps://storage.googleapis.com

你也可以用前缀选项来指定S3桶内备份的路径(子文件夹)。如果不设置prefix,备份文件将保存在根目录下。

本小节中的选项将在运营商自定义资源选项

应该单独提到的一个选项是credentialsSecret这是一个Kubernetes秘密备份。此键的值应与用于创建秘密对象(cluster1-s3-credentials在最后一个例子中)。

Microsoft Azure Blob存储上的备份

因为备份是单独存储在Azure Blob存储,一个秘密AZURE_STORAGE_ACCOUNT_NAME而且AZURE_STORAGE_ACCOUNT_KEY应该出现在Kubernetes集群上。应该创建带有这些base64编码密钥的secrets文件:例如部署/ backup-azure.yaml包含以下内容的文件。

apiVersionv1种类秘密元数据名字cluster1-azure-credentials类型不透明的数据AZURE_STORAGE_ACCOUNT_NAMEUkVQTEFDRS1XSVRILUFXUy1BQ0NFU1MtS0VZAZURE_STORAGE_ACCOUNT_KEYUkVQTEFDRS1XSVRILUFXUy1TRUNSRVQtS0VZ

请注意

下面的命令可以用来从一个纯文本字符串中获取一个base64编码的字符串:

回声- n“纯文本字符串”|base64——包装0
回声- n“纯文本字符串”|base64

名字值是Kubernetes秘密将进一步使用的名称,以及AZURE_STORAGE_ACCOUNT_NAME而且AZURE_STORAGE_ACCOUNT_KEY凭据将用于访问存储(显然,它们应该包含适当的值以使这种访问成为可能)。为了有效果,秘密文件应该应用适当的命令来创建秘密对象,例如。Kubectl apply -f deploy/backup-azure.yaml(Kubernetes)。

访问Azure Blob存储以存储备份所需的所有数据都应放入backup.storages分段。这里有一个例子部署/ cr.yaml它使用Azure Blob存储进行备份:

...备份启用真正的...存储azure-blob类型azureazure容器< your-container-name >credentialsSecretcluster1-azure-credentials

本小节中的选项将在运营商自定义资源选项

应该单独提到的一个选项是credentialsSecret这是一个Kubernetes秘密备份。此键的值应与用于创建秘密对象(cluster1-azure-credentials在最后一个例子中)。

按需备份

要进行按需备份,用户应首先在部署/ cr.yaml配置文件:设置backup.enabled关键真正的配置备份存储backup.storages分段。

部署/ cr.yaml文件包含正确配置的密钥,并与kubectl命令,使用一个特殊的备份配置YAML文件其内容如下:

  • 备份的名字metadata.name键,

  • 雷竞技下载官网MySQL集群名称的Percona发行版clusterName键,

  • 存储的名字部署/ cr.yamlspec.storageName关键。

  • S3备份终结器metadata.finalizers.delete-backupkey(当手动或计划删除相应的备份对象时,它会触发从S3桶中实际删除备份文件)。

该文件的示例为部署/备份/ backup.yaml

当使用kubectl配置和应用备份目标时,应用-f deploy/cr. conf。执行Yaml命令,按如下步骤进行备份:

kubectl应用- f部署/ backup.yaml

请注意

将备份设置存储在单独的文件中,可以通过将其内容传递给kubectl应用命令如下:

<apiVersion: ps.雷竞技下载官网percona.com/v1alpha1: Perc雷竞技下载官网onaServerMySQLBackup元数据:名称:backup1终结器:——delete-backup规范:clusterName: cluster1storageName: s3-us-westEOF

从以前保存的备份恢复集群

备份不仅可以在备份所在的Kubernetes集群上恢复,还可以在任何安装了Operator的基于Kubernetes的环境上恢复。

请注意

当恢复到一个新的基于kubernetes的环境时,确保它的Secrets对象具有与原始集群中相同的用户密码。更多关于秘密的细节可以在系统用户

恢复配置文件的示例为部署/备份/ restore.yaml.方法中描述了可以在其中使用的选项恢复选项参考

恢复以前保存的备份需要以下操作:

  • 确保集群正在运行。

  • 找出正确的名称备份集群.可用的备份可以用下面的命令列出:

    kubectl得到ps-backup

    请注意

    显然,您只能在先前进行备份的同一集群上进行此检查。

    下面的命令将列出当前基于kubernetes的环境中MySQL集群的Percona分布名称雷竞技下载官网:

    kubectl得到ps

当知道正确的备份名称和集群名称时,可以按照以下方式进行备份恢复。

  1. 中设置适当的键部署/ restore.yaml文件。

    • spec.clusterName要在其上恢复备份的目标集群名称的键,

    • 上恢复备份相同用于保存此备份的基于kubernetes的集群,setspec.backupName你的后援名字的钥匙,

    • 如果您正在基于kubernetes的集群上恢复备份不同的从您用来保存此备份的一个,setspec.backupSource分段代替spec.backupName字段指向适当的云存储:

      backupSource键应包含目的地key等于S3有一个特别的s3: / /前缀,后面跟着必要的S3配置键,与中的相同部署/ cr.yaml文件:

      ...backupSource目的地s3: / / S3-BUCKET-NAME / BACKUP-NAMEs3S3-BUCKET-NAMEcredentialsSecretmy-cluster-name-backup-s3地区us-west-2endpointUrlhttps://URL-OF-THE-S3-COMPATIBLE-STORAGE...

      backupSource键应包含目的地键等于Azure Blob容器和备份名称,后面跟着必要的Azure配置键,与中的相同部署/ cr.yaml文件:

      ...backupSource目的地AZURE-CONTAINER-NAME / BACKUP-NAMEazure容器AZURE-CONTAINER-NAMEcredentialsSecretmy-cluster-azure-secret...
      1. 恢复完成后,可以按照如下步骤启动实际恢复流程。
    kubectl应用- f部署/ restore.yaml

请注意

将备份设置存储在单独的文件中,可以通过将其内容传递给kubectl应用命令如下:

<apiVersion:“ps.p雷竞技下载官网ercona.com/v1alpha1”:“Perco雷竞技下载官网naServerMySQLRestore”元数据:名称:“restore1”规范:clusterName:“cluster1”backupName:“backup1”EOF

删除不需要的备份

手动删除以前保存的备份只需要备份名。该名称可以从以下命令返回的可用备份列表中获取:

kubectl得到ps-backup

在已知备份名称的情况下,删除备份的操作如下:

kubectl删除ps-backup / < backup-name >

最近更新:2023-03-30
Baidu
map