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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
³ÖÐø½»¸¶ÏµÁУ¨¶þ£©£ºÊ¹ÓÃDocker¡¢MesosʵÏÖ³ÖÐø½»¸¶
 
À´Ô´£ºOPEN¾­Ñé¿â ·¢²¼ÓÚ 2015-5-14
  3887  次浏览      27
 

±¾ÎÄÖ÷Òª½éÉÜMesosºÍMarathonµÄ´î½¨ÒÔ¼°ÈçºÎÍê³ÉÕû¸ö³ÖÐø½»¸¶¹ý³Ì£¬ÒÔ¼°ºóÐø»¹¿ÉÒÔ×öÄÄЩ¸Ä½øºÍ¼ÓÇ¿¡£Õû¸öϵͳ´î½¨Íê³Éºó£¬Ó¦ÓôúÂëµÄ¸Ä±ä»á ×Ô¶¯´¥·¢Jenkins¹¹½¨Á÷³Ì£¬¼¸ÃëÖӺ󣬸ıä¾Í»áͨ¹ýJenkins¡¢Docker HubºÍMarathon´«µÝµ½MesosÖв¿ÊðÉÏÏߣ¬ÊDz»ÊǺܿ᣿

µÚÒ»²¿·Ö£¨ ÖÐÎÄ·­Ò룩ÎÒÃǽéÉÜÁËÈçºÎDocker»¯Ò»¸öNode.jsÓ¦Óã¬ÈçºÎʹÓÃFig²¿ÊðJenkinsºÍDocker Registry£¬ÒÔ¼°ÈçºÎʵÏÖNode.jsÓ¦ÓõijÖÐø¼¯³É¡£

±¾ÎÄÊǵڶþ²¿·Ö£¬½«¼ÌÐø½éÉÜMesosºÍMarathonµÄ´î½¨ÒÔ¼°ÈçºÎÍê³ÉÕû¸ö³ÖÐø½»¸¶¹ý³Ì¡£

Èç¹ûÄã²»Á˽âMesos»òÕßMarathon£¬¿ÉÒԲο¼ÈçÏÂÎÄÕ£º ÎÄÕÂ1¡¢ ÎÄÕÂ2ºÍ ÎÄÕÂ3¡£

ÏÖÔÚ£¬ÎÒÃÇÓÐÁ˹¦ÄÜÐÔ¿ª·¢ºÍ³ÖÐø¼¯³ÉµÄ»·¾³£¬¿ÉÒÔ¿ªÊ¼´î½¨Mesos¼¯ÈºÁË¡£

ÈçÏÂÊǰüº¬ÏµÍ³ËùÓв¿·ÖµÄfig.ymlÎļþ¡£ÔÚ֮ǰÅäÖúõÄJenkinsºÍDocker Registry»ù´¡Ö®ÉÏ£¬ÎÒÃÇ»¹ÓÐMesos master¡¢Mesos slave¡¢Mesosphere MarathonºÍ¸ºÔðÄÚ²¿MesosͨÐŵÄZookeeper¡£

# Zookeeper: -p 2181:2181 -p 2888:2888 -p 3888:3888
zookeeper:
image: jplock/zookeeper:3.4.5
ports:
- "2181"
master:
image: redjack/mesos-master:0.21.0
hostname: master
links:
- zookeeper:zookeeper
environment:
- MESOS_ZK=zk://zookeeper:2181/mesos
- MESOS_QUORUM=1
- MESOS_WORK_DIR=/var/lib/mesos
- MESOS_LOG_DIR=/var/log
ports:
- "5050:5050"
marathon:
#image: garland/mesosphere-docker-marathon
image: mesosphere/marathon
links:
- zookeeper:zookeeper
ports:
- "8080:8080"
# this image does not respect MARATHON_ env variables, so adding the params via command
command: --master zk://zookeeper:2181/mesos --zk zk://zookeeper:2181/marathon
slave:
image: redjack/mesos-slave:0.21.0
links:
- zookeeper:zookeeper
- master:master
environment:
- MESOS_MASTER=zk://zookeeper:2181/mesos
- MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins
- MESOS_CONTAINERIZERS=docker,mesos
- MESOS_ISOLATOR=cgroups/cpu,cgroups/mem
- MESOS_LOG_DIR=/var/log
volumes:
- /var/run/docker.sock:/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /sys:/sys:ro
- mesosslace-stuff:/var/log
expose:
- "5051"
jenkins:
image: containersol/jenkins_with_docker
links:
- marathon:marathon
volumes:
- jenkins-stuff:/var/jenkins_home
- .:/var/jenkins_data
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
ports:
- "8081:8080"
registry:
image: registry
environment:
- STORAGE_PATH=/registry
volumes:
- registry-stuff:/registry
ports:
- "5000:5000"

