gpt4 book ai didi

docker - 将 Docker 用于 HPC 和 Sun Grid Engine

转载 作者:行者123 更新时间:2023-12-03 22:19:30 26 4
gpt4 key购买 nike

我想知道是否可以使用 Docker 创建一个虚拟集群,以便我可以使用 SGE 集群管理运行专为 HPC 集群设计的脚本。这些是非常大/复杂的工作流程,所以它不仅仅是我可以重写的东西,比如 TORQUE/PBS。从理论上讲,我应该能够让 Docker 认为有多个节点,就像我的内部 HPC 集群一样。如果有人能帮我避免告诉我它无法完成的痛苦,我将不胜感激。

警告:我不是集群管理员。我更像是最终用户。我在 Mac OSX 10.9.5 上运行

Client version: 1.7.0
Client API version: 1.19 Go version (client): go1.4.2 Git commit
(client): 0baf609 OS/Arch (client): darwin/amd64 Server version: 1.7.0
Server API version: 1.19 Go version (server): go1.4.2 Git commit
(server): 0baf609 OS/Arch (server): linux/amd64 bash-3.2$ boot2docker
version Boot2Docker-cli version: v1.7.0 Git commit: 7d89508


我一直在使用图像的衍生物( Dockerfilehere )。我的步骤非常简单,请按照 website 上的说明进行操作。 :
  • 创建图片

  • docker-machine create -d virtualbox local

  • 使其成为事件图像

  • eval "$(docker-machine env local)"

  • 获取群体图像

  • docker run --rm swarm create

  • 创建swarm master

  • docker-machine create \
    -d virtualbox \
    --swarm \
    --swarm-master \
    --swarm-discovery token://$TOKEN \
    swarm-master

  • 使用 token 创建 swarm 节点

  • docker-machine create \
    -d virtualbox \
    --swarm \
    --swarm-discovery token://$TOKEN \
    swarm-agent-00

  • 添加另一个节点

  •  docker-machine create \
    -d virtualbox \
    --swarm \
    --swarm-discovery token://$TOKEN \
    swarm-agent-01


    现在是疯狂的部分。当我尝试使用以下命令获取图像时: eval "$(docker-machine env --swarm swarm-master)"我得到这个愚蠢的东西 Cannot connect to the Docker daemon. Is 'docker -d' running on this host? .然后我尝试了 eval $(docker-machine env swarm-master)它有效,但我不是 100% 确定它是正确的:
    NAME             ACTIVE   DRIVER       STATE     URL                         SWARM 
    local virtualbox Running tcp://192.168.99.105:2376
    swarm-agent-00 virtualbox Running tcp://192.168.99.107:2376 swarm-master
    swarm-agent-01 virtualbox Running tcp://192.168.99.108:2376 swarm-master
    swarm-master * virtualbox Running tcp://192.168.99.106:2376 swarm-master (master)
  • 此时,我使用以下 yaml 文件构建我的多容器应用程序:

  • bior:
    image: stevenhart/bior_annotate
    command: login -f sgeadmin
    volumes:
    - .:/Data
    links:
    - sge

    sge:
    build: .
    ports:
    - "6444"
    - "6445"
    - "6446"


    使用 docker-compose up
  • 然后终于打开新图片

  • docker run -it --rm dockersge_sge login -f sgeadmin



    但问题来了

    当我运行时 qhost我得到以下信息:

        HOSTNAME                ARCH         NCPU NSOC NCOR NTHR  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS
    ----------------------------------------------------------------------------------------------
    global - - - - - - - - - -
    6bf6f6fda409 lx-amd64 1 1 1 1 0.01 996.2M 96.2M 1.1G 0.0


    难道不应该认为有多个 CPU,即我的 swarm 节点中的每一个?

    最佳答案

    我假设您在 docker 中运行 qhost。

    swarm 的问题在于,它不会将所有主机合并为一个 机(我以前也是这么认为的)。

    相反,例如,您有 5 台单核机器,然后 swarm 将选择一台具有尽可能少的 docker 的机器并在该机器上运行 docker。

    因此,swarm 是将 docker 分散到集群中的 Controller ,而不是将主机合二为一。

    希望能帮助到你!如果您有其他问题,请提问:)

    更新

    我不确定它是否适合你,但如果你没有用 swarm 得到它,我会推荐 kubernetes。我在我的树莓派上使用它。它非常酷,比 swarm 更成熟,具有自动愈合等功能。

    我不知道,但肯定也有一种将 docker 与 hadoop 集成的方法......

    关于docker - 将 Docker 用于 HPC 和 Sun Grid Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31529392/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com