提供备份¶
操作员将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包含以下内容的文件。
apiVersion:v1种类:秘密元数据:名字:cluster1-s3-credentials类型:不透明的数据:AWS_ACCESS_KEY_ID:UkVQTEFDRS1XSVRILUFXUy1BQ0NFU1MtS0VZAWS_SECRET_ACCESS_KEY:UkVQTEFDRS1XSVRILUFXUy1TRUNSRVQtS0VZ
请注意
下面的命令可以用来从一个纯文本字符串中获取一个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:类型:s3s3:桶:S3-BACKUP-BUCKET-NAME-HERE地区:us-west-2credentialsSecret:cluster1-s3-credentials
如果使用一些与S3兼容的存储而不是原始的Amazon S3,则endpointURL需要在s3子项,指向用于备份的实际云,并且特定于云提供商。例如,使用谷歌云涉及到后endpointUrl:
endpointUrl:https://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包含以下内容的文件。
apiVersion:v1种类:秘密元数据:名字:cluster1-azure-credentials类型:不透明的数据:AZURE_STORAGE_ACCOUNT_NAME:UkVQTEFDRS1XSVRILUFXUy1BQ0NFU1MtS0VZAZURE_STORAGE_ACCOUNT_KEY:UkVQTEFDRS1XSVRILUFXUy1TRUNSRVQtS0VZ
请注意
下面的命令可以用来从一个纯文本字符串中获取一个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 >credentialsSecret:cluster1-azure-credentials
本小节中的选项将在运营商自定义资源选项。
应该单独提到的一个选项是credentialsSecret这是一个Kubernetes秘密备份。此键的值应与用于创建秘密对象(cluster1-azure-credentials在最后一个例子中)。
按需备份¶
要进行按需备份,用户应首先在部署/ cr.yaml配置文件:设置backup.enabled关键真正的配置备份存储backup.storages分段。
当部署/ cr.yaml文件包含正确配置的密钥,并与kubectl命令,使用一个特殊的备份配置YAML文件其内容如下:
备份的名字在
metadata.name键,雷竞技下载官网MySQL集群名称的Percona发行版在
clusterName键,存储的名字从
部署/ cr.yaml在spec.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
当知道正确的备份名称和集群名称时,可以按照以下方式进行备份恢复。
中设置适当的键
部署/ restore.yaml文件。集
spec.clusterName要在其上恢复备份的目标集群名称的键,上恢复备份相同用于保存此备份的基于kubernetes的集群,set
spec.backupName你的后援名字的钥匙,如果您正在基于kubernetes的集群上恢复备份不同的从您用来保存此备份的一个,set
spec.backupSource分段代替spec.backupName字段指向适当的云存储:的
backupSource键应包含目的地key等于S3桶有一个特别的s3: / /前缀,后面跟着必要的S3配置键,与中的相同部署/ cr.yaml文件:…backupSource:目的地:s3: / / S3-BUCKET-NAME / BACKUP-NAMEs3:桶:S3-BUCKET-NAMEcredentialsSecret:my-cluster-name-backup-s3地区:us-west-2endpointUrl:https://URL-OF-THE-S3-COMPATIBLE-STORAGE…的
backupSource键应包含目的地键等于Azure Blob容器和备份名称,后面跟着必要的Azure配置键,与中的相同部署/ cr.yaml文件:…backupSource:目的地:AZURE-CONTAINER-NAME / BACKUP-NAMEazure:容器:AZURE-CONTAINER-NAMEcredentialsSecret:my-cluster-azure-secret…- 恢复完成后,可以按照如下步骤启动实际恢复流程。
美元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 >