fig.yml²»¶à×ö½âÊÍ¡£ËùÓл·¾³²ÎÊý¶¼ÊDzο¼Docker HubÉ϶ÔÓ¦¾µÏñµÄʹÓýéÉÜ¡£

Mesos slaveÈÝÆ÷»¹Ê¹ÓÃÁ˹ÒÔØsocketµÄ¼¼ÇÉ£¬²»¹ý²»ÐèÒª×ö±ðµÄ£¬ÒòΪslaveÊÇÓÃrootÓû§ÔËÐеģ¬ÓзÃÎÊsocketµÄȨÏÞ¡£

ҪעÒâJenkinsÈÝÆ÷Á¬½Óµ½ÁËMarathon¡£Õâ¾ÍÒªÇóÄܹ»´ÓJenkinsÈÝÆ÷·¢ËÍÇëÇóµ½MarathonÈÝÆ÷Àï¡£ÎÒÃÇÔÚÏÂÒ»Õ½éÉܲ¿ÊðµÄʱºò»áÏêϸ˵Ã÷¡£

ÏÖÔÚÖØÆôϵͳ£¬¿ÉÒÔ¿´µ½ÏµÍ³¿ªÊ¼ÔËÐУº

$ fig up
Creating cddemo_registry_1...
Recreating cddemo_zookeeper_1...
Creating cddemo_master_1...
Creating cddemo_slave_1...
Recreating cddemo_marathon_1...
Creating cddemo_jenkins_1...

ÈÝÆ÷Æô¶¯·Ç³£¿ì£¬µ«ÊÇÒªµÈËùÓзþÎñ¶¼ÉÏÏß´ó¸Å»¨ÁË30Ã루ÔÚMacBook AirÉϵÄUbuntuÐéÄâ»úÀ¡£

MesosÔÚhttp://localhost:5050¡£ÈçϽØÍ¼Àï¿ÉÒÔ¿´µ½Ò»¸ö»î¶¯µÄslave¡£¸ÃslaveÔÚ±¾´ÎÅäÖÃÏÂûÓб©Â¶Èκζ˿ڡ£

´Óhttp://localhost:8080¿ÉÒÔ·ÃÎÊMarathon¡£

²¿Êð

×îºóÒ»²½Êǽ«ÎÒÃÇÓÃMarathonÔÚMesosÉÏй¹½¨µÄDocker¾µÏñ²¿ÊðºÃ¡£

Ê×ÏÈÐèÒª´´½¨ÅäÖÃÎļþ½«Ó¦Óð²Åŵ½MarathonÉÏ£¬ÈçÏÂapp_marathon.json:

{
"id": "app",
"container": {
"docker": {
"image": "localhost:5000/containersol/nodejs_app:latest",
"network": "BRIDGE",
"portMappings": [
{"containerPort": 8000, "servicePort": 8000}
]
}
},
"cpus": 0.2,
"mem": 512.0,
"instances": 1
}

ÕâÀïÒ²ÓÐһЩÐèҪעÒâµÄµØ·½¡£±ÈÈ磬ûÓÐÌáµ½½¡¿µ¼ì²é£¬ÐèÒª¸æËßMarathonÓ¦ÓÃÔËÐкͲ»ÔËÐеÄʱ¼ä¡£

Ò»µ©ÎÒÃÇ·¢²¼ÁËÕâ¸öJSONÎļþ£¬¾Í¿ÉÒÔÔÚdeploy.shÀïÌí¼Ó×îеĽű¾£¬ÒƳý×î½üÔËÐеÄÓ¦Ó㬲¢ÇÒÓÃеľµÏñÖØÐ²¿ÊðËü¡£µ±È»ÓиüºÃµÄÉý¼¶²ßÂÔ£¬²»¹ý²»ÔÚÕâÀïÌÖÂÛ¡£

#!/bin/bash

if [ -z "${1}" ]; then
version="latest"
marathon="localhost"
else
version="${1}"
marathon=${MARATHON_PORT_8080_TCP_ADDR}
fi

# destroy old application
curl -X DELETE -H "Content-Type: application/json" http://${marathon}:8080/v2/apps/app 

