Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓÃMesosºÍMarathon¹ÜÀíDocker¼¯Èº
 
À´Ô´£º½âµÀJdon ·¢²¼ÓÚ 2015-5-18
  4178  次浏览      29
 

·Ö²¼Ê½ÏµÍ³ÊÇÄÑÓÚÀí½â¡¢Éè¼Æ¡¢¹¹½¨ ºÍ¹ÜÀíµÄ£¬ËûÃǽ«±Èµ¥¸ö»úÆ÷³É±¶»¹Òª¶àµÄ±äÁ¿ÒýÈëµ½Éè¼ÆÖУ¬Ê¹Ó¦ÓóÌÐòµÄ¸ùÔ´ÎÊÌâ¸üÄÑ·¢ÏÖ¡£SLA(·þÎñˮƽЭÒé)ÊǺâÁ¿Í£»úºÍ/»òÐÔÄÜϽµµÄ±ê×¼£¬´ó¶àÊýÏÖ´úÓ¦ÓóÌÐòÓÐÒ»¸öÆÚÍûµÄµ¯ÐÔSLAˮƽ£¬Í¨³£°´"9"µÄÊýÁ¿Ôö¼Ó(Èç,ÿÔÂ99.9»ò99.99%¿ÉÓÃÐÔ)¡£Ã¿¸ö¶îÍâµÄ9±äµÃÔ½À´Ô½ÄÑʵÏÖ¡£

·Ö²¼Ê½ÏµÍ³Í¨³£ÊÇÒÔ¾²Ì¬·ÖÇø£¬±ÈÈçAkka/Play¡¢ Spark/Hadoop¡¢StormºÍ Redis¸÷×Ô·ÖÇø·Ö×é»®·Ö¡£¾²Ì¬·ÖÇø´øÀ´µÄȱµãÊÇÔö¼Ó¸´ÔÓÐÔ£¬Ëæ×Å»úÆ÷ÊýÁ¿Ôö¼Ó£¬Èí¼þ¹ÜÀíÔ½À´Ô½¸´ÔÓ£¬Ê§°Ü¹ÜÀíά»¤Ô½À´Ô½ÄÑ¡£¶øÇÒ×ÊÔ´ÏûºÄ·Ç³£²»¾­¼Ã£¬ÏÂͼÊǾ²Ì¬·ÖÇøÏÂ×ÊÔ´ÀûÓÃÂÊ£º

Apache MesosÄܹ»ÔÚͬÑùµÄ¼¯Èº»úÆ÷ÉÏÔËÐжàÖÖ·Ö²¼Ê½ÏµÍ³ÀàÐÍ£¬¸ü¼Ó¶¯Ì¬ÓÐЧÂʵ͹²Ïí×ÊÔ´¡£Ìṩʧ°ÜÕì²â£¬ÈÎÎñ·¢²¼£¬ÈÎÎñ¸ú×Ù£¬ÈÎÎñ¼à¿Ø£¬µÍ²ã´Î×ÊÔ´¹ÜÀíºÍϸÁ£¶ÈµÄ×ÊÔ´¹²Ïí£¬¿ÉÒÔÀ©Õ¹ÉìËõµ½Êýǧ¸ö½Úµã¡£MesosÒѾ­±»TwitterÓÃÀ´¹ÜÀíËüÃǵÄÊý¾ÝÖÐÐÄ¡£

Mesos¼Ü¹¹Í¼ÈçÏ£º

Mesos¿ò¼ÜÊÇÒ»¸öÔÚMesosÉÏÔËÐзֲ¼Ê½Ó¦ÓõÄÓ¦ÓóÌÐò£¬ËüÓÐÁ½¸ö×é¼þ£º

µ÷¶ÈÆ÷ : ÓëMesos½»»¥£¬¶©ÔÄ×ÊÔ´£¬È»ºóÔÚmesos´Ó·þÎñÆ÷ÖмÓÔØÈÎÎñ¡£

Ö´ÐÐÆ÷ : ´Ó¿ò¼ÜµÄ»·¾³±äÁ¿ ÅäÖÃÖлñµÃÐÅÏ¢£¬ÔÚmesos´Ó·þÎñÆ÷ÖÐÔËÐÐÈÎÎñ¡£

