首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rancher FileOrCreate的问题

Rancher FileOrCreate的问题

作者头像
runzhliu
发布2022-04-13 13:57:37
1520
发布2022-04-13 13:57:37
举报
文章被收录于专栏:容器计算容器计算容器计算

最近在 Rancher 集群上部署一个应用的时候,因为使用了 Hostpath,并且创建了一个文件,按照 FileOrCreate 的模式创建的,常理来说,如果母机上没有这个文件,应该是可以创建出来的,但是在 Rancher 的集群上部署的时候就出了一个比较奇怪的情况,预期的文件,竟然变成了文件夹,一开始以为是参数有问题,反复看了几遍官方文档,感觉还是没啥问题。于是检索一下相关的 issue,果然发现了 HostPath volume type: FileOrCreate creates a directory not a file in RKE provisioned clusters

这个 issue 快一年了,还是 Open,Rancher 团队和社区也没太关心,这个可能跟这种 Hostpath 使用的场景比较少有关。因为以前使用过,但从来没有发现过类似的问题,仔细考虑了一下,可能跟以前管理的集群都是物理机/VM 部署的 kubelet,这个可能会跟 Rancher 是以 Docker 方式来运行 kubelet 有关。

Bind mounts may be stored anywhere on the host system. They may even be important system files or directories. Non-Docker processes on the Docker host or a Docker container can modify them at any time.

下面是容器化的 kubelet 的 docker inspect 的结果,从结果上看,猜测是 mount 参数的一些问题, 因为 Rancher RKE 是通过调用 Docker Engine 的 /containers/create 接口来创建容器化的 kubelet 的,所以如果要修改这个问题,可能还需要仔细看下容器创建的时候,相关的参数应该怎么传递,按照 Docker 的文档看,这个接口在创建容器的时候可能是使用了 -v 这个选项来挂载目录。

暂时没有时间深入去看,所以如果只是想简单解决的话,可以手动在母机上创建需要的文件。

"Binds": [
    "/etc/kubernetes:/etc/kubernetes:z",
    "/etc/cni:/etc/cni:rw,z",
    "/opt/cni:/opt/cni:rw,z",
    "/var/lib/cni:/var/lib/cni:z",
    "/var/lib/calico:/var/lib/calico:z",
    "/etc/resolv.conf:/etc/resolv.conf",
    "/sys:/sys:rprivate",
    "/var/lib/docker:/var/lib/docker:rw,rslave,z",
    "/var/lib/kubelet:/var/lib/kubelet:shared,z",
    "/var/lib/rancher:/var/lib/rancher:shared,z",
    "/var/run:/var/run:rw,rprivate",
    "/run:/run:rprivate",
    "/etc/ceph:/etc/ceph",
    "/dev:/host/dev:rprivate",
    "/var/log/containers:/var/log/containers:z",
    "/var/log/pods:/var/log/pods:z",
    "/usr:/host/usr:ro",
    "/etc:/host/etc:ro"
],
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档