제 목표는 3 개의 리눅스 (우분투) 물리적 워크 스테이션 그룹에 도커 웜을 설정하고 그 위에 dask 클러스터를 실행하는 것입니다.도커 웜 노드가 웜의 다른 호스트에서 서비스를 감지 할 수 없습니다.
$ docker --version
Docker version 17.06.0-ce, build 02c1d87
나는 도커 떼를 초기화 할 수 있으며 모든 기계를 떼에 추가 할 수 있습니다.
cordoba$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
j8k3hm87w1vxizfv7f1bu3nfg box1 Ready Active
twg112y4m5tkeyi5s5vtlgrap box2 Ready Active
upkr459m75au0vnq64v5k5euh * box3 Ready Active Leader
나는 리더 상자에 docker stack deploy -c docker-compose.yml dask-cluster
을 실행합니다.
version: "3"
services:
dscheduler:
image: richardbrks/dask-cluster
ports:
- "8786:8786"
- "9786:9786"
- "8787:8787"
command: dask-scheduler
networks:
- distributed
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.role == manager]
dworker:
image: richardbrks/dask-cluster
command: dask-worker dscheduler:8786
environment:
- "affinity:container!=dworker*"
networks:
- distributed
depends_on:
- dscheduler
deploy:
replicas: 3
restart_policy:
condition: on-failure
networks:
distributed:
여기 richardbrks/dask-cluster
입니다 : 여기
는 docker-compose.yml
이다 나는 떼를 배포 할 때
# Official python base image
FROM python:2.7
# update apt-repository
RUN apt-get update
# only install enough library to run dask on a cluster (with monitoring)
RUN pip install --no-cache-dir \
psutil \
dask[complete]==0.15.2 \
bokeh
것은 dscheduler
와 동일한 시스템에없는 dworker
노드가 무엇을 알고하지 않습니다 dscheduler
입니다. 나는이 노드 중 하나에 ssh'd하고 env에서 보았습니다, 및 dscheduler
거기에 없었습니다. 또한 dscheduler
으로 핑 (ping)을 시도하고 "ping : unknown host"를 받았습니다.
도커가 이라는 서비스 검색을 기반으로 내부 DNS를 제공하여 dscheduler
을 호출하면 dschedler
노드의 주소로 이동한다고 생각했습니다.
컴퓨터에 일부 설정이 누락 되었습니까? 또는 내 파일에 누락 된 것이 있습니까?
이 모든 코드는 떼에 this issue에 따르면 https://github.com/MentalMasochist/dask-swarm
다른 서비스에 액세스하는 방법을 설명해 주시겠습니까? dworker container 안쪽에서합니까? – herm
@herm 예. 나는'dworker' 노드가 실행중인 컴퓨터에 ssh를 실행하고'docker ps'를 사용하여 컨테이너의 ID를 얻은 다음'docker exec -ti/bin/bash'를 입력하여 노드에 입력합니다 . 그것이'dscheduler'에게 ping을 시도하는 곳입니다. –
Rich
혼란스러운 용어입니다. 떼의 노드는 컴퓨터입니다. docker exec를 사용하면 노드가 아닌 컨테이너를 입력 할 수 있습니다.잘못된 이름을 사용했지만 올바른 일을했습니다. :) – herm