ÏÂÃæ¿´¿´ÆäÊÇÈçºÎʵÏÖ×ÊÔ´µ÷Óã¿Mesosͨ¹ý"resources offers" ·ÖÅä×ÊÔ´£¬×ÊÔ´ÆäʵÊǵ±Ç°¿ÉÓÃ×ÊÔ´µÄÒ»¸ö¿ìÕÕ£¬µ÷¶ÈÆ÷½«Ê¹ÓÃÕâЩ×ÊÔ´ÔÚmesos´Ó·þÎñÆ÷ÉÏÔËÐÐÈÎÎñ¡£

MesosÖ÷´Ó·þÎñÆ÷µ÷¶È×ÊÔ´µÄ˳ÐòͼÈçÏ£º

Ê×ÏÈÓÉMesosÖ÷·þÎñÆ÷²éѯ¿ÉÓÃ×ÊÔ´¸øµ÷¶ÈÆ÷£¬µÚ¶þ²½µ÷¶ÈÆ÷ÏòÖ÷·þÎñÆ÷·¢³ö¼ÓÔØÈÎÎñ£¬Ö÷·þÎñÆ÷ÔÙ´«´ï¸ø´Ó·þÎñÆ÷£¬´Ó·þÎñÆ÷ÏòÖ´ÐÐÆ÷ÃüÁî¼ÓÔØÈÎÎñÖ´ÐУ¬Ö´ÐÐÆ÷Ö´ÐÐÈÎÎñÒԺ󣬽«×´Ì¬·´À¡Éϱ¨¸ø´Ó·þÎñÆ÷£¬×îÖÕ¸æÖªµ÷¶ÈÆ÷ ¡£

´Ó·þÎñÆ÷ϹÜÀí¶à¸öÖ´ÐÐÆ÷£¬Ã¿¸öÖ´ÐÐÆ÷ÊÇÒ»¸öÈÝÆ÷£¬ÒÔǰ¿ÉÒÔʹÓÃLinuxÈÝÆ÷LXC£¬ÏÖÔÚʹÓÃDockerÈÝÆ÷¡£

ʧ°Ü»Ö¸´ºÍ¸ß¿ÉÓÃÐÔ

MesosÖ÷·þÎñÆ÷ʹÓÃZookeeper½øÐзþÎñÑ¡¾ÙºÍ·¢ÏÖ¡£ËüÓÐÒ»¸ö×¢²áÆ÷¼Ç¼ÁËËùÓÐÔËÐÐÈκκʹӷþÎñÆ÷ÐÅÏ¢£¬Ê¹ÓÃMultiPaxos½øÐÐÈÕÖ¾¸´ÖÆÊµÏÖÒ»ÖÂÐÔ¡£

MesosÓÐÒ»¸ö´Ó·þÎñÆ÷»Ö¸´»úÖÆ£¬ÎÞÂÛʲôʱºòÒ»¸ö´Ó·þÎñÆ÷ËÀ»úÁË£¬Óû§µÄÈÎÎñ»¹ÊÇÄܹ»¼ÌÐøÔËÐУ¬´Ó·þÎñÆ÷»á½«Ò»Ð©¹Ø¼üµãÐÅÏ¢ÈçÈÎÎñÐÅÏ¢ ״̬¸üг־û¯µ½±¾µØ´ÅÅÌÉÏ£¬ÖØÐÂÆô¶¯Ê±¿ÉÒÔ´Ó´ÅÅÌÉϻָ´ÔËÐÐÕâЩÈÎÎñ(ÀàËÆJavaÖеĶۻ¯ºÍ»½ÐÑ)

ʲôÊÇMarathon

ËüÊÇÒ»¸ömesos¿ò¼Ü£¬Äܹ»Ö§³ÖÔËÐг¤·þÎñ£¬±ÈÈçwebÓ¦Óõȡ£ÊǼ¯ÈºµÄ·Ö²¼Ê½Init.d£¬Äܹ»Ô­ÑùÔËÐÐÈκÎLinux¶þ½øÖÆ·¢²¼°æ±¾£¬ÈçTomcat PlayµÈµÈ£¬¿ÉÒÔ¼¯ÈºµÄ¶à½ø³Ì¹ÜÀí¡£Ò²ÊÇÒ»ÖÖ˽ÓеÄPass£¬ÊµÏÖ·þÎñµÄ·¢ÏÖ£¬Îª²¿ÊðÌṩÌṩREST API·þÎñ£¬ÓÐÊÚȨºÍSSL¡¢ÅäÖÃÔ¼Êø£¬Í¨¹ýHAProxyʵÏÖ·þÎñ·¢Ïֺ͸ºÔØÆ½ºâ¡£

