问题标签 [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 投票
1 回答
1088 浏览

kubernetes - Kubernetes,如何将 PersistentVolume 链接到 volumeClaim

我是 Kubernetes 世界的新手,我试图弄清楚 StatefulSet 中定义的 volumeClaim 或 volumeClaimTemplates 如何链接到特定的 PersistentVolume。

我已经按照一些教程来理解和设置本地 PersistentVolume。如果我以 Elasticsearch 为例,当 StatefulSet 启动时,PersistantVolumeClaim 绑定到 PersistantVolume。

如您所知,对于本地 PersistentVolume,我们必须定义存储目的地的本地路径。

对于 Elasticsearch,我定义了类似这样的内容

但在实际项目中,存在不止一个持久卷。因此,我将在路径 /mnt/kube_data 中有多个文件夹。Kubernetes 如何为持久卷声明选择正确的持久卷?

我不希望 Kubernetes 将数据库数据放在为另一个服务创建的持久卷中。

这是 Elasticsearch 的配置:

0 投票
2 回答
4624 浏览

kubernetes - Re-use PersistentVolume after re-installing a helm deployment

When I helm delete <deploymentname> a deployment its PVs and PVCs are deleted as well. How can I avoid the actual data in the PVs from being deleted and be able to reclaim those PVs when I helm install <deploymentname> again?

I am using helm upgrade regularly but it makes me very uncomfortable if all it takes to delete all data is a helm delete (even without --purge option it removes all PVs)

0 投票
1 回答
56 浏览

postgresql - PostgreSQL 不会在 /var/lib/postgresql/data/ 处选择另一个 PostgreSQL 容器写入的数据

我已经设置了两个 postgresql docker 容器来写入 Kubernetes 集群中 /var/lib/postgresql/data/ 上已安装的 nfs 卷。

我注意到新的更改是正确写入的,但一个容器写入的数据不会反映在另一个容器的数据库上。

在删除 pod/容器并重新创建其他两个容器时,即使数据文件确实存在,新容器也不会反映先前容器的数据库中包含的数据库中的数据。

为什么会这样?

0 投票
1 回答
1981 浏览

kubernetes - 具有特定用户权限的 Azure 磁盘的持久卷声明

我正在尝试创建一个动态 Azure 磁盘卷以在具有特定权限要求的 pod 中使用。

该容器在用户 id 下运行472,因此我需要找到一种方法来为该用户(至少)安装具有 rw 权限的卷。

StorageClass定义如下

还有这个PVC

我可以在 pod 中运行以下命令:

吊舱将正确安装并启动,但kubectl logs <the-pod>会显示

即当前目录被挂载root为所有其他用户所有并且只读。

我已经尝试向 中添加一个mountOptions部分StorageClass,但是无论我尝试什么(uid=472user=472),我都会在启动时遇到安装错误,例如

我也尝试从man mount获取一些信息,但我没有找到任何有效的方法。

如何配置此存储类、持久卷声明和卷挂载,以便运行容器进程的非 root 用户有权在挂载路径中写入(并创建子目录)?

0 投票
2 回答
2281 浏览

kubernetes - kubernetes 在 pod 中使用具有 root 用户的 nfs 持久卷

好吧,我现在正用头撞墙好几天……

我的用例:我在自己的裸机云上,我正在运行 ubuntu 机器并在 4 台机器上设置 kubernetes,一台主机 3 台工人。我创建了一个私人注册表和证书管理器等。

nfs 共享也在工作节点上

我有一个必须在 pod 内以 root 身份运行的软件,现在我希望这个 root 用户将数据存储在 nfs 共享上的持久卷上。

root_squash 在咬我但是...

如果我不是 pod 内的 root,我已经创建了卷和声明,并且一切正常。当 root 时,nfs 共享上的文件被压缩到nobody:nogroup 并且 pod 内的 root 用户不能再使用它们......

该怎么办?

1) 使用 no_root_squash 选项导出 nfs 共享,但考虑到安全问题,这似乎是一个非常糟糕的主意,不确定这是否可以仅通过防火墙规则来缓解?

