问题标签 [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.
kubernetes - Kubernetes,如何将 PersistentVolume 链接到 volumeClaim
我是 Kubernetes 世界的新手,我试图弄清楚 StatefulSet 中定义的 volumeClaim 或 volumeClaimTemplates 如何链接到特定的 PersistentVolume。
我已经按照一些教程来理解和设置本地 PersistentVolume。如果我以 Elasticsearch 为例,当 StatefulSet 启动时,PersistantVolumeClaim 绑定到 PersistantVolume。
如您所知,对于本地 PersistentVolume,我们必须定义存储目的地的本地路径。
对于 Elasticsearch,我定义了类似这样的内容
但在实际项目中,存在不止一个持久卷。因此,我将在路径 /mnt/kube_data 中有多个文件夹。Kubernetes 如何为持久卷声明选择正确的持久卷?
我不希望 Kubernetes 将数据库数据放在为另一个服务创建的持久卷中。
这是 Elasticsearch 的配置:
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)
postgresql - PostgreSQL 不会在 /var/lib/postgresql/data/ 处选择另一个 PostgreSQL 容器写入的数据
我已经设置了两个 postgresql docker 容器来写入 Kubernetes 集群中 /var/lib/postgresql/data/ 上已安装的 nfs 卷。
我注意到新的更改是正确写入的,但一个容器写入的数据不会反映在另一个容器的数据库上。
在删除 pod/容器并重新创建其他两个容器时,即使数据文件确实存在,新容器也不会反映先前容器的数据库中包含的数据库中的数据。
为什么会这样?
kubernetes - 具有特定用户权限的 Azure 磁盘的持久卷声明
我正在尝试创建一个动态 Azure 磁盘卷以在具有特定权限要求的 pod 中使用。
该容器在用户 id 下运行472
,因此我需要找到一种方法来为该用户(至少)安装具有 rw 权限的卷。
StorageClass
定义如下
还有这个PVC
我可以在 pod 中运行以下命令:
吊舱将正确安装并启动,但kubectl logs <the-pod>
会显示
即当前目录被挂载root
为所有其他用户所有并且只读。
我已经尝试向 中添加一个mountOptions
部分StorageClass
,但是无论我尝试什么(uid=472
等user=472
),我都会在启动时遇到安装错误,例如
我也尝试从man mount获取一些信息,但我没有找到任何有效的方法。
如何配置此存储类、持久卷声明和卷挂载,以便运行容器进程的非 root 用户有权在挂载路径中写入(并创建子目录)?
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 这样的替代方案?
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
我尝试通过提供端口并打开,但我得到一个可以达到的错误。
有人可以帮我吗???提前致谢。
kubernetes - 多个 pod 在 Kubernetes 上使用相同的数据库
我想知道同一个 Kubernetes 集群中的多个 Pod 是否可以访问使用 Google 云永久磁盘上的永久卷配置的数据库。
目前我正在构建一个微服务架构 Web 应用程序,它在不同的 pod 中有 3 个节点 api,它们都访问同一个数据库。那么我如何使用 kubernetes 实现这一点。
请让我知道我的架构是否也正确
kubernetes - 为 Kubernetes Deployment 中的每个副本绑定不同的 Persistent Volume
我正在使用具有 ReadWriteOnce 访问模式的 PVC,它由 logstash 部署使用,该部署将运行有状态应用程序并使用此 PVC。部署中的每个 pod 将尝试绑定到相同的持久卷声明。如果replicas > 1,它将失败(因为它支持ReadWriteOnce,只有第一个能够成功绑定)。如何指定每个 pod 绑定到单独的 PV。
我不想为每个 logstash 副本/实例定义 3 个单独的 yaml
需要一种方法将不同的 PV 卷挂载到不同的 pod 副本。
kubernetes - Kubernetes 中哪些卷类型最适合存储主机配置?
我们能否以只读方式跨多个节点使用单个卷,这样可以节省在 kubernetes 中托管配置所需的存储空间。如果是,那么哪个是最适合的音量类型?