问题标签 [persistent-volumes]

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 投票
4 回答
30349 浏览

kubernetes - 卷“nfs”的 MountVolume.SetUp 失败:安装失败:退出状态 32

这是PersistentVolumeClaim 未绑定第一个问题之后的第二个问题 :“nfs-pv-provisioning-demo”

我正在设置一个仅使用一个节点的 kubernetes 实验室并学习设置 kubernetes nfs。我从以下链接逐步关注 kubernetes nfs 示例:https ://github.com/kubernetes/examples/tree/master/staging/volumes/nfs

根据 'helmbert' 提供的反馈,我修改了 https://github.com/kubernetes/examples/blob/master/staging/volumes/nfs/provisioner/nfs-server-gce-pv.yaml的内容

它有效,我不再看到事件“PersistentVolumeClaim 未绑定:“nfs-pv-provisioning-demo””。

我继续其余步骤并到达“设置假后端”部分并运行以下命令:

我看到两个 nfs-busybox pod 的状态为“ContainerCreating”并且从未更改为“Running”。这是因为容器映像适用于 yaml 中显示的 Google Cloud 吗?

https://github.com/kubernetes/examples/blob/master/staging/volumes/nfs/nfs-server-rc.yaml

我是否必须将“图像”行替换为其他内容,因为我没有在此实验室中使用 Google Cloud?我的实验室里只有一个节点。我是否必须重写上面“容器”的定义?我应该用什么替换“图像”行?我需要从某个地方下载 dockerized 'nfs image' 吗?

我看到重复事件 - 卷“nfs”的 MountVolume.SetUp 失败:安装失败:退出状态 32

0 投票
1 回答
2263 浏览

postgresql - 通过 Helm 的 Postgresql 未安装

我正在尝试使用最新的稳定版通过 helm 安装 postgres ,但它没有正确安装持久卷。我正在将它安装在 Minikube 中,由于某种原因,它似乎无法正确托管安装。

错误(在部署、pod 和副本集上)

PersistentVolumeClaim 未绑定:“postgres-postgresql”错误:lstat /tmp/hostpath-provisioner/pvc-c713429d-e2a3-11e7-9ca9-080027231d54:没有这样的文件或目录同步 pod 错误

当我查看持久卷时,它似乎运行正常。万一这有帮助,我的持久卷 yaml:

持久卷声明 Yaml:

任何援助将不胜感激。

0 投票
0 回答
2213 浏览

windows - Minikube 和 Kubernetes:在 Postgres 容器中使用 Windows 安装驱动器作为持久卷

注意:经过进一步的故障排除后,我认为这是 minikube mount 的问题。以下描述的大部分内容可能与确切问题无关。有关其他信息,请参阅我的评论。保持问题不变。


我正在尝试使用本地 SDCard 作为 minikube 中的挂载点,在挂载点内创建持久卷,创建相应的持久卷声明,然后将其用作承载 postgres 实例的容器中的卷挂载。我将首先描述我是如何创建 PVC 的,然后深入了解 pod 定义。

1. 我正在使用 minikube 命令启动带有挂载点的 minikube VM (Hyper-V):

minikube start --vm-driver="hyperv" --hyperv-virtual-switch="我的虚拟交换机" --mount --mount-string="D:\data:/data"

运行此之后,我习惯于minikube ssh确定目录已正确安装并且具有 root 的所有者/组。

2. 创建持久卷:

3. 创建 PersistentVolumeClaim:

4. 创建 Pod 和容器 我第一次尝试创建 Pod 是一种直截了当、有据可查的方法:

此时我得到一个 CrashLoopBackoff 并且在检查容器日志时发现错误:

chown:更改“/var/lib/postgresql/data/pgdata”的所有权:输入/输出错误

我相信这里发生的事情是容器有一个用户 postgres,它正在运行 initdb 命令,而目录由 root 拥有?再说一次,我觉得在这种情况下我不会收到输入/输出错误。

无论如何,我尝试了另外两种方法:

1. 使用 securityContext 和 fsGroup 匹配 postgres 用户的 UID/GID (999)

在这里,我只是在规范的顶部添加了这个片段,希望卷将使用 postgres 用户的上下文创建(我不太确定这是如何工作的......):

我收到同样的错误并迅速转向下一种方法......

2. 使用 initContainer 执行 chown 命令。这是我花费大部分时间的地方。我添加了一些调试命令以更好地理解这里发生的事情。

有了这个,我得到了 Init:CrashLoopBackOff 的 pod 状态。这是我在 initContainer 中的日志中得到的内容:

总计 0 drwxrwxrwx 1 根 0 Jan 1 1970 数据

总计 1 drwxrwxrwx 1 根 0 1970 年 1 月 1 日 pgdata -rw-rw-rw- 1 根 5 1970 年 1 月 1 日测试