# I know this one is ugly. But it works for now.
sleep 1

# these lines will create a copy of app_marathon.json and update the image version
cp -f app_marathon.json app_marathon.json.tmp
sed -i "s/latest/${version}/g" app_marathon.json.tmp

# post the application to Marathon
curl -X POST -H "Content-Type: application/json" http://${marathon}:8080/v2/apps -d@app_marathon.json.tmp

×îºóÒ»²½Êǽ«deploy.shÌí¼Óµ½JenkinsµÄÅäÖÃÖв¢ÔËÐй¹½¨¡£

³É¹¦¹¹½¨Ö®ºó£¬¿ÉÒÔ¿´µ½Ó¦ÓÃÔËÐÐÔÚMarathonÉÏ£º

´Óhttp://localhost:31000¿ÉÒÔ·ÃÎÊÎÒÃÇ×Ô¼ºµÄÓ¦Óãº

ÏÖÔÚ¿ÉÒÔÊÔןıäÓ¦Óò¢ÇÒ´¥·¢JenkinsÈ¥¹¹½¨build¡£¼¸ÃëÖÓºó£¬Õâ¸ö¸Ä±ä¾Í»áͨ¹ýJenkins¡¢Docker HubºÍMarathon´«µÝµ½MesosÀ

¸Ä½ø

ÒªÏë¸Ä½øÕâ¸öϵͳÓÐÁ½¸ö´ó·½Ïò£ºÌí¼Ó¸ü¶àµÄ¹¦ÄÜÒÔ¼°ÌáÉý´î½¨ÖÊÁ¿£¨deepening the quality of the setup£©¡£¿ÉÄܵÄÀ©Õ¹Óкܶ࣬ÎÒÃÇÖ»ÁÐÁ˼¸¸öÀý×Ó£º

½«HelloWorldʾÀýÀ©Õ¹ÎªÒ»¸ö±ê×¼WebÓ¦ÓÃ

¶àÓïÑÔÖ§³Ö

¶à²ã´ÎµÄ×Ô¶¯»¯²âÊÔ£¨µ¥Ôª²âÊÔ¡¢ÏµÍ³²âÊÔ¡¢ÐÔÄܲâÊԵȵȡ££©

ÓÃGit hook×Ô¶¯´¥·¢Jenkins build

²¿Êðµ½¹«ÓÐÔÆÀ±ÈÈçGCE¡¢AWSµÈ

ÔÚ¶àÖ÷»úÉÏÔËÐÐ

HAProxy´î½¨

ÓÃJmeterʵÏÖ¸ºÔØÄ£ÄâϵÄ×Ô¶¯À©Õ¹

²¿ÊðÒ»¸ö»ùÓÚ΢·þÎñµÄϵͳ

ʹÓÃFlocker×ö³Ö¾Ã»¯´æ´¢

ʹÓÃWeave×÷ÎªÍøÂçÈÝÆ÷

ʹÓÃConsulʵÏÖ×Ô¶¯·þÎñ·¢ÏÖ

Ìí¼Óϵͳ¼à¿Ø

Ìí¼Ó¼¯ÖÐʽÈÕÖ¾

ÎÒµÄÏÂÒ»²½Ïëʹϵͳ¿ÉÒÔÃæÏòÍⲿÓû§£¬Ìí¼ÓHAProxyºÍ×Ô¶¯À©Õ¹µÄÄÜÁ¦£¬ÈçÏÂͼËùʾ£º

×îºóµÄ»°

Ò»¿ªÊ¼´î½¨Õâ¸öϵͳÖ÷ÒªÊÇÏë°ïÖú¿ª·¢ºÍÔËάÈËԱѧϰÈçºÎÔÚ³ÖÐø½»¸¶ÁìÓòʹÓÃDockerºÍMesos¡£ÔÚ¼¸¸öÔµĹý³ÌÖÐÎÒ·¢ÏÖÍêÕûµÄϵͳºÜ¸´ÔÓ£¬ºÜÄѽâÊÍ£¬¸üÄѴºÍʹÓá£

ÎÒÃÇÇë Marta marszal´´½¨Á˱¾ÎĵÄͼ±í£¬ÒÔÈÃÎÄÕ¸üÈÝÒ×Àí½â¡£

Èç¹ûÓиĽø±¾Ê¾ÀýϵͳµÄ½¨Ò飬ÇëÒ»¶¨¸æËßÎÒÃÇ¡£

   
3887 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

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

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

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

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

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

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