Bring up scheduler as a pod -- scheduler
(num_servers,num_workers,algorithm,data_dir,output_dir)
| 22 | |
| 23 | |
| 24 | def upScheduler(num_servers,num_workers,algorithm,data_dir,output_dir): |
| 25 | ''' |
| 26 | Bring up scheduler as a pod -- scheduler |
| 27 | ''' |
| 28 | scheduler=dict() |
| 29 | scheduler['id']='scheduler' |
| 30 | scheduler['kind']='Pod' |
| 31 | scheduler['apiVersion']='v1beta1' |
| 32 | |
| 33 | ###set container### |
| 34 | container=dict() |
| 35 | container['name']='scheduler' |
| 36 | #image |
| 37 | container['image']='qicongc/pserver' |
| 38 | port=dict() |
| 39 | #port mapping |
| 40 | port['containerPort']=8000 |
| 41 | port['hostPort']=11000 |
| 42 | container['ports']=[port] |
| 43 | #environment variables |
| 44 | env=dict() |
| 45 | env['name']='LD_LIBRARY_PATH' |
| 46 | env['value']='/home/parameter_server/third_party/lib/' |
| 47 | container['env']=[env] |
| 48 | #working directory when container starts running |
| 49 | container['workingDir']='/home/parameter_server/script' |
| 50 | #command |
| 51 | cmd='../build/ps -num_servers '+str(num_servers)+' -num_workers '+str(num_workers)+' -num_threads '+str(num_servers+num_workers)+' -app_file ../config/'+algorithm+'_l1lr.conf -print_van -bind_to 8000 ' |
| 52 | cmd+="-scheduler \"role:SCHEDULER,hostname:\'`cat /tmp/docker/host/host`\',port:11000,id:\'H\'\" " |
| 53 | cmd+="-my_node \"role:SCHEDULER,hostname:\'`cat /tmp/docker/host/host`\',port:11000,id:\'H\'\"" |
| 54 | command=['sh','-c'] |
| 55 | command.append(cmd) |
| 56 | container['command']=command |
| 57 | #volume mapping -- container side |
| 58 | #path for container to identify current minion |
| 59 | volumeMount=dict() |
| 60 | volumeMount['name']='host' |
| 61 | volumeMount['mountPath']='/tmp/docker/host' |
| 62 | container['volumeMounts']=[volumeMount] |
| 63 | #path to van print |
| 64 | volumeMount=dict() |
| 65 | volumeMount['name']='log' |
| 66 | volumeMount['mountPath']='/home/parameter_server/script' |
| 67 | container['volumeMounts'].append(volumeMount) |
| 68 | #path to config file |
| 69 | volumeMount=dict() |
| 70 | volumeMount['name']='config' |
| 71 | volumeMount['mountPath']='/home/parameter_server/config' |
| 72 | container['volumeMounts'].append(volumeMount) |
| 73 | #path to data |
| 74 | volumeMount=dict() |
| 75 | volumeMount['name']='data' |
| 76 | volumeMount['mountPath']='/home/parameter_server/data' |
| 77 | container['volumeMounts'].append(volumeMount) |
| 78 | #path to output |
| 79 | volumeMount=dict() |
| 80 | volumeMount['name']='output' |
| 81 | volumeMount['mountPath']='/home/parameter_server/output' |