2)我为 fsGroup 和 uid 和 gid 挂载选项尝试了各种 securityContext 选项,只要您不是 de pod 的根,一切都可以正常工作......但我不确定我是否完全理解这一点所以

我的电脑 yaml:

如您所见,我创建了一个具有 uid 1023 的专用 nfsuser 并使用它来使 pod 以该用户身份存储数据...只要我不在 pod 内就可以正常工作...

我正在运行的 pod 是有状态集中的 MarkLogic pod,如下所示:

runAsUser: 1023 有效,但如果我想成为 pod 内的 root,则再次无效...

我的问题:可以做到吗,以 root 身份运行 pod 并仍然使用 nfs 作为具有安全 nfs 共享的持久卷(即不使用 no_root_squash)???

还是我需要放弃 nfs 的想法并转向像 glusterfs 这样的替代方案?

0 投票
2 回答
1135 浏览

kubernetes - 卷“mongo-two”的 MountVolume.SetUp 失败:lstat /var/lib/mongo:没有这样的文件或目录

我正在尝试让 mongo-replicaset 图表正常工作。

kubelet 在部署 mongo-replicaset 图表时报此错误:

在每个节点上, /mongo/data 文件夹都存在,让我发疯。注意:在节点上,lstat 命令不存在,但我怀疑 kubelet 容器会带上它。? 在此处输入图像描述

我有 3 个持久卷:

StatefulSet yaml:(mongo-replicaset helm chart 3.8.0)

现有目录上仍然有“没有这样的目录”。有什么不正确的?如果需要,我可以提供额外的数据。

谢谢

0 投票
1 回答
450 浏览

kubernetes - 部署的端口未在 nexus 的 kubernetes 中暴露


我正在通过 kubernetes 创建一个 nexus repo。通过浏览我发现了这个网站(https://blog.sonatype.com/kubernetes-recipe-sonatype-nexus-3-as-a-private-docker-registry)我能够创建一个服务和部署以及 pod 和一切都没有问题。但我无法打开它。

这是我的 nexus.yaml 文件

当我给
kubectl describe service nexus-service -n nexus

我尝试通过提供端口并打开,但我得到一个可以达到的错误。

有人可以帮我吗???提前致谢。

0 投票
1 回答
4162 浏览

kubernetes - 多个 pod 在 Kubernetes 上使用相同的数据库

我想知道同一个 Kubernetes 集群中的多个 Pod 是否可以访问使用 Google 云永久磁盘上的永久卷配置的数据库。

目前我正在构建一个微服务架构 Web 应用程序,它在不同的 pod 中有 3 个节点 api,它们都访问同一个数据库。那么我如何使用 kubernetes 实现这一点。

请让我知道我的架构是否也正确

0 投票
1 回答
6563 浏览

kubernetes - 为 Kubernetes Deployment 中的每个副本绑定不同的 Persistent Volume

我正在使用具有 ReadWriteOnce 访问模式的 PVC,它由 logstash 部署使用,该部署将运行有状态应用程序并使用此 PVC。部署中的每个 pod 将尝试绑定到相同的持久卷声明。如果replicas > 1,它将失败(因为它支持ReadWriteOnce,只有第一个能够成功绑定)。如何指定每个 pod 绑定到单独的 PV。

我不想为每个 logstash 副本/实例定义 3 个单独的 yaml

需要一种方法将不同的 PV 卷挂载到不同的 pod 副本。

0 投票
2 回答
71 浏览

kubernetes - Kubernetes 中哪些卷类型最适合存储主机配置?

我们能否以只读方式跨多个节点使用单个卷,这样可以节省在 kubernetes 中托管配置所需的存储空间。如果是,那么哪个是最适合的音量类型?