ÔõÑùÔÚLinuxÉÏʹÓÃÈÝÆ÷»¯ÊÖÒÕ°²ÅÅÓ¦ÓÃ
ÔõÑùÔÚlinuxÉÏʹÓÃÈÝÆ÷»¯ÊÖÒÕ°²ÅÅÓ¦ÓÃ
СÐò£º
ÔÚµ±½ñ»¥ÁªÍøʱ´ú£¬Ó¦Óÿª·¢ºÍ°²ÅŵÄËÙÂÊÊÇÆóÒµÀֳɵÄÒªº¦¡£ÎªÁ˼ÓËÙ¿ª·¢ºÍ°²ÅŵÄËÙÂÊ£¬ÈÝÆ÷»¯ÊÖÒÕÓ¦Ô˶øÉú¡£ÈÝÆ÷»¯ÊÖÒÕ¿ÉÒÔ½«Ó¦ÓóÌÐò¼°ÆäÒÀÀµ´ò°üΪһ¸ö×ÔÁ¦µÄ¡¢¿ÉÒÆÖ²µÄÈÝÆ÷£¬Ê¹Æä¿ÉÒÔÔÚÈκÎƽ̨ÉÏÔËÐУ¬ïÔÌÁËÇéÐÎÉèÖõÄÖØ´óÐÔ¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«ÏÈÈÝÔõÑùÔÚLinuxÉÏʹÓÃÈÝÆ÷»¯ÊÖÒÕÀ´°²ÅÅÓ¦Óã¬ÒÔ±ã¿ìËÙ¡¢¸ßЧµØÖª×ãÆóÒµµÄÐèÇó¡£
Ò»¡¢Ê²Ã´ÊÇÈÝÆ÷»¯ÊÖÒÕ£¿
ÈÝÆ÷»¯ÊÖÒÕÊÇÒ»ÖÖ½«Ó¦ÓóÌÐò¼°ÆäÒÀÀµ×ÊÔ´×ÔÁ¦·â×°µÄÊÖÒÕ¡£ÈÝÆ÷¿ÉÒÔÏñÒ»¸öÐéÄâ»úÒ»ÑùÔËÐÐÔÚÎïÀí»ú»òÕßÐéÄâ»úÉÏ£¬¿ÉÊÇÓëÐéÄâ»ú²î±ðµÄÊÇ£¬ÈÝÆ÷ÓëËÞÖ÷»ú¹²Ïí²Ù×÷ϵͳÄںˣ¬Òò´ËÔ½·¢ÇáÁ¿¼¶¡¢Æô¶¯ËÙÂʸü¿ì¡£
¶þ¡¢Docker: ×îÊܽӴýµÄÈÝÆ÷»¯Æ½Ì¨
Docker ÊÇÏÖÔÚ×îÊܽӴýµÄÈÝÆ÷»¯Æ½Ì¨Ö®Ò»£¬¾ßÓÐÆÕ±éµÄÖ§³ÖºÍÇ¿Ê¢µÄÉçÇøÉú̬ϵͳ¡£ÒÔÏÂÊÇÔõÑùÔÚLinuxÉÏʹÓÃDocker¾ÙÐÐÓ¦Óð²Åŵİ취£º
×°ÖÃDocker
Ê×ÏÈ£¬ÎÒÃÇÐèҪװÖÃDocker¡£ÔÚLinux ÉÏ£¬¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÀ´×°ÖÃDocker£º
sudo apt-get update sudo apt-get install docker-ce
µÇ¼ºó¸´ÖÆ
½¨ÉèDockerfile
Dockerfile ÊÇÓÃÀ´½ç˵Docker ¾µÏñµÄ¹¹½¨Àú³ÌµÄÎļþ¡£¿ÉÒÔʹÓÃí§ÒâÎı¾±à¼Æ÷½¨ÉèÒ»¸öDockerfile£¬Ê¾ÀýÈçÏ£º
# ʹÓûù´¡¾µÏñ FROM ubuntu:18.04 # ÉèÖÃ×÷ÕßÐÅÏ¢ MAINTAINER John Doe <john.doe@example.com> # ×°ÖÃÓ¦ÓÃËùÐèµÄÒÀÀµ RUN apt-get update && apt-get install -y python python-pip # ¸´ÖÆÓ¦ÓÃÎļþµ½¾µÏñÖÐ COPY app.py /app # ̻¶ӦÓÃÔËÐÐµÄ¶Ë¿Ú EXPOSE 5000 # ÉèÖÃÆô¶¯Ê±µÄĬÈÏÏÂÁî CMD ["python", "/app/app.py"]
µÇ¼ºó¸´ÖÆ
¹¹½¨Docker¾µÏñ
ÔÚDockerfileËùÔÚµÄĿ¼Ï£¬ÔËÐÐÒÔÏÂÏÂÁîÀ´¹¹½¨Docker ¾µÏñ£º
docker build -t my-app .
µÇ¼ºó¸´ÖÆ
ÔËÐÐDockerÈÝÆ÷
¹¹½¨Àֳɺ󣬿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÀ´ÔËÐÐDockerÈÝÆ÷£º
docker run -d -p 5000:5000 my-app
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÏÂÁîÖУ¬-d ²ÎÊýÌåÏÖÒÔºǫ́·½·¨ÔËÐÐÈÝÆ÷£¬-p ²ÎÊýÓÃÀ´Ö¸¶¨ËÞÖ÷»ú¶Ë¿ÚºÍÈÝÆ÷¶Ë¿ÚµÄÓ³Éä¹Øϵ£¬my-app ÊÇËùʹÓõÄDocker¾µÏñµÄÃû³Æ¡£
»á¼ûÓ¦ÓÃ
Ó¦ÓÃÏÖÔÚÒѾÔËÐÐÔÚDockerÈÝÆ÷ÖС£¿ÉÒÔͨ¹ýä¯ÀÀÆ÷»á¼û http://localhost:5000 À´Éó²éÓ¦ÓõĽçÃæ¡£
Èý¡¢Kubernetes: ÂþÑÜʽÈÝÆ÷»¯ÖÎÀíƽ̨
Kubernetes ÊÇÒ»¸öÓÃÓÚÖÎÀíÈÝÆ÷»¯Ó¦ÓõĿªÔ´Æ½Ì¨¡£Ëü¿ÉÒÔ×ÊÖúÎÒÃǸüºÃµØÖÎÀíºÍ±àÅÅÈÝÆ÷£¬Ìṩ¸ß¿ÉÓÃÐԺ͵¯ÐÔÉìËõµÄÄÜÁ¦¡£ÒÔÏÂÊÇÔõÑùÔÚLinuxÉÏʹÓÃKubernetes ¾ÙÐÐÓ¦Óð²Åŵİ취£º
×°ÖÃKubernetes
Ê×ÏÈ£¬ÎÒÃÇÐèҪװÖÃKubernetes¡£¿ÉÒÔƾ֤²î±ðµÄLinux¿¯ÐаæÀ´Ñ¡ÔñºÏÊʵÄ×°Ö÷½·¨£¬Ïêϸ¿ÉÒԲο¼Kubernetes ¹Ù·½Îĵµ¡£ÔÚ×°ÖÃÍê³Éºó£¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁîÀ´¼ì²éKubernetesÊÇ·ñÀÖ³É×°Öãº
kubectl version
µÇ¼ºó¸´ÖÆ
½¨ÉèDeployment
ÔÚKubernetesÖУ¬¿ÉÒÔʹÓÃDeploymentÀ´½ç˵ӦÓõݲÅÅ·½·¨¡£¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁÉèÒ»¸öDeployment ¹¤¾ß£º
kubectl create deployment my-app --image=my-app:latest
µÇ¼ºó¸´ÖÆ
̻¶Service
½¨ÉèDeploymentºó£¬»¹ÐèÒª½¨ÉèÒ»¸öService À´Ì»Â¶Ó¦ÓõĻá¼û¶Ë¿Ú¡£¿ÉÒÔʹÓÃÒÔÏÂÏÂÁÉèService ¹¤¾ß£º
kubectl expose deployment my-app --port=80 --target-port=5000
µÇ¼ºó¸´ÖÆ
»á¼ûÓ¦ÓÃ
ÏÖÔÚ£¬Ó¦ÓÃÒѾÀֳɰ²ÅÅÔÚKubernetes ¼¯ÈºÖС£¿ÉÒÔʹÓÃÒÔÏÂÏÂÁîÀ´»ñÈ¡Service µÄIP µØµã£º
kubectl get services
µÇ¼ºó¸´ÖÆ
ͨ¹ýä¯ÀÀÆ÷»á¼û http:// :80£¬¼´¿ÉÉó²éÓ¦ÓõĽçÃæ¡£
½áÂÛ£º
ÈÝÆ÷»¯ÊÖÒÕΪÆóÒµµÄÓ¦Óÿª·¢Óë°²ÅÅ´øÀ´ÁËÖØ´óµÄ±ãµ±¡£±¾ÎÄÏÈÈÝÁËÔÚLinuxÉÏʹÓÃDocker ºÍKubernetes ¾ÙÐÐÓ¦Óð²ÅŵÄÒªÁ죬²¢¸ø³öÁËÏà¹Ø´úÂëʾÀý¡£Ï£Íû¶ÁÕßͨ¹ý±¾ÎĵÄÖ¸µ¼£¬Äܹ»Ô½·¢¿ìËÙ¡¢¸ßЧµØ°²ÅÅÓ¦Óã¬ÌáÉýÉú²úÁ¦¡£
²Î¿¼Á´½Ó£º
Docker¹Ù·½Îĵµ£ºhttps://docs.docker.com/
Kubernetes¹Ù·½Îĵµ£ºhttps://kubernetes.io/
ÒÔÉϾÍÊÇÔõÑùÔÚLinuxÉÏʹÓÃÈÝÆ÷»¯ÊÖÒÕ°²ÅÅÓ¦ÓõÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