chown:更改“/var/lib/postgresql/data”的所有权:输入/输出错误

chown:更改“/var/lib/postgresql/data/pgdata”的所有权:输入/输出错误

我还编写了一个从 shell 脚本到 pgdata 目录的简单测试文件,发现它存在于我的 SDCard 上。由此我推测输入/输出错误与权限无关。此外,能够以 root 身份写入目录意味着文件系统处于正常工作状态。我只是不能 chown (作为根)。这怎么可能?

0 投票
1 回答
2983 浏览

amazon-web-services - K8S 无法将 AWS EBS 挂载为 pod 的持久卷

问题

请提出无法在 pod 中挂载 AWS EBS 卷的错误原因。

journalctl -b -f -u kubelet

脚步

  1. 在 AWS(us-west-1 和 AZ 是 us-west-1b)中使用 kubeadm 部署了 K8S 1.9(没有 EBS 卷挂载,Pod 工作)。
  2. 根据Kubernetes - Cloud Providers and kubelets 在使用“aws”作为云提供商时无法启动配置 IAM 角色。
  3. 根据使用 EC2 控制台轻松替换或附加 IAM 角色到现有 EC2 实例,将 IAM 角色分配给 EC2 实例。
  4. 按照清单中的方式部署 PV/PVC/POD。

kubectl 的状态:

kubectl 获取

kubectl 描述 pod nginx

显现

IAM 政策

在此处输入图像描述

环境

EC2

在此处输入图像描述

EBS

在此处输入图像描述

0 投票
2 回答
5005 浏览

docker - 将 Hospath 添加到 Kubernetes 状态集

在 Kubernetes 中,是否可以在 Statefulset 中添加 hostPath 存储。如果是这样,有人可以帮我举个例子。

0 投票
2 回答
4651 浏览

kubernetes - kubernetes:使用 iSCSI 和 NFS 的动态持久卷配置

我在容器中成功使用了 Kubernetes 1.4 持久卷支持、iSCSI/NFS PV 和 PVC。但是,它需要首先通过在 PV 创建和声明存储期间指定容量来配置存储。

我的要求是只为集群提供存储(并且不想提及存储容量)并让用户/开发人员根据他们的要求声明存储。因此需要使用 StorageClass 进行动态配置。只需使用详细信息声明存储,并让开发人员根据他们的需要声明它。

但是,对于使用 Storage 类为 iSCSI 和 NFS 使用动态卷配置并且没有得到确切的步骤来执行感到困惑。根据文档,我需要为这两种类型使用外部卷插件,并且它已经作为孵化器项目的一部分提供 - https://github.com/kubernetes-incubator/external-storage/。但是我不知道如何加载/运行该外部配置程序(我需要将它作为容器本身运行??我猜)然后编写存储类,其中包含 iSCSI/NFS 存储的详细信息。

已经完成/使用过它的人可以指导/提供这方面的指导吗?

在此先感谢,皮库

0 投票
1 回答
1047 浏览

kubernetes - 如何在持久卷声明中启用存储大小参数?

我在持久卷声明中指定的存储大小忽略了使用 nfs 作为存储后端。

我想将持久卷附加到具有指定卷大小的容器。以下是我用来创建 pvc 的 yaml 文件。

以下是创建 pvc 的结果。

最后,我将创建的卷附加到容器并查看挂载的文件系统的大小,它显示了我使用 NFS 导出的磁盘大小的总量。

有人知道如何启用请求存储大小参数吗?换句话说,有没有办法在使用 NSF 作为后端存储时指定卷的大小?

0 投票
1 回答
8488 浏览

deployment - Kubectl create for persistent storage 出错

我正在尝试为沙发数据库部署持久存储,但由于错误而失败


kubectl create -f couch_persistant_deploy.yaml

错误:验证“couch_persistant_deploy.yaml”时出错:验证数据时出错:找不到类型:v1.Deployment;如果您选择忽略这些错误,请使用 --validate=false 关闭验证

创建volume.yaml

索赔量.yaml

部署 VM.yaml

任何线索都非常感谢。

0 投票
3 回答
9399 浏览

kubernetes - kubeadm/kubectl/kube-apiserver 开启功能门

我正在尝试在 kubernetes v1.9.2中测试本地持久卷。

根据我收集的信息(我可能错了!)我不能kubeadm用来添加这些功能门:

sooo ...我做了一个正常的kubeadm初始化,然后继续破解:

并重新加载/重启kubelet

好的...让我们尝试创建 pv:

feature-gate * spec.local: Forbidden: 本地卷被 feature-gate 禁用

啊哈!我说...我也必须改变kube-apiserver

所以我编辑/etc/kubernetes/manifests/kube-apiserver.yaml并将以下内容附加到Command

并且 api 服务器死了,我被困在没有死kubectl的情况下kubeapi-server。:(

帮助?