云服务器内容精选
-
安装Velero 首先前往OBS控制台或MinIO console界面,创建存放备份文件的桶并命名为velero。此处桶名称可自定义,但安装Velero时必须指定此桶名称,否则将无法访问导致备份失败,参见4。 原集群和目标集群中均需要安装部署Velero实例,安装步骤一致,分别用于备份和恢复。 CCE集群的Master节点不对外提供远程登录端口,您可通过kubectl操作集群完成Velero安装。 如果备份资源量较大,请调整Velero及Restic工具的cpu和内存资源(建议调整至1U1G及以上),请参考备份工具资源分配不足。 用于存放备份文件的对象存储桶需要是空桶。 从Velero官方发布路径https://github.com/vmware-tanzu/velero/releases下载最新的稳定版二进制文件,本文以Velero 1.7.0版本为例。原集群和目标集群中的安装过程一致,请参考如下步骤。 下载Velero 1.7.0版本的二进制文件。 wget https://github.com/vmware-tanzu/velero/releases/download/v1.7.0/velero-v1.7.0-linux-amd64.tar.gz 安装Velero客户端。 tar -xvf velero-v1.7.0-linux-amd64.tar.gz cp ./velero-v1.7.0-linux-amd64/velero /usr/local/bin 创建备份对象存储访问密钥文件credentials-velero。 vim credentials-velero 文件内容如下,其中的AK/SK请根据实际情况进行替换。使用OBS时,可参考获取访问密钥(AK/SK)获取AK/SK。如使用MinIO,此处AK/SK则为2中所创建的用户名及密码。 [default] aws_access_key_id = {AK} aws_secret_access_key = {SK} 部署Velero服务端。注意其中--bucket参数需要修改为已创建的对象存储桶名称,本例中为velero。关于更多自定义安装参数,请参考自定义安装Velero。 velero install \ --provider aws \ --plugins velero/velero-plugin-for-aws:v1.2.1 \ --bucket velero \ --secret-file ./credentials-velero \ --use-restic \ --use-volume-snapshots=false \ --backup-location-config region=cn-north-4,s3ForcePathStyle="true",s3Url=http://obs.cn-north-4.myhuaweicloud.com 表1 Velero安装参数说明 安装参数 参数说明 --provider 声明使用“aws”提供的插件类型。 --plugins 使用AWS S3兼容的API组件,本文使用的OBS和MinIO对象存储均支持该S3协议。 --bucket 用于存放备份文件的对象存储桶名称,需提前创建。 --secret-file 访问对象存储的密钥文件,即3中创建的“credentials-velero”文件。 --use-restic 使用Restic工具支持PV数据备份,建议开启,否则将无法备份存储卷资源。 --use-volume-snapshots 是否创建 VolumeSnapshotLocation 对象进行PV快照,需要提供快照程序支持。该值设为false。 --backup-location-config 对象存储桶相关配置,包括region、s3ForcePathStyle、s3Url等。 region 对象存储桶所在区域。 OBS:请根据实际区域填写,如“cn-north-4”。 MinIO:参数值为minio。 s3ForcePathStyle 参数值为“true”,表示使用S3文件路径格式。 s3Url 对象存储桶的API访问地址。 OBS:该参数值需根据对象存储桶地域决定,参数值为“http://obs.{region}.myhuaweicloud.com”。例如区域为北京四(cn-north-4),则参数值为“http://obs.cn-north-4.myhuaweicloud.com”。 MinIO:该参数值需根据MinIO安装节点的IP及暴露端口确定,参数值为“http://{minio所在节点的eip}:9000”。 说明: s3Url中的访问端口需填写MinIO的API端口,而非console端口。MinIO API端口默认为9000。 访问集群外安装的MinIO时,需填写其公网IP地址。 Velero实例将默认创建一个名为velero的namespace,执行以下命令可查看pod状态。 $ kubectl get pod -n velero NAME READY STATUS RESTARTS AGE restic-rn29c 1/1 Running 0 16s velero-c9ddd56-tkzpk 1/1 Running 0 16s 为防止在实际生产环境中备份时出现内存不足的情况,建议您参照备份工具资源分配不足,修改Restic和Velero分配的CPU和内存大小。 查看Velero工具与对象存储的对接情况,状态需要为available。 $ velero backup-location get NAME PROVIDER BUCKET/PREFIX PHASE LAST VALIDATED ACCESS MODE DEFAULT default aws velero Available 2021-10-22 15:21:12 +0800 CST ReadWrite true
-
安装MinIO MinIO 是一个兼容S3接口协议的高性能对象存储开源工具。若使用MinIO进行存放集群迁移的备份文件,您需要一台临时服务器用于部署MinIO并对外提供服务。若您使用OBS存放备份文件,请忽略此步骤,前往安装Velero。 MinIO的安装位置选择有如下几种: 集群外临时ECS 将MinIO服务端安装在集群外,能够保障集群发生灾难性故障时,备份文件不会受到影响。 集群内的空闲节点 您可以远程登录节点安装MinIO服务端,也可以选择容器化安装MinIO,请参考Velero官方文档https://velero.io/docs/v1.7/contributions/minio/#set-up-server。 如使用容器化安装MinIO: Velero官方文档提供的YAML文件中存储类型为empty dir,建议将其修改为HostPath或Local类型,否则容器重启后将永久丢失备份文件。 您需将MinIO服务对外提供访问,否则将无法在集群外下载备份文件,可选择将Service修改为NodePort类型或使用其他类型的公网访问服务。 无论使用何种方法进行部署,安装MinIO的服务器需要有足够的存储空间,且均需要绑定EIP并在安全组中开放MinIO的服务端口,否则将无法上传(下载)备份文件。 本示例选择在一台集群外的临时ECS上安装MinIO,步骤如下。 下载MinIO对象存储。 mkdir /opt/minio mkdir /opt/miniodata cd /opt/minio wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod +x minio 设置MinIO的用户名及密码。 此方法设置的用户名及密码为临时环境变量,在服务重启后需要重新设定,否则会使用默认root凭据minioadmin:minioadmin来创建服务。 export MINIO_ROOT_USER=minio export MINIO_ROOT_PASSWORD=minio123 创建服务,其中/opt/miniodata/为MinIO 存储数据的本地磁盘路径。 MinIO的API端口默认为9000,console端口默认为随机生成,您可使用--console-address参数指定console访问端口。 ./minio server /opt/miniodata/ --console-address ":30840" & 安装MinIO工具的服务器需开放防火墙、安全组中对应的API和console端口,否则将无法访问对象桶。 浏览器访问http://{minio所在节点的eip}:30840,可进入MinIO console界面。
-
前提条件 原始自建集群Kubernetes版本需1.10及以上,且集群可正常使用DNS与互联网服务。 若您使用OBS存放备份文件,需已有OBS操作权限用户的AK/SK,请参考获取访问密钥(AK/SK)。 若您使用MinIO存放备份文件,则安装MinIO的服务器需要绑定EIP并在安全组中开放MinIO的API端口和Console端口。 已创建迁移的目标CCE集群。 原集群和目标集群中需要至少各拥有一个空闲节点,节点规格建议为4U8G及以上。
-
目标集群应用恢复(E-Backup) 如果在CCE中使用E-Backup恢复集群,可以使用如下步骤。 将某个立即备份作为数据源,恢复应用到另一个集群中,全场景适用。 编辑 Restore 模板,如下所示,随后通过 kubectl create 命令创建。 apiVersion: velero.io/v1kind: Restoremetadata: name: restore-01 namespace: velerospec: backupName: wordpress-backup includedNamespaces: - default storageClassMapping: local: csi-disk imageRepositoryMapping: quay.io/coreos: swr.cn-north-4.myhuaweicloud.com/everest backupName:指定某个立即备份作为数据源,对该备份中的内容进行恢复,必填项。 storageClassMapping:改变备份资源PV、PVC等使用的storageClassName,要求StorageClass类型相同。本示例中将本地local改为CCE支持的csi-disk。 imageRepositoryMapping:改变备份资源的images字段,用于仓库的映射关系,不包含镜像名字和标签的改变(防止迁移和升级耦合在一起),比如:quay.io/coreos/etcd:2.5 搬迁到SWR后,使用本地镜像仓库下 swr.cn-north-4.myhuaweicloud.com/everest/etcd:2.5,配置格式为:quay.io/coreos: swr.cn-north-4.myhuaweicloud.com/everest 这里如果配置了storageClassMapping和imageRepositoryMapping,那镜像更新适配和StorageClass更新适配就无需再次适配。 其他参数请参见E-Backup。 恢复执行后,可通过如下命令查看恢复状态。 $ kubectl -n velero get restores restore-01 -o yaml | grep " phase" phase: Completed 状态Completed表示恢复完成,此时可以去CCE控制台查看具体应用恢复情况。
-
前提条件 请在迁移前提前清理原集群中异常的Pod资源。当Pod状态异常但是又挂载了PVC的资源时,在集群迁移后,PVC状态会处于pending状态。 请确保CCE侧集群中没有与被迁移集群侧相同的资源,因为Velero工具在检测到相同资源时,默认不进行恢复。 为确保集群迁移后容器镜像资源可以正常拉取,请将镜像资源迁移至容器镜像服务(SWR),具体操作方法请参见客户端上传镜像。 CCE不支持ReadWriteMany的云硬盘存储,在原集群中存在该类型资源时,需要先修改为ReadWriteOnce。 Velero集成Restic工具对存储卷进行备份还原,当前不支持HostPath类型的存储卷,详情请参见Restic限制。若您需备份该类型的存储卷,请参考无法备份HostPath类型存储卷将HostPath类型替换为Local类型。当备份任务中存在HostPath类型的存储,该类型存储卷将会被自动跳过并产生Warning信息,并不会导致备份失败。
-
目标集群安装E-Backup插件 E-Backup为CCE提供集群备份恢复能力。如在CCE中使用E-Backup恢复,需要安装插件并创建存储库。 安装E-Backup插件 登录CCE控制台,单击左侧导航栏的“插件市场”,找到e-backup插件,单击e-backup插件下的“安装”。 在安装插件页面,选择要安装的集群,配置参数,然后单击“安装”。 当前支持配置如下参数。 volumeWorkerNum:备份volume的工作并发数量,默认为3。 创建密钥 获取访问密钥。 登录CCE控制台,在右上角用户名下选择“我的凭证”,在左侧选择“访问密钥”,单击“新增访问密钥”。 创建密钥文件,并通过 base64 格式化成字符串。 # 创建密钥文件$ vi credential-for-huawei-obsHUAWEI_CLOUD_ACCESS_KEY_ID=your_access_keyHUAWEI_CLOUD_SECRET_ACCESS_KEY=your_secret_key# 使用 base64 格式化字符串$ base64 -w 0 credential-for-huawei-obsXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHWOBS 创建Secret。 按如下YAML文件创建Secret。 apiVersion: v1kind: Secretmetadata: labels: secret.everest.io/backup: 'true' #标识该secret用于E-Backup访问备份存储库 name: secret-secure-opaque namespace: velero #必须和E-Backup置于同一namespace,取值必须为velerotype: cfe/secure-opaquedata: # credential文件经过base64编码后得到的字符串 cloud: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHWOBS secret 所在 namespace 必须和 E-Backup 实例所在namespace一致,即 velero。 secret.data 中存储的是访问对象存储服务的密钥,其中 key 必须为 cloud,而 value 为2中通过 base64 编码得到的字符串。一般通过 base64 编码后显示的字符串会有换行符,请在写入 secret.data 中时手动去除这些换行符。 secret 需要打上标签“secret.everest.io/backup: true”,标识该 secret 是用于备份存储库的管理。 创建存储库 这里的备份存储库是指 E-Backup 用于获取和检测后端对象存储服务相关信息的 K8s 资源对象。 apiVersion: velero.io/v1kind: BackupStorageLocationmetadata: name: backup-location-001 namespace: velero #必须和E-Backup处于同一namespacespec: config: endpoint: obs.cn-north-4.myhuaweicloud.com # OBS的endpoint credential: name: secret-secure-opaque # 此前创建的secret的名字 key: cloud # secret.data中的key值 objectStorage: bucket: velero # OBS中的桶名 provider: huawei # 使用OBS服务 除了 prefix 字段为选填外,其他字段必填。provider 为固定值 huawei。 endpoint 可以到地区和终端节点获取,都需要保证集群内各节点可访问该地址。当endpoint 不带协议头时(http或者https),默认启用 https。 credential中的 name 和 key 需要配置正确,否则 E-Backup 无法访问后端存储库。 创建完成后等待30s用于备份存储库的检查和同步等工作,随后查看该备份存储库状态是否可用,PHASE 为 Available 表示可用,其他表示不可用。 $ kubectl get backupstoragelocations.velero.io backup-location-001 -n velero NAME PHASE LAST VALIDATED AGE DEFAULTbackup-location-001 Available 23s 23m 此处如果PHASE 长时间没有变成Available,可通过查看E-Backup的日志定位问题。E-Backup安装后会在velero命名空间创建一个名为velero的工作负载,查看velero的日志即可。
-
操作场景 本节介绍在自建集群中使用开源Velero备份,在CCE集群使用E-Backup插件做恢复的方法。 本文使用Wordpress应用为例,将自建Kubernetes集群中的应用整体迁移到CCE集群。Wordpress应用包含Wordpress和MySQL两个组件,均为容器化实例,分别绑定了两个Local类型的本地存储卷,并通过NodePort服务对外提供访问。 迁移前通过浏览器访问Wordpress站点,创建站点名称为“Migrate to CCE”,并发布一篇文章用于验证迁移后PV数据的完整性。Wordpress中发布的文章会被存储在MySQL数据库的“wp_posts”表中,若迁移成功,数据库中的内容也将会被全量搬迁至新集群,可依此进行PV数据迁移校验。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格