无法使用Kubernetes Google计算平台中其他节点已使用的现有PersistentVolume

无法使用Kubernetes Google计算平台中其他节点已使用的现有PersistentVolume,kubernetes,google-compute-engine,Kubernetes,Google Compute Engine,我试图留在谷歌云平台的免费层上,它只允许3个节点和30Gb的存储空间,在创建集群的地方,每个节点都映射到每个10Gb的存储空间 当我尝试装载persistentVolume并声明现有磁盘时,错误显示: 为卷“myapp pv”附加失败:googleapi:错误400:磁盘资源“projects/myapp dev/zones/us-central1-a/disks/gke-myapp-dev-clus-default-pool-64e30c4b-dvkc”已被“projects/myapp d

我试图留在谷歌云平台的免费层上,它只允许3个节点和30Gb的存储空间,在创建集群的地方,每个节点都映射到每个10Gb的存储空间

当我尝试装载persistentVolume并声明现有磁盘时,错误显示:

为卷“myapp pv”附加失败:googleapi:错误400:磁盘资源“projects/myapp dev/zones/us-central1-a/disks/gke-myapp-dev-clus-default-pool-64e30c4b-dvkc”已被“projects/myapp dev/zones/us-central1-a/instances/gke-myapp-dev-clus-default-pool-64e30c4b-dvkc”使用
我的工作解决方案是创建另一个磁盘,但问题是它超出了空闲层,我想知道,如果不在GCP中创建另一个persistentDisk,我们怎么能留在空闲层

当我尝试装载persistentVolume并声明现有磁盘时,错误显示

发生此错误是因为GCE上的PV:

Important! A volume can only be mounted using one access mode at a time,
even if it supports many. For example, a GCEPersistentDisk can be mounted as ReadWriteOnce
by a single node or ReadOnlyMany by many nodes, but not at the same time.
上面链接中给出的表格显示,GCEPersistentDisk不能作为
ReadWriteMany
安装,因此如果需要以这种方式连接它,则必须使用其他卷插件

我想知道我们如何能在GCP中不创建另一个persistentDisk而保持免费层

只是一些想法。。。使用空闲层,您的可用节点和磁盘空间有限:

  • 例如,如果您的用例不排除NFS使用,您可以始终使用NFS卷插件“模拟”读写方式(安装您自己的NFS provisioner)。Dowside是您需要安装NFS provisioner(将其压缩到您的容量中),但它并不非常适合快速io(数据库和其他东西)
  • 您可以在每个节点上使用
    hostPath
    ,并手动处理pod,但这很容易导致数据丢失,而且实际上不是正确的kubernetes PV处理方法。如果您需要快速IO(您正在使用数据库进行测试),则应考虑这一点,如果节点死亡,应立即进行适当的备份,以避免数据丢失。
当我尝试装载persistentVolume并声明现有磁盘时,错误显示

发生此错误是因为GCE上的PV:

Important! A volume can only be mounted using one access mode at a time,
even if it supports many. For example, a GCEPersistentDisk can be mounted as ReadWriteOnce
by a single node or ReadOnlyMany by many nodes, but not at the same time.
上面链接中给出的表格显示,GCEPersistentDisk不能作为
ReadWriteMany
安装,因此如果需要以这种方式连接它,则必须使用其他卷插件

我想知道我们如何能在GCP中不创建另一个persistentDisk而保持免费层

只是一些想法。。。使用空闲层,您的可用节点和磁盘空间有限:

  • 例如,如果您的用例不排除NFS使用,您可以始终使用NFS卷插件“模拟”读写方式(安装您自己的NFS provisioner)。Dowside是您需要安装NFS provisioner(将其压缩到您的容量中),但它并不非常适合快速io(数据库和其他东西)
  • 您可以在每个节点上使用
    hostPath
    ,并手动处理pod,但这很容易导致数据丢失,而且实际上不是正确的kubernetes PV处理方法。如果您需要快速IO(您正在使用数据库进行测试),则应考虑这一点,如果节点死亡,应立即进行适当的备份,以避免数据丢失。
是的,尽管我使用micro-f1-machine,但在部署群集时,它必须至少有3个节点,每个节点10Gbi。所以部署kubernetes并保持在免费层是不可能的?这取决于。。。如果我没有弄错的话,GKE会向您收取节点实例使用费,并且因为它抽象了主节点,所以它不会向您收取主节点的费用。所以,如果我是正确的,您可以免费运行“两个节点(主节点/工作节点)”设置,而不必为主节点付费,并使用免费层micro-f1-machine作为工作节点。现在,这是否适合您的场景和使用要求是另一个问题。。。(谷歌提供的免费试用(每年300美元)和我所说的总是免费的选项是有区别的)。是的,我的意思是总是免费的选项,它提到了一个实例,事实上,如果我们构建集群,gcloud cli不允许创建一个实例,它必须至少有3个实例,这很奇怪,似乎总是空闲层是无用的,如果Im错误请纠正我是的,虽然我使用micro-f1-machine,但在部署集群时,它必须最少有3个节点,每个节点10Gbi。所以部署kubernetes并保持在免费层是不可能的?这取决于。。。如果我没有弄错的话,GKE会向您收取节点实例使用费,并且因为它抽象了主节点,所以它不会向您收取主节点的费用。所以,如果我是正确的,您可以免费运行“两个节点(主节点/工作节点)”设置,而不必为主节点付费,并使用免费层micro-f1-machine作为工作节点。现在,这是否适合您的场景和使用要求是另一个问题。。。(谷歌提供的免费试用(每年300美元)和我所说的总是免费的选项是有区别的)。是的,我的意思是总是免费的选项,它提到了一个实例,事实上,如果我们构建集群,gcloud cli不允许创建一个实例,它必须至少有3个实例,这很奇怪,似乎总是免费的那一层是无用的,如果我错了,请纠正我