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

从docker compose转换为Kubernetes-如何处理本地卷

  •  0
  • stwissel  · 技术社区  · 3 年前

    我正在努力让我的本地开发环境从 docker-compose 由于我们的生产环境都是Kubernetes(like),因此我们的产品具有轻量级Kubernete的味道。在的帮助下 Kompose 我可以转换我的设置。然而,我很难处理的部分是将Docker卷转换为本地开发人员机器卷和卷声明。我发现的大多数例子都涵盖了S3或NFS的驱动程序,而我的开发笔记本电脑并没有提供这些驱动程序。

    所以当我有 docker-compose.yml 像这样的设置,k8s中的本地开发等价物是什么?

    version: "3.6"
    services:
      my_test:
        image: "myregistry.com/my_test"
        container_name: "demo"
        hostname: "demo.acme.local"
        stop_grace_period: 120s
        cap_add:
          - SYS_PTRACE
        ports:
          - 80:80
        volumes:
          - my_vol:/local/my_app
    volumes:
      my_vol:
        name: "/local/containers/my_app"
        external: false
    

    我“只”在找体积部分。剩下的似乎很清楚。
    感谢您的帮助

    0 回复  |  直到 3 年前
        1
  •  1
  •   kkopczak    3 年前

    两种解决方案( hostpath emptydir )你发现看起来不错。

    在这里,您有两个的文件:


    a. hostPath volume将文件或目录从主机节点的文件系统装载到您的Pod中。

    至所需 path 属性,也可以指定 type 对于 hostPath 体积

    注释 : HostPath卷存在许多安全风险,最好尽可能避免使用HostPath。当必须使用HostPath卷时,它的作用域应仅限于所需的文件或目录,并作为 只读


    emptyDir 当一个Pod被分配给一个节点时,卷首先被创建,并且只要该Pod在该节点上运行,卷就存在。

    EmptyDir 卷最初为空。pod中的所有容器都具有 emptyDir 卷,以读取和写入相同的文件,尽管该卷可能存在不同的本地化(它可以安装在每个容器中的相同或不同路径)。

    如果Pod因任何原因从节点中删除,则中的数据 emptyDir 已删除 永久地

    根据您的环境, emptyDir 卷存储在支持节点的任何介质上,如磁盘或SSD或网络存储。

        2
  •  1
  •   Harsh Manvar    3 年前

    是的,您可以使用 主机路径 或者您可以使用 emptydir 由你负责

    可能 主机路径 会是一个更好的选择。

    如果您计划使用 迷你库贝 您也可以查看 PV 聚氯乙烯 选项,主要用于 坚持不懈 存储在Kubernetes中。

    主机路径 : https://kubernetes.io/docs/concepts/storage/volumes/#hostpath-configuration-example

    emptydir : https://kubernetes.io/docs/concepts/storage/volumes/#emptydir