问题标签 [rook-storage]
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 进行开发,例如 docker run -v
你知道是否可以将本地文件夹挂载到运行 Kubernetes 的容器上。
就像docker run -it -v .:/dev some-image bash
我在本地机器上执行此操作,然后从 VS Code 远程调试到容器中一样。
更新:这可能是一个解决方案:telepresence
链接:https ://kubernetes.io/docs/tasks/debug-application-cluster/local-debugging/
你知道可以将本地计算机挂载到 Kubernetes。这个容器应该可以访问 Cassandra IP 地址。
你知道这是否可能吗?
kubernetes - Rook:等待卷附加/挂载 pod 超时
k8s 版本:v1.9 环境
:VirtualBox
操作系统:Coreos
它是 1 个节点 Kubernetes 集群,我按照以下步骤操作:
按照https://rook.io/docs/rook/v0.5/k8s-pre-reqs.html更新 kubelet
Environment="RKT_OPTS=--volume modprobe,kind=host,source=/usr/sbin/modprobe \
--mount volume=modprobe,target=/usr/sbin/modprobe \
--volume lib-modules,kind=host,源=/lib/modules\
--mount 卷=lib-modules,target=/lib/modules\
--uuid-file-save=/var/run/kubelet-pod.uuid"安装 ceph 实用程序
rbd -v ceph
版本 10.2.2 (45107e21c568dd033c2f0a3107dec8f0b0e58374)
所有 rook pod 都在工作,但 MySQL pod 失败并出现错误“超时已过期,等待卷附加/挂载 pod”
还在 rook-operator.yaml 中添加了以下选项
你能帮忙吗?如果您需要更多详细信息,请告诉我。我检查了类似的问题,但解决方案不起作用。
hadoop - 如何在私有云上管理 Hadoop 和 Kubernetes 集群的磁盘
我有一个在本地云上运行的 Hadoop 集群,每个数据节点有 8 个磁盘,所有磁盘都分配给 Hadoop。我还想在这些节点上设置一个 Kubernetes 集群并使用本地存储。为此,我决定在每个数据节点的一个磁盘中使用一个目录来进行 Kubernetes 持久声明。我知道这可能会造成磁盘争用,但将来我可能会处理它。
我的问题是,如果我想使用 rook 来处理 Kubernetes 上的存储,因为该目录已经有一个文件系统(这里是 HDFS),是否可行?我的意思是 rook 在每个数据节点上都接受这个目录吗?
谢谢,
kubernetes - Rook Ceph Kudeam : 只有一个 ceph-mon 开始了
在 kubectl apply -f cluster.yaml(来自 rook GitHub 存储库的 yaml 示例文件)之后,即使等待 1 小时,我也只有一个 pod rook-ceph-mon-a-*** 在运行。我该如何调查这个问题?
并且在单个正在运行的 pod 的日志下方
kubernetes - 在 Google Kubernetes Engine (GKE) 中挂载 Rook 卷
我一直在研究 Kubernetes 的 Rook+Ceph,试图让它在 Google Kubernetes Engine 下工作,结果碰了壁。
按照文档,我运行了以下命令,并验证了每个命令都具有预期的效果:
yaml 文件都是Rook 提供的默认文件,除了operator.yaml
,其中我添加了以下环境变量,根据GKE 文档:
但是,我不确定从这里去哪里。他们的文档有一个用于创建注册表的示例文件,该文件导致了一个看起来与我想要实现的目标无关的指令的兔子洞。
本质上,我希望能够将 Ceph 共享文件存储挂载为来自常规 ol' 容器映像的卷。我尝试了以下yaml但没有成功:
在我相当有限的知识中,我不明白为什么这不起作用,但是在执行时得到以下输出kubectl describe pods ubuntu
:
有没有一个例子说明如何在野外的某个地方实现这样的事情?
kubernetes - Rook Ceph Operator 在检查集群状态时挂起
我已经在wireguard vpn之上使用calico在数字海洋Ubuntu 18.04 LTS droplets上设置了一个k8s集群,并且能够使用traefik作为外部LB设置nginx-ingress。我现在正在按照https://rook.io/docs/rook/master/ceph-quickstart.html上的快速入门,使用 rook ceph 设置分布式存储,但似乎监视器从未达到法定人数(即使只有一个)。实际上,监视器本身是一个范围,但操作员或任何其他监视器似乎都不知道这一点,并且操作员在尝试检查状态时挂起。
我尝试过解决网络问题,从wireguard、calico和ufw一路走来。我什至将 ufw 设置为默认情况下暂时允许所有流量,以确保我不允许一个端口但流量在另一个接口上(我有 wg0、eth1、tunl0 和 calico 接口)。
我没有成功地遵循 ceph 故障排除指南:http: //docs.ceph.com/docs/master/rados/troubleshooting/troubleshooting-mon/#recovering-a-monitor-s-broken-monmap
我已经有 4 天了,我没有解决方案。
这是我设置存储集群的方法
跑步kubectl get pods
回报
但是,当我尝试检查监视器的状态时,我从操作员舱中得到:
顺便说一句,从操作员那里 ping 监控器可以正常工作
操作员日志 https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-operator-log
监控日志 https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-log
监控一个状态,获取者直接通过socket形成监控pod https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-status
kubernetes - The PersistentVolume is invalid: spec: Required value: must specify a volume type
I'm trying to create a Persistent Volume on top of/based off of an existing Storage Class Name. Then I want to attach the PVC to it; so that they are bound. Running the code below, will give me the "sftp-pv-claim" I want, but it is not bound to my PV ("sftp-pv-storage"). It's status is "pending".
The error message I receive is: "The PersistentVolume "sftp-pv-storage" is invalid: spec: Required value: must specify a volume type". If anyone can point me in the right direction as to why I'm getting the error message, it'd be much appreciated.
Specs:
I'm creating the PV and PVC using a helm chart.
I'm using the Rancher UI to see if they are bound or not and if the PV is generated.
The storage I'm using is Ceph with Rook (to allow for dynamic provisioning of PVs).
Error:
The error message I receive is: "The PersistentVolume "sftp-pv-storage" is invalid: spec: Required value: must specify a volume type".
Attempts:
I've tried using claimRef and matchLabels to no avail.
I've added "volumetype: none" to my PV specs.
If I add "hostPath: path: "/mnt/data"" as a spec to the PV, it will show up as an Available PV (with a local node path), but my PVC is not bonded to it. (Also, for deployment purposes I don't want to use hostPath.
kubernetes - 在 Kubernetes 中调整持久卷的大小时出错
我有一个使用 8Gi 持久块卷的 Prometheus-server pod。卷提供程序是 rook-ceph。
pod 处于 crashloopbackoff 状态,因为没有更多可用空间:
吊舱需要更多空间,因此我决定将卷大小调整为 20Gi。
按照文档:https ://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/
我编辑了resources.requests.storage: 20Gi
持久卷声明。并升级了helm release。
现在我可以看到 PV 已调整为 20Gi。但是 PVC 仍然显示它声称 8Gi。
PVC 说明 说:
然后我删除了 pod 以重新启动它。
但是 pod 仍然处于 crashloopbackoff 状态。豆荚描述说:
列出 pod 时,我只能看到新的prometheus-server-756c8495ff-wtx84
(而不是旧的 pod prometheus-server-756c8495ff-hcd85
):
我该如何解决这个问题?
编辑 :
部署策略是:
我可以看到即使kubectl get pv
显示 pv 有 20Gi 容量,rook-ceph 的实际 rbd 块也只有 8Gi 大小:
storageclass.yaml 是:
kubernetes - 利用集群节点磁盘的 Kubernetes 存储提供程序
我正在 Kubernetes 之上构建一个平台,除其他要求外,它应该:
- 与操作系统无关。任何具有健全内核和 cgroup 挂载的 Linux。
- 通过利用集群节点磁盘提供持久存储。
- 提供 ReadWriteMany 卷或实现共享存储的方法。
- POD 不应绑定到特定节点(如本地持久卷)
- 迁移 POD 时会自动重新附加卷(例如,由于节点耗尽或节点丢失情况)
- 在存储级别提供数据复制
- 不假设每个节点都有专用的原始块设备。
我通过对 k8s 组件和容器引擎使用静态二进制文件来解决第一点。再加上最小的主机工具,也是静态二进制文件。
我仍在寻找持久存储的解决方案。
到目前为止我评估/使用的内容:
- Rook:虽然在功能上满足要求,但是有一个bug,卷没有和POD一起移动https://github.com/rook/rook/issues/1507
- OpenEBS:它不满足与操作系统无关的要求。每个节点上都需要 iSCSI 客户端和工具,这取决于主机操作系统https://docs.openebs.io/docs/next/prerequisites.html
所以问题是在使用集群节点磁盘时,对于 Kubernetes 持久存储,我还有什么其他选择。