问题标签 [gce-persistent-disk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4749 浏览

kubernetes - 如何将持久卷声明与 gcePersistentDisk 绑定?

我想将 PersistentVolumeClaim 与 gcePersistentDisk PersistentVolume 绑定。在我为得到它所做的步骤下面:

1. gcePersistentDisk 的创建:

gcloud compute disks create --size=2GB --zone=us-east1-b gce-nfs-disk

2. 定义 PersistentVolume 和 PersistentVolumeClaim

运行后kubectl apply -f pv-pvc.ymlnfs-pvc不绑定nfs-pv。事实上,下面是我拥有的 PersistentVolume 和 PersistentVolumeClaim 的列表:

得到的 PersistentVolume 是我在 Google Container Engine 上创建的节点的磁盘上的一个卷。那么,我错过了什么吗?

PS:kubernetes的版本

0 投票
2 回答
115 浏览

kubernetes - GKE (1.7.12-gke.1) 动态配置:在 containerFS 中创建目录内容,而不是在卷 FS 中创建

我有一个 1.7.12-gke.1 集群。

问题

  • 当我动态配置卷时,我创建了一个 PVC。
  • 在将数据引导到该 PVC 后,我终止了生成数据的容器。
  • 然后,我启动了第二个容器,它绑定了相同的 PVC。

我希望第一个目录中的 postgres /data 文件将在新容器中可见......但它们不是。

挂载时通常可以看到它们之间的文件,但是由于某种原因,postgres 创建的所有文件在 data/ 目录下,在新 pod 中不可见。

细节

不知何故,这个特定目录的子内容似乎没有存储到卷中(或者至少,不是以这样一种方式,即它们以后可以从同一个 PVC 安装在新容器中)。

我在卷中引导数据目录,如下所示:

在这个 pod 启动后,我可以看到卷中有大量数据:

但是,当我在新的 postgres 容器中安装同一个磁盘以进行数据迁移时,我看到以下内容......没有文件(但数据目录以某种方式可见)。

请注意,在第二种情况下,我的用户是postgres:x:70:70::/var/lib/postgresql:/bin/sh,并且在第一种情况下我使用相同的 ID (70),所以数字用户 ID 应该是相同的,因此我看不出这可能是权限错误的任何原因(尽管我可能是错的)。

一些后续问题,以防主要问题“我的 /data 内容在哪里?” 不容易回答:

1) 是否有一种简单的方法来确认或下载动态配置的卷内容?我宁愿不依赖 kubernetes 来调试卷是否具有正确的内容,因为容器挂载可能会做一些奇怪的事情。

2) 是否有任何原因导致特定子目录内容在使用与我最初写入内容相同的 PVC 的新 pod 中不可见?

0 投票
1 回答
36 浏览

kubernetes - 使用 PersistentDisk Volumnet 挂载的 Kubernetes 部署策略

我们有一个 K8s 部署规范,它使用 1 的副本数,并且该 pod 包含一个安装有 RWOnce 的 GCE PersistentDisk 卷。

就上下文而言,GCE PD 不允许 Multi-Write 挂载。

目前,我们有一个 Recreate Deployment 策略,因为这是唯一适合我们的策略,因为它确保当旧 pod 被销毁时卷将被分离,并与新 pod 创建成功连接。

然而,我们的 pod 镜像拉取需要一段时间,因此每次部署都会使我们的站点停机几十秒。

是否有任何其他部署策略可以防止这种情况?

当然,一种解决方案是使用允许多写入挂载的 VolumeMount,但我想知道是否有其他已知的解决方案来解决这个问题。

0 投票
1 回答
137 浏览

kubernetes - 从 Kubernetes 中的快照创建 Google 永久性磁盘

我需要在 Kubernetes 中具有非常大(700GB)只读数据集的多个节点上运行 pod。我尝试使用 readonlymany,但它在多节点设置中失败,而且通常非常不稳定。