ÕâÑù£¬ÎÒÃÇ¿ÉÒÔÈçͬһ̨LinuxÖ÷»úÒ»Ñù¹ÜÀíÊýǧ̨·þÎñÆ÷£¬ËüÃǵĶÔÓ¦Ô­ÀíÈçÏÂͼ£¬Ê¹ÓÃMarathonÀàËÆLinuxÖ÷»úÄÚµÄinit SystemdµÈÍâ¿Ç¹ÜÀí£¬¶øMesosÔò²»Ö»°üº¬Ò»¸öLinuxºË£¬¿ÉÒÔµ÷¶ÈÊýǧ̨·þÎñÆ÷µÄLinuxºË£¬Êµ¼ÊÊÇÒ»¸öÊý¾ÝÖÐÐĵÄÄںˣº

°²×°ÅäÖÃ

Ê×ÏÈ£¬ÎÒÃÇÐèÒªÉèÖÃMesos¼¯Èº»·¾³£¬ÏÂÃæÎÒÃÇÒÔÔÚUbuntu 14.04 vagrant ½ÚµãÉÏÉèÖÃMesos master/slave ºÍ Zookeeper¡£°²×°ÒÀÀµ£º

$ apt-get install curl python-setuptools python-pip python-dev python-protobuf

°²×°zookeeper:

$ apt-get install zookeeperd

°²×°ºó£¬ZookeeperÓÐÒ»¸öÅäÖã¬Ã¿¸öZookeeperÐèÒªÖªµÀËüÔÚquorumÖеÄλÖá£

$ echo 1 | sudo dd of=/var/lib/zookeeper/myid

ÏÂÃæÉèÖÃDocker:

$ echo "deb http://get.docker.io/ubuntu docker main" > /etc/apt/sources.list.d/docker.list

$ apt-get update && apt-get install lxc-docker

$ docker version

 Client version: 1.0.0
     Client API version: 1.12
     Go version (client): go1.2.1
     Git commit (client): 63fe64c
     Server version: 1.0.0
     Server API version: 1.12
     Go version (server): go1.2.1
     Git commit (server): 63fe64c

´ÓDocker HubÀ­È¡Ò»¸öubuntu image

$ docker pull libmesos/ubuntu

ÅäÖÃMesos:

$ curl -fL http://downloads.mesosphere.io/master/ubuntu/14.04/
mesos_0.19.0~ubuntu14.04%2B1_amd64.deb -o /tmp/mesos.deb
$ dpkg -i /tmp/mesos.deb
$ mkdir -p /etc/mesos-master
$ echo in_memory | sudo dd of=/etc/mesos-master/registry
## Mesos Python egg for use in authoring frameworks
$ curl -fL http://downloads.mesosphere.io/master/ubuntu/14.04/
mesos-0.19.0_rc2-py2.7-linux-x86_64.egg -o /tmp/mesos.egg
$ easy_install /tmp/mesos.egg

ÏÂÔØMarathon£º

$ tar xvzf marathon-0.6.0.tgz

Mesosͨ¹ýDeimos ¹ÜÀíDocker£¬Í¨¹ýpip°²×°Deimos:

$ pip install deimos

ÅäÖÃmesos ʹÓÃDeimos

$ mkdir -p /etc/mesos-slave
$ echo /usr/local/bin/deimos | sudo dd of=/etc/mesos-slave/containerizer_path
$ echo external | sudo dd of=/etc/mesos-slave/isolation

Æô¶¯ËùÓзþÎñ £º

$ initctl reload-configuration

$ service docker start

$ service zookeeper start

$ service mesos-master start

$ service mesos-slave start

##### Starting Marathon #####

$ cd marathon-0.6.0

$ ./bin/start --master zk://localhost:2181/mesos --zk_hosts localhost:2181

