Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 使用CSI插件使用Velero备份GKE群集时,无法将GCP永久磁盘PVC恢复到另一个区域_Kubernetes_Google Cloud Platform_Backup_Google Kubernetes Engine_Velero - Fatal编程技术网

Kubernetes 使用CSI插件使用Velero备份GKE群集时,无法将GCP永久磁盘PVC恢复到另一个区域

Kubernetes 使用CSI插件使用Velero备份GKE群集时,无法将GCP永久磁盘PVC恢复到另一个区域,kubernetes,google-cloud-platform,backup,google-kubernetes-engine,velero,Kubernetes,Google Cloud Platform,Backup,Google Kubernetes Engine,Velero,我正在尝试使用Velero作为GKE私有集群的多个GCP区域(例如:europe-north1和europe-west4)的Google云平台中的备份和灾难恢复工具。我能够在同一地区使用velero成功地进行备份和恢复(备份europe-north1中的gke群集,并恢复到europe-north1中的另一个gke群集),没有任何问题。这很好,因为快照存储在两个集群的同一区域(europe-north1) 但我想使用velero作为GKE集群的灾难恢复工具,以便我可以备份欧洲-north1地区的

我正在尝试使用Velero作为GKE私有集群的多个GCP区域(例如:europe-north1和europe-west4)的Google云平台中的备份和灾难恢复工具。我能够在同一地区使用velero成功地进行备份和恢复(备份europe-north1中的gke群集,并恢复到europe-north1中的另一个gke群集),没有任何问题。这很好,因为快照存储在两个集群的同一区域(europe-north1)

但我想使用velero作为GKE集群的灾难恢复工具,以便我可以备份欧洲-north1地区的GKE集群,并将其恢复到欧洲-west4地区。在进一步的研究中,我发现通过对维莱罗的支持,我将能够实现同样的目标。因此,我遵循了将CSI插件与velero一起使用的指导原则,但我仍然无法将永久磁盘PVC恢复到另一个区域。快照被视为多区域快照(例如,欧盟)。但是当我运行velerorestore命令时,pod创建(我使用wordpress和mysql pod作为示例)一直处于“挂起”状态

kubectl Descripte pod(mysql和wordpress)给出以下错误:

   Normal   NotTriggerScaleUp  72s (x31 over 6m12s)  cluster-autoscaler  pod didn't trigger scale-up (it wouldn't fit if a new node is added):
  Warning  FailedScheduling   60s (x11 over 6m14s)  default-scheduler   0/4 nodes are available: 4 node(s) had volume node affinity conflict.
这个错误是因为PVC创建的google持久磁盘与GKE集群位于不同的区域。检查磁盘时,我可以看到restore命令创建了两个磁盘,但它们仍然在europe-north1区域(主gke群集区域)中创建,而不是在辅助gke群集所在的europe-west4区域中创建

由于这是velero(CSI插件)的一项新功能,我找不到在GCP中使用它的任何文档(有一个文档显示)

CSI插件使用velero备份的最低要求:

kubernetes version : 1.17
velero version: 1.4.2
维列罗版本

velero version
Client:
        Version: v1.4.2
        Git commit: 56a08a4d695d893f0863f697c2f926e27d70c0c5
Server:
        Version: v1.4.2
GKE群集kubernetes版本(使用GcePersistentDiskCsiDriver=已启用的加载项创建的GKE群集):

主要地区:

europe-north1
第二(DR)区域:

用于安装velero服务器(启用CSI插件)的命令:

我为此参考的其他文件:


任何帮助都将不胜感激。

在GCP中,默认情况下,卷快照是多区域的(但单个地理区域是美国、欧洲或亚洲)。我已在GCP中成功测试了从us-central1到us-east4的状态集的跨区域恢复。但需要注意的是,我使用了区域磁盘并创建了特定于区域/区域的存储类,并配置了
允许的拓扑。这是我的回复:

种类:StorageClass
apiVersion:storage.k8s.io/v1
元数据:
注释:
storageclass.kubernetes.io/is-default-class:“true”
名称:区域pd ssd csi storageclass
供应人:pd.csi.storage.gke.io
参数:
类型:pd ssd
复制类型:区域pd
回收策略:删除
volumeBindingMode:WaitForFirstConsumer
允许的拓扑:
-匹配标签表达式:
-关键字:topology.gke.io/zone
价值观:
-美国东部4-b
-us-east4-c
这是备份区域的SC:

种类:StorageClass
apiVersion:storage.k8s.io/v1
元数据:
注释:
storageclass.kubernetes.io/is-default-class:“true”
名称:区域pd ssd csi storageclass
供应人:pd.csi.storage.gke.io
参数:
类型:pd ssd
#复制类型为无或区域pd之一,默认为无(分区pd)
复制类型:区域pd
回收策略:删除
volumeBindingMode:WaitForFirstConsumer
允许的拓扑:
-匹配标签表达式:
-关键字:topology.gke.io/zone
价值观:
-美国中央银行
-us-L1-b

可以在没有区域磁盘的情况下使用
AllowedTopology
,但EBS CSI驱动程序不支持该参数(据我所知)。

我确信您必须将卷快照复制到目标区域,并相应地更新卷快照内容。不过我还没有试过。这里有一些ref-@Faheem当我使用velero和csi插件时,我的理解是velero应该能够自动化这个过程(并且它正在创建多区域快照,这意味着它可以作为辅助区域的PV使用)。你能分享一些涉及velero在不同区域创建快照的文档吗?据我所知,它将在与原始卷相同的区域创建快照。这在velero的github版本中提到,在GCP中使用带有CSI插件的新版本velero是可能的。但是我找不到合适的文档。这将是GCP的能力,而不是Velero,然而,这不重要。谢谢你让我知道。谢谢@Kurt Madel。一旦我有空,我将研究这个配置,并在这里更新我的发现。目前,我正在研究基于Google Filestore的PV的备份和恢复,并将restic集成到GKE集群的多区域备份和灾难恢复中。
europe-north1
europe-west4
velero install \ 
--features=EnableCSI \ 
--provider=gcp \ 
--image=gcr.io/$project/velero:v1.4.2  \ 
--plugins=gcr.io/$project/velero-plugin-for-gcp:v1.1.0,gcr.io/$project/velero-plugin-for-csi:v0.1.0 \ 
--bucket=$storagebucket \ 
--secret-file=$HOME/./velero-backup-storage-sa-key.json