pod 有没有办法从快照创建一个新的永久磁盘,将其附加到 pod,并在 pod 被销毁时将其销毁?这将允许我偶尔使用新数据更新快照。

0 投票
1 回答
1302 浏览

kubernetes - Kubernetes ReadOnlyMany + ReadWriteOnce

我目前正在尝试使用 Kubernetes 配置 Logstash 集群,并且我希望每个 Logstash 节点都使用管道将卷安装为只读。然后,这个相同的卷将以读/写方式安装在一个管理实例上,我可以在其中编辑配置。

这对 K8s 和 GCEPersistentDisk 可行吗?

0 投票
2 回答
220 浏览

gcloud - 从 GKE 和独立网络服务器访问 Google Cloud 永久磁盘

按照本指南,我了解了如何在 Google Cloud 中创建永久性磁盘,而不是使用 NFS 服务器托管它。

现在我有一个 NFS 服务器,可以从我的 GKE 节点使用。

但是,我还希望能够从独立的 Web 服务器向其发布数据,基本上使其成为唯一的写入器和读取器的节点。

如何在不部署虚拟机实例的情况下远程访问磁盘?

这不是 GC 永久磁盘的推荐用例吗?

0 投票
1 回答
979 浏览

kubernetes - GCE Kubernetes:持久磁盘和持久卷声明

方法 1(kubernetes 卷附加到 google 永久磁盘,kubernetes 卷声明附加到 kubernetes 卷)

方法 2(Kubernetes 卷声明直接附加到 google 永久磁盘)

方法3(pod直接使用googlepersistent disk docs

我不确定在哪种情况下应该使用哪种方法。
如果我想在谷歌永久磁盘上存储数据,三种方法有什么区别?我应该使用哪一种?

0 投票
0 回答
108 浏览

kubernetes - Kubernetes:gcePersistentDisk 不工作

gcePersistentDiskkubernetes. 目前我所有的虚拟机,磁盘都在相同的可用区和帐户下google cloud。但仍然gcePersistentDisk没有安装。下面是我的部署文件。

储藏室

体积

服务和容器

当我使用此部署时,它会在 pod 描述上出现以下错误。

在此处输入图像描述

注意:-我没有使用kubernetes谷歌引擎。我已经设置了我的自定义集群。

0 投票
0 回答
497 浏览

docker - 如何使用 GCE 中的容器优化映像创建不属于 root 的绑定挂载

我正在使用该gcloud compute instances create-with-container工具在 GCE 中创建一个要运行 docker 映像的 VM。为此,我正在使用谷歌的容器优化操作系统映像之一。我正在尝试附加磁盘,因为我需要在我的 docker 容器中保存持久数据。为此,我使用了--container-mount-disk标志。

我遇到的问题是磁盘被挂载为 docker 容器(和主机 VM)内的 root 拥有的文件夹,并且我的容器进程无法写入它。有没有办法来解决这个问题?我也尝试过使用--container-mount-host-path,但没有运气。我尝试连接到 docker 主机并将chown文件夹添加到 docker 容器中用户的 uid,但是在重新创建 VM 的那一刻,该文件夹再次归 root 所有,因此这不是永久解决方案。

简而言之,这个--container-mount-disk功能应该如何与 docker 容器内的非 root 用户一起使用?

0 投票
1 回答
178 浏览

mongodb - GCE "create-with-container --container-mount-disk" flag mounts disk as read-only

I am trying to use a Percona Docker image for MongoDB on GCE, however I'm running into an issue with Mongo saying the mounted path is read-only. I looked around as much as I could, but im stumped at what could be the issue.

I used the above command and it creates my instance. I then SSH into the server, connect to the running mongo instance to shutdown, then I run: docker exec -it [NAME] mongod --configsvr --replSet rs0 --dbpath=/data/mongodb --bind_ip localhost

This spits out an error stating:

At this point, I've been recreating instances with different params, but nothing has worked so far. Anyone have an idea what I'm missing?

Updated with command output