Marathon ÔÚ¶Ë¿Ú8080ÒѾ­Æô¶¯ÕìÌý£¬ÎÒÃÇ¿ÉÒÔͨ¹ýä¯ÀÀÆ÷·ÃÎÊ£º

curl localhost:8080/help # gives us some details about the API's

Æô¶¯ÈÝÆ÷

ÎÒÃÇͨ¹ýMarathonÆô¶¯Ò»¸öÈÝÆ÷µÄREST APIÌá½»ÈçÏÂ:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" \
localhost:8080/v2/apps -d '{
"container": {"image": "docker:///libmesos/ubuntu", "options": ["--privileged"]},
"cpus": 0.5,
"cmd": "sleep 500",
"id": "docker-tester",
"instances": 1,
"mem": 300
}'

ÎÒÃÇͨ¹ýÔÚcurlÃüÁîºóÑ¡Ïî"options"Ìá½»¶¨ÖƵÄDocker£¬ÎÒÃÇÄܼì²ésyslog £¬ÒòΪmesosȱʡÈÕÖ¾ÊÇ·ÅÔÚsyslogÖС£

Jun 27 07:24:58 vagrant-ubuntu-trusty-64 deimos[19227]: deimos.containerizer.docker.launch() exit 0
 // docker run --sig-proxy --rm --cidfile /tmp/deimos/mesos/00d459fb-22ca-4af7-9a97-ef8a510905f2/
cid -w /tmp/mesos-sandbox -v /tmp/deimos/mesos/00d459fb-22ca-4af7-9a97-ef8a510905f2/fs:/
tmp/mesos-sandbox --privileged -p 31498:31498 -c 512 -m 300m -e PORT=31498 -e 
PORT0=31498 -e PORTS=31498 libmesos/ubuntu sh -c 'sleep 500'

ÎÒÃÇÒ²ÄÜͨ¹ýMarathon Rest API¼ì²éÎÒÃÇÆô¶¯ÈÎÎñµÄ״̬£º

curl -X GET -H "Content-Type: application/json" localhost:8080/v2/apps

ÏÂÃæÊÇMarathon UI»ñµÃÐÅÏ¢µÄ½ØÍ¼£º

¸ü¶à¹ØÓÚDockerÈÎÎñµÄÐÅÏ¢¿ÉÒÔͨ¹ýMesos GUIÔÚMesosÖ÷·þÎñÆ÷µÄ¶Ë¿Ú5050 £¬ÏÖÔÚÎÒÃDzâÊÔÒ»ÏÂÈÎÎñµÄÉìËõÐÔ£¬±ÈÈçÎÒÃÇÐèÒª¼ÓÈë¸ü¶à½Úµã·þÎñÆ÷£¬ÓÐÁ½ÖÖ°ì·¨£¬Ê¹ÓÃGUI»òͨ¹ý·¢³öputÇëÇó¡£

curl -X PUT -H "Content-Type: application/json" localhost:8080/v2/apps/docker-tester \
"container": {"image": "docker:///libmesos/ubuntu", "options": ["--privileged"]},
"cpus": 0.5,
"cmd": "sleep 500",
"id": "docker-tester",
"instances": 2, # increasing the instance count to 2
"mem": 300
}'

MarathonÄÜÈ·±£ËùÓÐdocker½ø³ÌÆô¶¯ÔËÐУ¬Èç¹ûij¸ö½ø³Ì±ÀÀ££¬Marathon»áÖØÐÂÆô¶¯Í¬ÑùµÄ½ø³Ì£¬ÒÔÈ·±£Ã¿¸öÅäÖÃÔËÐÐÒ»¸öʵÀý£¬»¹ÓÐÆäËû¿ªÔ´Mesosµ÷¶ÈÆ÷ÈçApache Aurora, Airbnb's Chronos. µ«ÊÇmarathon±È½ÏÖ±½Ó¼òµ¥ÌṩºÃµÄREST APIÓÃÀ´¹ÜÀíÈÝÆ÷£¬ËäÈ»Mesos, Marathon ºÍDocker»¹ºÜÄêÇᣬµ«ÊÇÌṩÁË»ùÓÚDockerµÄɱÊÖ¼¶¼¯Èº¹ÜÀí×éºÏ¡£

   
4178 ´Îä¯ÀÀ       29
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