代码之家  ›  专栏  ›  技术社区  ›  ad_on_is

Kubernetes在WSL2中装载文件夹

  •  0
  • ad_on_is  · 技术社区  · 6 年前

    我正试着围绕Kubernetes思考,作为练习,我想把我的docker compose安装程序(由nginx、php-fpm和mysql组成)移植到k8s集群中。。虽然我熟悉Docker和Docker compose,但我似乎不知道如何将本地文件夹装入Kunernetes pod。

    -v /home/user/www:/var/www/html 在Docker的每个舱里。

    但无论我如何配置PersistantVolume,挂载在pod中的文件夹都是空的。我在WSL2下尝试了Docker桌面,在WSL2下尝试了microk8s(snap安装了systemd hack),在WSL2下尝试了minikube。

    这与storageclass有关吗?这在WSL2中可能吗?

    0 回复  |  直到 6 年前
        1
  •  2
  •   David Maze    6 年前

    Docker绑定挂载模型不能像您描述的那样在Kubernetes中真正使用。

    库伯内特斯的模型是围绕着一组基本上可以互换的机器。假设你有10个系统。哪一个有HTML内容?它是怎么到那里的?如果您需要添加另一个节点,或者某个节点被销毁,会发生什么情况?您碰巧使用的测试设置只有一个节点,这不会改变设计点。

    如果您使用的是Kubernetes,则基本上需要将此内容构建到图像中,并将其推入某种注册表中。有几个备选方案(一个 index.html COPY 这个转化成一个图像,然后引用那个 image:

    对于您提到的特定堆栈,我还看到了一些使用命名卷将数据从PHP容器复制到nginx服务器的设置。这在Kubernetes中不起作用:更容易设置的卷类型不能在容器之间共享,Kubernetes不会像Docker那样自动将内容复制到卷中。我建议在Kubernetes中避免任何类型的文件系统共享;在plain Docker中也避免这种共享是一种很好的做法 复制 -基于图像的设置将在单个主机(组合设置)中正常工作。

    推荐文章