±à¼ÍƼö: |
±¾ÎÄÖ÷Òª·ÖÏíÁË
VContainer ÔÆÔÉúÏà¹Ø»ù´¡×é¼þµÄ×Ô¶¯»¯Êµ¼ù£¬´Ó°ë¹¤¾ß»¯È˹¤Î¬»¤£¬µ½°×ÆÁ»¯Á÷³ÌµÄʵ¼ùºÍÂ䵨¡£
±¾ÎÄÀ´×Ô InfoQ£¬ÓÉAlice±à¼¡¢ÍƼö¡£ |
|
±³ ¾°
2018 Äêµ×£¬vivo AI Ñо¿ÔºÎªÁ˽â¾öͳһ¸ßÐÔÄÜѵÁ·»·¾³¡¢´ó¹æÄ£·Ö²¼Ê½ÑµÁ·¡¢¼ÆËã×ÊÔ´µÄ¸ßЧÀûÓõ÷¶ÈµÈÍ´µã£¬×ÅÊÖ½¨Éè
AI ¼ÆËãÆ½Ì¨¡£¾¹ýÁ½ÄêµÄ³ÖÐøµü´ú£¬Æ½Ì¨½¨ÉèºÍÂäµØÈ¡µÃÁ˺ܴó½øÕ¹£¬³ÉΪ vivo AI ÁìÓòµÄºËÐÄ»ù´¡Æ½Ì¨¡£Æ½Ì¨´Óµ±³õ·þÎñÉî¶ÈѧϰѵÁ·ÎªÖ÷£¬µ½ÏÖÔÚÑݽø³É°üVTraining¡¢VServing¡¢VContainer
Èý´óÄ£¿é£¬¶ÔÍâÌṩģÐÍѵÁ·¡¢Ä£ÐÍÍÆÀíºÍÈÝÆ÷»¯ÄÜÁ¦¡£VContainer ÊǼÆËãÆ½Ì¨µÄµ××ù£¬»ùÓÚ Kubernetes
¹¹½¨µÄÈÝÆ÷ƽ̨£¬¾ß±¸×ÊÔ´µ÷¶È¡¢µ¯ÐÔÉìËõ¡¢ÁãÒ»»ì²¿µÈºËÐÄÄÜÁ¦¡£
VContainer µÄÈÝÆ÷¼¯ÈºÓÐÉÏǧ¸ö½Úµã£¬ÓµÓг¬¹ý 100PFLOPS µÄ GPU ËãÁ¦¡£¼¯ÈºÀïͬʱÔËÐÐ×ÅÉÏǧ¸ö
VTraining µÄѵÁ·ÈÎÎñºÍÉϰٸö VServing µÄÍÆÀí·þÎñÒÔ¼°ÉϰٸöÔÚÏß·þÎñÏîÄ¿¡£±¾ÎÄÖ÷Òª·ÖÏíÁË
VContainer ÔÆÔÉúÏà¹Ø»ù´¡×é¼þµÄ×Ô¶¯»¯Êµ¼ù£¬´Ó°ë¹¤¾ß»¯È˹¤Î¬»¤£¬µ½°×ÆÁ»¯Á÷³ÌµÄʵ¼ùºÍÂ䵨¡£
ÔçÆÚµÄ·çÏÕÓë²È¿Ó
ÎÒÃÇÔÚ 2018 Äêµ×¿ªÊ¼Ê¹Óà rke À´½¨Éè k8s ¼¯Èº£¬Ò²ËãÊÇ rke ÏîÄ¿ÔçÆÚµÄÓû§¡£¸ù¾Ýʵ¼ù¾Ñ飬ÎÒÃǽ«
k8s ¼¯Èº½¨ÉèºÍά»¤»®·ÖΪ£º»úÆ÷¹ÜÀí¡¢¼¯Èº¹ÜÀí¡¢ÈÝÆ÷ÍøÂç¹ÜÀí 3 ´ó²½Öè¡£ÔÚʵʩ¹ý³ÌÖУ¬ÎÒÃÇÃæ¶Ô×ÅһЩ·çÏÕ£¬Ò²²È¹ýÁËһЩ¿Ó¡£ÔçÆÚ¼¯Èº½¨Éè½×¶Î£¬·çÏÕÄÑÒÔ±ÜÃ⣬»á³öÏÖÔÚ±ä¸üµÄ¸÷¸ö»·½Úµ±ÖС£µ«ÎÒÃDz»Ó¦¸Ãº¦Å·çÏÕ£¬Ò²²»ÄÜÒòΪ·çÏյĴæÔÚ¶ø²»×ö±ä¸ü£¬ÎÒÃÇÓ¦¸Ã±£³Öƽ³£ÐÄ£¬¾´Î··çÏÕ£¬°ÑÎȶ¨ÐÔ·ÅÔÚÊ×ҪλÖá£
¡¤·çÏÕÒ»£¬¶à¼¯Èº³¡¾°£º»úÆ÷Êý¾Ýȱ·¦Í³Ò»¹Ü¿ØÄÜÁ¦£¬¼¯Èº A ½Úµã³öÏÖ±»Ìí¼Óµ½¼¯Èº B µÄÇé¿ö¡£
¡¤·çÏÕ¶þ£¬¼¯Èº½Úµã±»³õʼ»¯£º¼¯ÈºÎ¬»¤Óбê×¼Á÷³Ì£¬µ«ÊÇÁ÷³ÌÖв»Í¬²Ù×÷£¬Ê¹Óò»Í¬µÄ¹¤¾ßÍê³É£¬³õʼ»¯¹ý³Ì³öÏÖ¼¯Èº½ÚµãÒÅ©ÔÚ³õʼ»¯ÁбíµÄÇé¿ö¡£
¡¤·çÏÕÈý£¬±ä¸üÅäÖôíÎó£ºÔÚ¼¯Èº½¨ÉèºÍά»¤Èý¸ö²½ÖèÖУ¬ÅäÖÃÏîÖØ¸´·±ÔÓ£¬±ä¸ü¹¤¾ßȱ·¦Ð£Ñ鹦ÄÜ£¬³öÏÖÅäÖôíÎóÇé¿ö£¬µ¼Öµײã×é¼þ¹ÊÕÏ£¬Ó°ÏìÒµÎñϵͳ¡£
»úÆ÷¹ÜÀí
»úÆ÷¹ÜÀíÓÐÁ½¸ö²¿·Ö£ºÊý¾ÝÐÅÏ¢¹ÜÀíºÍ»úÆ÷±ä¸ü¡£·çÏպͲȿӳöÏÖÔÚ»úÆ÷±ä¸ü¹ý³Ì£¬ÔçÆÚÎÒÃÇÑ¡Ôñ ansible
ÅúÁ¿²Ù×÷¹¤¾ß£¬ÓÐ 3 ¸ö±ä¸ü²Ù×÷ƵÂʺܸߣº»úÆ÷³õʼ»¯¡¢»úÆ÷ÇåÀíºÍÆäËû·Ç¹Ì¶¨ÅúÁ¿²Ù×÷¡£³õʼ»¯ÊÇ»úÆ÷Ìí¼Óµ½
k8s ¼¯ÈºÇ°£¬°²×° docker¡¢gpu Èí¼þ¡¢ÅäÖû·¾³µÈµÈ£»Í¬Àí£¬»úÆ÷ÇåÀíÊÇÐ¶ÔØºÍÇå¿Õ docker
Èí¼þºÍÏà¹Ø»·¾³¡£ansible-play Ä£¿éÔÊÐíÎÒÃǶ¨Òå tasks ÈÎÎñ£¬¹ÜÀíÏàͬÀàÐͲÙ×÷µÄ½Å±¾¡£ÎÒÃÇ´´½¨Á˳õʼ»¯ºÍÇåÀí½Å±¾µÄ
tasks ÈÎÎñ£¬Ò»ÏµÁвÙ×÷µÄ½Å±¾Ìí¼Óµ½¶ÔÓ¦µÄ tasks ÈÎÎñÏÂÃæ£¬Ê¹ÓÃʱÔËÐÐÏàͬÃüÁîÍê³É±ä¸ü¡£ÐèÒªÌØ±ð×¢ÒâÊÇ£ºÖ´ÐÐ
tasks ÈÎÎñÐèÒªÅäÖûúÆ÷ÁÐ±í£¬ÈçÏ£º
192.168.219.10 ansible_ssh_pass="123456"
192.168.219.11 ansible_ssh_pass="123456"
192.168.219.12 ansible_ssh_pass="123456"
192.168.219.13 ansible_ssh_pass="123456"
[rke-prepare]
192.168.219.10
192.168.219.11
192.168.219.12
192.168.219.13 |
ÕâÀï´æÔÚ²Ù×÷·çÏÕ£¬²½ÖèÖØ¸´·±¶à»òÕß¶àÈ˲Ù×÷Çé¿ö£¬»úÆ÷ÁбíÓпÉÄܳöÏÖÖØ¸´¡¢´í©µÄÇé¿ö£¬ÎÒÃDzȹýÕâÑùµÄ¿Ó£º
²È¿Ó 1£ºansible ³õʼ»¯²Ù×÷£¬´íÎó°Ñ¼¯ÈºÖй¤×÷½Úµã»òÕߺËÐĽڵãÖ´ÐÐÁ˳õʼ»¯¡£ÒòΪÅäÖóõʼ»¯»úÆ÷ÁÐ±í£¬¶àÈ˲Ù×÷»òÕßÒÅÍüÐ޸ĻúÆ÷ÁÐ±í£¬µ¼Ö¼¯Èº½Úµã±»³õʼ»¯¡£ÕâÑùµÄºó¹û·Ç³£ÑÏÖØ£¬³õʼ»¯ÁËÒ»°ã
worker ½Úµã£¬Ó°ÏìÒµÎñÈÝÆ÷£»³õʼ»¯Á˺ËÐĽڵãÓ°Ï췶Χ¸ü¼Ó´ó£¬Õû¸ö¼¯Èº¿ÉÓÃÐÔ¶¼»á±»Ó°Ïì¡£±¾ÈË֮ǰ°ÑÅÜ×ÅÔÚÏßÒµÎñµÄ
worker ½Úµã³õʼ»¯µô£¬Ôì³ÉÒµÎñ½Úµã Not Ready£¬Ö±½ÓÓ°ÏìÁËÏßÉÏÒµÎñ¿ÉÓÃÐÔ¡£ºóÀ´ÎÒÃÇÔÚ
ansible ½Å±¾ÖмÓÉϼì²é k8s ¼¯Èº½ÚµãµÄ²½Ö裬ÅжϻúÆ÷Èç¹ûÒѾ´æÔÚ k8s Ïà¹Ø×é¼þ¼´¿ÉÌø¹ý³õʼ»¯²Ù×÷¡£
¼¯Èº¹ÜÀí
¼¯Èº¹ÜÀíºËÐIJÙ×÷£º¼¯Èº´´½¨¡¢À©ËõÈÝ¡¢¸üС¢ÈÝÔÖ 4 ¸ö¡£Ç°ÎÄÌáµ½µÄ rancher ¿ªÔ´µÄ k8s
¼¯Èº¹ÜÀíÏîÄ¿ rke Âú×ãÎÒÃÇ»ù±¾ÐèÇó¡£ÔÚÆä ¹Ù·½½éÉÜ ÖÐ˵µ½£ºRKE ÊÇÒ»¿î¾¹ý CNCF ÈÏÖ¤µÄ¿ªÔ´
Kubernetes ·¢Ðй¤¾ß£¬¿ÉÒÔÔÚ Docker ÈÝÆ÷ÄÚÔËÐС£Ëüͨ¹ýɾ³ý´ó²¿·ÖÖ÷»úÒÀÀµÏ²¢Îª²¿Êð¡¢Éý¼¶ºÍ»Ø¹öÌṩһ¸öÎȶ¨µÄ·¾¶£¬´Ó¶ø½â¾öÁË
Kubernetes ×î³£¼ûµÄ°²×°¸´ÔÓÐÔÎÊÌâ¡£½èÖú RKE£¬Kubernetes ¿ÉÒÔÍêÈ«¶ÀÁ¢ÓÚÄúÕýÔÚÔËÐеIJÙ×÷ϵͳºÍƽ̨£¬ÇáËÉʵÏÖ
Kubernetes µÄ×Ô¶¯»¯ÔËά¡£ºÍÆäËûÔÆÔÉúÏîĿһÑù£¬rke ҲʹÓà golang ¿ª·¢£¬ÊÇÒ»¸öÃüÁîÐй¤¾ß¡£Ê¹ÓÃÅäÖÃÎļþ
cluster.yml ¹ÜÀí k8s ¼¯Èº£¬²¢ÇÒͨ¹ý cluster.rkestate ά»¤ k8s
¼¯Èº×´Ì¬¡£rkestate ÎļþÊÇ rke ÃüÁîÐÐ×ÔÐйÜÀíµÄ k8s ״̬Îļþ£¬Óû§²»±Ø¹ý¶à¹ØÐÄ¡£cluster.yml
²ÅÊÇÓû§¹ÜÀí k8s ¼¯ÈºµÄÅäÖÃÎļþ£¬rke up ²Ù×÷°´Õոà yml ÅäÖÃÎļþ¸ü±ä k8s ¼¯Èº£º½ÚµãÔöɾ¡¢°æ±¾¸üеȣ¬ÈçÏÂÊÇ
cluster.yaml ʵÀý£º
nodes:
address: 1.2.3.4
user: ubuntu
role:
controlplane
etcd
worker
services:
etcd:
image: rancher/coreos-etcd:v3.3.10-rancher1
kube-api:
image: rancher/hyperkube:v1.14.3-rancher1
extra_args: {}
... ...
network:
plugin: calico
options:
calico_cloud_provider: none
addons: ""
addons_include: []
... ... |
չʾÀïÊǼò»¯ºóµÄÅäÖã¬ÏêϸµÄÅäÖýéÉÜ¿ÉÒԲο¼ yaml ÎļþʾÀý¡£¾¡¹Ü rke ÌṩÁ˵¥¸ö yml
ÅäÖÃÎļþ¹ÜÀí k8s ¼¯ÈºµÄ¹¦ÄÜ£¬µ«ÊǸÃÎļþÅäÖ÷±ÔÓÖØ¸´£¬¶øÇÒÎÒÃÇÒ»¿ªÊ¼¾ÍʹÓÃÁ˽ÏÔç°æ±¾µÄ rke£¬Ò²Åöµ½ÁËһЩ¿Ó£º
¡¤²È¿Ó 1£ºrke Ìí¼Ó¹¤×÷ (worker) ½Úµãʱ£¬½Úµã½ÇÉ«´íÎóÅäÖÃΪºËÐĽڵã
(controlplane\etcd) ½ÇÉ«£¬¶ÔÓÚ etcd µÄÇé¿ö»áµ¼Ö api-server ¹ö¶¯ÖØÆô£¬ÕýÔÚÇëÇó
api-server µÄ·þÎñÁ¬½Ó»á±»¶Ï¿ª£¬¶ÔÓÚÖØÊÔ·þÎñÓ°Ïì²»´ó¡£ÀàËÆ kubectl logs¡¢exec
µÈ²Ù×÷»á±»¶Ï¿ª£¬ÖØÐÂÖ´Ðнâ¾ö¡£¶ÔÓÚ controlplane µÄÇé¿ö£¬¼¯ÈºÄÚ²¿µÄ worker ½Úµã»áÖØÆô
kubelet ºÍ kube-proxy¡£
¡¤²È¿Ó 2£ºÊ¹ÓýÏÔç°æ±¾ rke ±ä¸üʱ£¬Ã¿´Î¶¼»á´òÓ¡Ö¤Êé±ä¸ü£¬ÐèÒªÇ¿ÖÆ¸üеÄÈÕÖ¾£¬ÊǽÏÔç°æ±¾ÈÕÖ¾Êä³öµÄ
bug ²»±Ø¾ª»Å£¬½Ïа汾ÒѾÐÞ¸´£ºhttps://github.com/rancher/rke/issues/1405
¡¤²È¿Ó 3£ºÍ¬ÑùÊǽÏÔç°æ±¾ rke up£¬Ê¹Óà update-only ÈÔÈ»»á²Ù×÷ËùÓÐ worker
½Úµã£¬²Ù×÷¹ý³Ìż¶û»á³öÏÖij¸ö½Úµã³¤Ê±¼äûÓÐÏìÓ¦µÄÇé¿ö£¬µ¼ÖÂÕû¸ö±ä¸üÁ÷³Ì±»¶ÂÈû£¬ÎÞ·¨Íê³É¡£ÎÒÃÇÔö¼ÓÁËÒ»¸ö
ignore-hosts ×ֶΣ¬Ö§³Ö rke up Ìø¹ýÖ´ÐлúÆ÷¡£
¡¤²È¿Ó 4£ºÍ¬ÑùÊǽÏÔç°æ±¾ rke up£¬ÎÒÃÇ¶Ô etcd ½øÐÐÔÖÄѻָ´ÑÝÁ·¹ý³Ì£¬·¢ÏÖ rke etcd
restore µÄ²Ù×÷½«Õû¸ö k8s ¼¯ÈºËùÓÐ½Úµã½øÐÐÇåÀíºóÔÙÖØ½¨£¬ÆäʵÎÒÃǵÄÄ¿ÊÇ etcd ¼¯Èº¹Òµôºó£¬¿ÉÒÔ¿ìËÙÖØ½¨
etcd ¼¯Èº£¬¶ø²»ÐèÒª±ä¸ü woker ºÍ controlplane µÄϵͳ×é¼þºÍ calico¡¢ingress-controller
µÈ×é¼þ£¬Ôì³ÉÒµÎñ²ãÃæµÄÓ°Ïì¡£¶Ô´ËÎÒÃǽøÐÐÁ˸ÄÔ죬rke etcd restore ÃüÁî»Ö¸´ etcd
¼¯ÈºÊ±£¬Ä¬ÈÏÖ»½øÐУºÇåÀí etcd ½Úµã¡¢etcd ÖØ½¨¡¢rke up ¼¸¸ö»ù±¾²Ù×÷¡£
ÈÝÆ÷ÍøÂç¹ÜÀí
ÈÝÆ÷ÍøÂçÎÒÃÇʹÓõÄÊÇ calico ²å¼þ£¬±âƽ»¯ÐèÇóÊÇÓëÍøÂç×éÅäÖÃϵͳ½»»¥Íê³É¡£ÔÚÈÕ³£Î¬»¤¹¤×÷ÖУ¬ÎÒÃDzȹýÕâÑùµÄ¿Ó£º
¡¤²È¿Ó 1£ºippool ÅäÖôíÎ󣬱¾ÈËÔÚм¯Èº¸Õ´î½¨Ê±£¬ÔÚ´´½¨ ippool
²½ÖèÖУ¬°ÑÈÝÆ÷ÍøÂçµÄ×ֶΣ¬ÌîÈëÁËÖ÷»úÍø¶ÎµÄÖµ¡£µ¼Öµĺó¹ûÊÇ£¬ÔÚÎïÀíÖ÷»ú½ÚÉÏ´´½¨ÁËÆæ¹ÖµÄ·ÓɹæÔò£¬k8s
¼¯ÈºÖ÷»úÍøÂçºÍÈÝÆ÷ÍøÂç¶¼Êܵ½Á˲»Í¬³Ì¶ÈÓ°Ï죬ºóÀ´ÎÒÃÇʹÓà ansible ÅúÁ¿É¾³ýÒ쳣·ÓÉ¡£
¡¤²È¿Ó 2£º±âƽ»¯½Úµã¼¯ÈºÅäÖôíÎ󣬰Ѽ¯Èº A µÄ½ÚµãÅäÖõ½¼¯Èº B µÄ RR ½ÚµãÉÏÃæ£¬µ±Ê±ÑéÖ¤Ö»Ó°ÏìÅäÖôíÎó½ÚµãµÄ±âÆ½ÍøÂ繦ÄÜ£¬ÆäËû½Úµã²»ÊÜÓ°Ïì¡£µ«ÊÇ£¬´íÎóÅäÖõĻָ´¹ý³Ì±È½ÏÂé·³¡£
k8s ¼¯Èº×÷Ϊ»ù´¡ÉèÊ©£¬ÉÏÃæÔËÐдóÁ¿ÔÚÏßÒµÎñºÍѵÁ·ÈÎÎñ¡£ÔÚ¼¯Èº±ä¸ü¹ý³ÌÖУ¬Ð¡Ð¡Ê§Îó¶¼ÓпÉÄܵ¼ÖÂÒµÎñ²ãÃæÖ±½Ó²»¿ÉÓã¬ÎÒÃDZØÐëÏ뾡°ì·¨¹æ±Ü·çÏÕ£¬Á¦ËùÄܼ°ÌîÆ½ËùÓпӿÓÍÝÍÝ¡£½è¼ø´«Í³ÔËά¹ÜÀí¾Ñ飬k8s
¼¯ÈºÔËά¹ÜÀíÒ²ÐèÒª×Ô¶¯»¯¡£ºÜ¶àÈË¿´µ½×Ô¶¯»¯µÚÒ»Ó¡ÏóÊÇ´úÂë³ÌÐò£¬Æäʵ×Ô¶¯»¯µÄ¾«ËèÊDZê×¼¡£ÈçºÎ½«¸´ÔÓ¡¢Öظ´¡¢·ÖÉ¢µÄ²Ù×÷±ê×¼»¯¡¢Á÷³Ì»¯£¬ÊÇ×Ô¶¯»¯µÄ¹Ø¼ü¡£
×Ô¶¯»¯Éè¼Æ¹ý³Ì
Éè¼ÆË¼Â·
×Ô¶¯»¯Ç°°ë½×¶ÎÄ¿±ê·Ç³£Ã÷È·£º¼õÉÙÈ˹¤ÊÖ¶¯²Ù×÷£¬½¨Á¢±ê×¼»¯Á÷³ÌºÍÌá¸ßÔËάЧÂÊ£»½µµÍ²Ù×÷·çÏÕ£¬Ìá¸ß¼¯ÈºÎȶ¨ÐÔ¡£¸ù¾ÝÎÒÃÇĿǰ̽Ë÷ºÍʵ¼ùµÄ¾Ñ飬ºó°ë½×¶ÎµÄÄ¿±êÒ²Öð½¥ÇåÎú£º¸ß¶È×Ô¶¯»¯¡¢°ëÖÇÄÜ»¯·½ÏòÉè¼Æ£¬¼ì²âºÍ·ÖÎö¶¨Î»¼¯ÈºÎÊÌ⣬²¢Ìṩ¿ìËÙ»Ö¸´µÄ°ì·¨¡£

×Ô¶¯»¯½¨ÉèÄ¿±ê
½áºÏÎÒÃÇ×Ô¶¯»¯Éè¼ÆµÄÄ¿±ê£¬ºÍÎÒÃÇ»ù´¡×é¼þµÄʹÓÃÇé¿ö£¬ÒÔÏÂÉè¼ÆÒªµãÎÒÃÇÖØµã¹Ø×¢£º
¶à¼¯Èº£º¹ÜÀí¶à¸ö k8s ¼¯ÈººÍËùÓÐÎïÀí»úÐÅÏ¢£¬¶à¸ö¼¯ÈºÔÚ¹¤¾ß»¯½×¶ÎÐÅÏ¢·ÖÉ¢£¬×Ô¶¯»¯Ê×ÒªÈÎÎñÊǰÑÊý¾Ýͬ²½µ½Ò»Æð£¬ÓÃÀ´°ïÖúÎÒÃÇÊáÀí×Ô¶¯»¯µÄÁ÷³Ì¡¢Ð£ÑéÒÔ¼°ÉóºËÕâ
3 ¸ö·½ÃæµÄ±ê×¼£¬²¢ÇÒÉè¼Æ 3 ¸ö·½ÃæÒªÊµÏֵŦÄÜ¡£
±ê×¼Á÷³Ì£º½«ÎÒÃÇÈÕ³£Öظ´ºÍ¸´Ôӵļ¯Èº±ä¸ü²Ù×÷¹æ·¶»¯£¬Öƶ¨±ê×¼µÄ±ä¸üÁ÷³Ì£¬²¢ÇÒ½«ÆäÈí¼þ»¯¡¢²úÆ·»¯¡£
×Ô¶¯Ð£Ñ飺ÊáÀí¼¯Èº±ä¸ü¹ý³ÌÐèÒªÈ˹¤Ð£ÑéµÄ case£¬²¢ÇÒÉè¼Æ×Ô¶¯»¯Ð£ÑéµÄ²½Ö裬°ÑÕâЩУÑé²½Öè×÷Ϊ±ê×¼±ä¸üÁ÷³ÌÖеıØÒªÇ°ÖÃÖ´ÐÐÌõ¼þ¡£
Á÷³Ì¿É¿Ø£º¼ÈÈ»ÖÆ¶¨Á˱ê×¼Á÷³Ì£¬ÄÇôÕû¸ö±ä¸üÁ÷³Ì¾Í¿ÉÒÔÈ«²¿×Ô¶¯»¯£¬Ò»´ÎÐÔÍê³ÉËùÓвÙ×÷¡£µ«ÊÇ£¬±ä¸ü×ÜÊÇ´æÔÚ×Å·çÏÕºÍδ֪ÒòËØ£¬Òò´ËÁ÷³ÌÖÐÿ¸ö²½ÖèµÄÖ´ÐÐǰºó£¬¶ÔÓ¦Éè¼ÆÈ˹¤ÉóºËºÍ¿ØÖƵĻ·½Ú¡£
×îС±ä¸üÔÔò£ºÒòòΪ±ä¸ü×ÜÊÇ´ø×Å·çÏÕ£¬ËùÒÔÎÒÃÇÏ£Íû±ä¸üÔ½ÉÙÔ½ºÃ£¬×îºÃÊÇÖ»×öÐèÒªµÄ±ä¸ü£¬ÎÞ¹ØÁªµÄ±ä¸ü¾¡Á¿±ÜÃâ¡£ÀýÈ磬ÔçÆÚµ?
rke up ½øÐÐ worker ½ÚµãÀ©ËõÈݵÄÇé¿ö£¬»¹ÊÇ»áÇ£Á¬µ½¶ÔºËÐĽڵãµÄһЩ²Ù×÷¡£ÒòΪ rke
¿¼Âǵ½±£Ö¤¼¯ÈºÕû¸ö״̬Êǽ¡¿µ¿ÉÓõģ¬ËùÒÔ rke up »á³¢ÊÔУÑé²¢ÇÒ²Ù×÷¼¯ÈºÖÐËùÓнڵ㡣վÔÚÎȶ¨ÐԽǶȿ¼ÂÇ£¬ÎÒÃÇÖ»Ïë±ä¸ü
worker ½Úµã£¬²»ÏëÇ£Á¬µ½ºËÐĽڵ㣬»òÕ߯äËû²»Óñä¸üµÄ½ÚµãÒ²²»ÏëÇ£Á¬¡£ºóÀ´ rke up ¿ÉÒÔÖ¸¶¨½ÇÉ«±ä¸ü£ºworker¡¢controlplane¡¢etcd£¬¶øÎÒÃÇÒ²×öÁ˶¨ÖÆ»¯£¬½ÚµãÀ©ËõÈÝÖ»»á²Ù×÷ÐèÒª±ä¸üµÄ½Úµã£¬ÆäËûÒ»Çнڵ㱣³Ö²»¶¯¡£
ǰÆÚ×Ô¶¯»¯¾Û½¹ÓÚÈÕ³£ 80% ¼¯ÈºÔËά¹¤×÷£¬ÊµÏְׯÁ»¯µÄ½¨É裺»úÆ÷¹ÜÀí¡¢¼¯Èº¹ÜÀí¡¢ÈÝÆ÷ÍøÂç¹ÜÀí¡£»úÆ÷¹ÜÀí°üÀ¨£º´Ó
CMDB ͬ²½»úÆ÷ÐÅÏ¢¡¢»úÆ÷³õʼ»¯¡¢»úÆ÷»·¾³ÇåÀí¡£¼¯Èº¹ÜÀí°üÀ¨£º½ÚµãÐÅÏ¢¿ÉÊÓ»¯¡¢Ôöɾ½Úµã¡¢¸üнڵ㡢rke
ÅäÖúÍ״̬ÅäÖÃÎļþ¹ÜÀí¡£¶øÈÝÆ÷ÍøÂç¹ÜÀíÔÝʱÊÇ ippool µÄÔöɾ²é¸Ä 4 ¸ö²Ù×÷ºÍ k8s ½Úµã
calico ÍøÂç±âƽ»¯Á÷³Ì¡£
¼Ü¹¹Éè¼Æ
°´ÕÕÉè¼ÆË¼Â·£¬ÈçÏÂÊÇÎÒÃÇ×Ô¶¯»¯Éè¼ÆµÄ¼òµ¥¼Ü¹¹Í¼£¬AutoRke ×Ô¶¯»¯Æ½Ì¨ÊÇÎÒÃǽ¨ÉèµÄÄ¿±ê£¬µ×²ã²Ù×÷
k8s¡¢calico ºÍ docker µÈÔÆÔÉú»ù´¡×é¼þµÄ±ä¸ü£¬Éϲã¶Ô½Ó vivo »ù´¡Æ½Ì¨Íê³Éͬ²½Êý¾ÝºÍÁ÷³Ì¿ØÖƵȹ¦ÄÜ¡£

×Ô¶¯»¯Êµ¼ù¼òµ¥¼Ü¹¹
AutoRke£º½¨ÉèÒ»¸öÌṩ±ê×¼Á÷³ÌµÄ°×ÆÁ»¯Æ½Ì¨£¬¼¯³É rke ¡¢ansible µÈÃüÁîÐеŦÄÜ¡£
ÔÆÔÉú»ù´¡£ºAutorke ×Ô¶¯»¯Æ½Ì¨¹ÜÀíµÄÄ¿±ê¶ÔÏó£ºk8s¡¢calico¡¢docker¡£ÔÚÎïÀí»úÉϰ²×°ÅäÖÃ
docker »·¾³£¬Ê¹Óà docker api ½Ó¿Ú²¿ÊðºÍ¹ÜÀí k8s ×é¼þ¡£¹ÜÀí calico ÈÝÆ÷ÍøÂç±âƽ»¯ÅäÖúÍÈÝÆ÷ÍøÂçµØÖ·³Ø
ippool¡£
vivo »ù´¡Æ½Ì¨£ºAutorke ½¨Éè¹ý³ÌʵÏÖ×Ô¶¯»¯Á÷³ÌÒÀÀµµÄ¹Ø¼üϵͳ¡£ÎÒÃÇ´Ó CMDB ͬ²½»úÆ÷ÐÅÏ¢£¬Ê¹Óõ¥µãµÇ¼À´ÑéÖ¤Óû§È¨ÏÞ¡£VCalico
ͨ¹ý¹¤µ¥Á÷³ÌµÄ·½Ê½£¬Íê³É calico ±âƽ»¯ÅäÖõÄ×Ô¶¯Á÷³Ì¡£HIC ÊÇ vivo »úÆ÷Ó²¼þ¹ÜÀíÏà¹ØµÄϵͳ£¬ÕýÔÚ½ÓÈëµ½
k8s ½Úµã¹ÊÕÏ´¦ÀíµÄÁ÷³Ì£¬°ïÖúÎÒÃÇÌá¸ßÎȶ¨ÐÔ¡£×÷ҵƽ̨ÊÇ vivo »úÆ÷ÅúÁ¿²Ù×÷µÄϵͳ£¬Óë CMDB
ÐÅÏ¢´òͨ£¬ÎÒÃǽ«ÓÃÀ´×ö»úÆ÷³õʼ»¯ºÍ¿ìËÙ×÷ÒµµÄ²Ù×÷¡£
×Ô¶¯»¯Êµ¼ùÓëÂ䵨
×Ô¶¯»¯Êµ¼ù×îÖÕ²ú³ö¹¤¾ß»¯¡¢ÏµÍ³»¯²úÆ·£¬ÎÒÃǵÄÄ¿±êÊÇ°×ÆÁ»¯µÄƽ̨¡£Äܹ»¹ÜÀí¶à¸ö k8s ¼¯ÈººÍËùÓеÄÎïÀí»ú£¬ÊÕ£ÈÕ³£·ÖÉ¢µÄ
k8s ¼¯Èº±ä¸ü²Ù×÷£¬Ìṩ±ê×¼¡¢¿É¿Ø¡¢¿ÉÉó²éµÄ°×ÆÁ»¯Á÷³Ì£¬Íê³ÉÈÕ³£ k8s ¼¯Èº±ä¸ü£¬Ìá¸ß±ä¸üЧÂÊ£¬½µµÍ²Ù×÷·çÏÕ£¬Ìá¸ß¼¯ÈºÎȶ¨ÐÔ¡£
ºËÐļ¼Êõ
k8s ¼¯Èº½¨ÉèºÍά»¤ÊÇ×Ô¶¯»¯µÄºËÐŤ×÷£¬Ç°ÎĽéÉÜÎÒÃÇʹÓà rke À´¿ªÕ¹Ïà¹Ø¹¤×÷¡£rke ʹÓà docker
µÄ·½Ê½²¿Êð k8s ¼¯Èº£¬ÔÚÈÝÆ÷ÖÐÆô¶¯ k8s ×é¼þ¡£Çø±ðÓÚÎÒÃÇÆ½Ê±Ê¹Óà docker ÃüÁî¹ÜÀíÈÝÆ÷ÉúÃüÖÜÆÚ£¬rke
ʹÓà docker ·þÎñµÄ API ½Ó¿Ú¹ÜÀíÈÝÆ÷¡£ÎªÁËÔ¶³ÌÅúÁ¿¹ÜÀí´óÁ¿Ö÷»úµÄ docker ·þÎñ£¬rke
¹¹½¨ ssh µÄ tcp Á¬½Ó¶ÔÏó£¬ÔÚ´´½¨²Ù×÷Ô¶³ÌÖ÷»ú docker ·þÎñµÄ docker?client
ʱ£¬Ê¹Óøà tcp Á¬½Ó¶ÔÏóΪ docker client ´´½¨ http client£¬²¢ÇҰ󶨵½
docker.sock¡£ÈçÏÂͼ£¬rke ͨ¹ý ssh Á¬½ÓµÄ·½Ê½¹¹½¨Ô¶¶Ë docker client£¬Ê¹ÓÃ
docker.sock ʵÏÖ docker ·þÎñµÄ·ÃÎÊ£¬ÆäÖб¤ÀÝ»ú»·½ÚÊÇ rke Ö§³Ö°²È«ÒªÇóµÄÉè¼Æ£¬Ò»ÇÐÎïÀí»úÖ»ÄÜͨ¹ý±¤ÀÝ»ú
ssh µÇ½¡£

rke ¹¤×÷Á÷³Ì
Ö¤Êé¹ÜÀí£¬¿ÉÒÔ·ÖΪ 2 ¸ö¹Ø¼üµã£ºÖ¤Êé·¢²¼ºÍÂÖ»»Ö¤Êé¡£Ö¤Êé·¢²¼²Ù×÷·¢ÉúÔÚ¼¯Èº³õʼ»¯¡¢master
¼¯Èº±ä¸üÒÔ¼° etcd ¼¯Èº±ä¸ü£¬Í¨¹ýÈÝÆ÷µÄ·½Ê½·¢²¼Ö¤Êé¡£Ö¤ÊéÂÖ»»ÊÇÔÚÖ¤Êé¼´½«¹ýÆÚ»òÕßÖ¤Êéй¶ºóÐèÒªÖØÐ°䷢֤Ê飬¿ÉÒÔÔÚ
cluster.yml ÅäÖã¬Ò²¿ÉÒÔʹÓà rke cert rotate Íê³É¡£
etcd ¼¯Èº£¬rke ʵÏÖÁË 3 ¸öÖØÒªµÄ etcd ²Ù×÷£º¼¯Èº´´½¨¡¢À©ËõÈÝ¡¢Êý¾Ý±¸·ÝÓë»Ö¸´¡£¼¯Èº´´½¨ºÍÀ©ËõÈÝ£¬ÔÚ
cluster.yml ÖÐÅäÖà etcd ½Úµã£¬Ö´ÐÐ rke up ±ä¸ü etcd ¼¯Èº¡£Êý¾Ý±¸·ÝÓë»Ö¸´ÊÇÈÕ³£
etcd ¼¯ÈºµÄÊý¾Ý±¸·Ý£¬ÔÚ³öÏÖ¹ÊÕÏʱ¿ìËÙ»Ö¸´Êý¾ÝÓë k8s ¼¯ÈºµÄ¹¦ÄÜ¡£ÉÏͼ etcd ½ÚµãÆô¶¯ÈÝÆ÷£ºetcd¡¢snapshots£¬ÆäËû
kubelet Ïà¹ØÈÝÆ÷ÊÇ worker ½ÇÉ«ËùÐè×é¼þ£¬Ò²¾ÍÊÇ etcd ¿ÉÒÔ×÷Ϊ worker ½Úµã²¿ÊðÆäËû·þÎñ£¬µ«ÊÇÎÒÃDz»ÍƼöÕâô×ö¡£snapshots
ÊÇ etcd ¼¯ÈºÊý¾Ý¶¨ÆÚ±¸·ÝµÄÈÝÆ÷¡£etcd ÈÝÆ÷ʹÓþ²Ì¬¼¯Èº·½Ê½²¿Êð£¬Æô¶¯Ê±ÅäÖúà etcd µÄ¼¯Èº¹æÄ£ºÍ½ÚµãÁÐ±í¡£
ºËÐĽڵ㣬ÐèÒª²¿Êð 3 ¸öºËÐÄ·þÎñ apiserver¡¢scheduler¡¢controller
µÄÈÝÆ÷£¬·þÎñ²ÎÊýÅäÖÃÔÚ cluster.yml Îļþ£¬Æô¶¯¹ý³Ì¶ÁÈ¡²¢ÇÒÉèÖÃÔÚÈÝÆ÷ÔËÐÐÅäÖ᣿ɼû£¬ºËÐĽڵãûÓÐ
nginx-proxy ×é¼þ£¬Õâ¸ö×é¼þÊÇÓÃÀ´·´Ïò´úÀíÁ¬½Ó apiserver£¬ºËÐĽڵãÄÚ×é¼þÁ¬½Ó±¾»úµÄ
apiserver£¬ËùÒÔ²»ÐèÒª¡£rke ¶Ô etcd ¼¯Èº±ä¸üʱ£¬·ÃÎÊ etcd ¼¯ÈºÖ¤ÊéºÍ IP
ÁÐ±í·¢Éú±ä¸ü£¬ÐèÒª°´ÕÕ˳ÐòÖØÆôºËÐĽڵãµÄ apiserver ·þÎñ£¬ÖØÐ¼ÓÔØ·ÃÎÊ etcd ¼¯ÈºÅäÖá£
¹¤×÷½Úµã£¬rke ¶Ô¼¯Èº¹¤×÷½ÚµãÀ©Ëõ¹ý³Ì£¬¹ÜÀí½ÚµãÉÏ 3 ¸ö k8s ×é¼þ kubelet¡¢nginx-proxy
ºÍ kube-proxy ÈÝÆ÷ÉúÃüÖÜÆÚ£º´´½¨¡¢Æô¶¯¡¢ÖØÆô¡¢É¾³ý¡¢²éѯ¡£rke ±ä¸üºËÐĽڵãʱ£¬»á±ä¸ü·ÃÎʺËÐĽڵãµÄÅäÖã¬Í¬Àí£¬ÒªÐèÒªÖØÆô¹¤×÷½ÚµãµÄ·þÎñ¡£
²å¼þ²¿Êð£¬addons ÊÇ¿ÉÑ¡²¿Êð£¬Óû§¿ÉÒÔͨ¹ýÆäËû k8s ²¿Êð·þÎñµÄ·½Ê½¡£rke ¶Ô addons
µÄ²¿Êð»®·ÖÁË 3 ²¿·Ö£ºcni¡¢k8sAddons ºÍ userAddons£¬²¿Êð¹ý³ÌʹÓà k8s
µÄ client£¬²»ÔÙʹÓÃÖ±Á¬ docker api ½Ó¿Ú·½Ê½²¿Êð¡£addons »ù±¾ÒÔ£ºdaemonset¡¢deployment
·½Ê½²¿ÊðÔÚ k8s ¼¯Èº¡£
¼¯Èº¸üУ¬rke ÔÚ 1.0.0 °æ±¾¿ªÊ¼Ö§³Ö k8s ¼¯Èº¸üУ¬cluster.yml ÅäÖÃÖ§³ÖÁ˸÷¸ö½ÇÉ«½Úµã×î´ó²»¿ÉÓÃÊýÁ¿¡¢ÅúÁ¿¸üеȲÎÊý£¬µ«ÊǸüеÄÒªÇó±È½Ï¿Á¿Ì£º
1.Ö»Ö§³ÖÏàÁڵĴÎÒª°æ±¾»òÕß²¹¶¡°æ±¾¸üÐÂ
2.ÔËÐÐÔÚ k8s ¼¯ÈºÖеÄÒµÎñÐèÒªÖ§³Ö½¡¿µ¼ì²é
3.k8s ¼¯Èº½ÇÉ«½Úµã¡¢addon ×é¼þ¡¢ÒµÎñϵͳÐèÒªÖ§³Ö¸ß¿ÉÓÃ
ʵ¼ù¹ý³Ì
ÎÒÃÇÃ÷ȷʵ¼ù¼Æ»®·ÖÁ½²½×ߣºrke ¹¤¾ß¶¨ÖÆ»¯ºÍ autorke °×ÆÁ»¯Æ½Ì¨¡£¶¨ÖÆ»¯½â¾ö×î³õÎÒÃÇʹÓÃ
rke ¹ý³Ì£¬³öÏֵIJ»·ûºÏÎÒÃÇÔ¤ÆÚµÄ³¡¾°£¬Í¬Ê±£¬ÉîÈëµ÷ÑÐ rke ÔÀíΪ°×ÆÁ»¯Ìṩ¼¼Êõ»ù´¡¡£°×ÆÁ»¯½×¶ÎʵÏÖ±ä¸üÔÆÔÉú×é¼þƽ̨»¯£¬Öƶ¨±ê×¼Á÷³Ì£¬½µµÍ±ä¸üÃż÷ºÍ·çÏÕ¡£
RKE CLI ¶¨ÖÆ»¯£ºÔÚÔÉú rke ÃüÁî»ù´¡ÉÏ£¬À©Õ¹ÁË calico ºÍ worker2 ¸ö×ÓÃüÁ·Ö±ð¸ºÔð
calico ÈÝÆ÷ÍøÂç¹ÜÀíºÍ k8s worker ½ÚµãÀ©ËõÈÝ£¬ÕâÁ½¸ö×ÓÃüÁîÖ§³ÅÎÒÃÇÍê³ÉÁË´ó²¿·Ö k8s
¼¯ÈºÔËά¹¤×÷¡£
1.rke calico Ö§³ÖÈÝÆ÷ÍøÂç±âƽ»¯ÅäÖãºÐÂÔö¡¢É¾³ýºÍÀ©ÈÝ¡£Í¬Ê±£¬Ò²Ö§³ÖÁË ippool µÄÔö¡¢É¾¡¢²é¡¢¸Ä¡¢ÆôÓᢽûÓá£
2.rke worker£¬ÔÚ worker ½ÚµãÀ©ËõÈÝʱ£¬ÎÒÃÇֻϣÍû×ö×îСµÄ±ä¸ü£¬²»Ö´Ðв»±ØÒªµÄ²Ù×÷¡£ËùÒÔ£¬rke
worker ÃüÁîÖ»±ä¸üÐèÒªÀ©ËõÈݵĽڵ㣬ÆäËû²»ÐèÒª±ä¸ü½Úµã±£³Ö²»¶¯¡£
Autorke °×ÆÁ»¯£ºCLI ÃüÁîÐеķ½Ê½´æÔÚȱÏÝ£¬Ö»ÄÜʤÈÎÒ»´ÎÐԵIJÙ×÷£¬²»ÄÜÂú×ã½»»¥µÄ³¡¾°£¬¶øÇÒ±ä¸üµÄÁ÷³Ì¹æ·¶Ò²Ã»ÓÐÍêȫͳһ£¬ÎÒÃǾö¶¨°Ñ
CLI µÄ¹¤×÷×ö³É°×ÆÁ»¯¡£
Ŀǰƽ̨¹¦ÄÜÎ§ÈÆ k8s ¼¯Èº¹ÜÀí¿ªÕ¹£º»úÆ÷¹ÜÀí¡¢¼¯Èº½Úµã¹ÜÀí¡¢Íø¶Î¹ÜÀí¡¢ÅäÖùÜÀí¡£»úÆ÷¹ÜÀí¶ÔÎïÀí»úÐÅϢͬ²½£¬´Ó
CMDB Àȡȫ²¿»úÆ÷ÐÅÏ¢£¬·½±ãÈÕ³£»úÆ÷ÐÅÏ¢²éѯ£¬Í¬Ê±Îª¼¯Èº±ä¸üºÍÈÕºó¼¯ÈºÎȶ¨ÐÔ½¨ÉèÌṩÊý¾Ý»ù´¡¡£¹ÜÀí
k8s ¼¯Èº worker ½ÚµãÈÕ³£±ä¸ü£ºÀ©ÈÝ¡¢ËõÈÝ¡¢¸üС¢ÈÝÆ÷ÍøÂçÅäÖá£Íø¶Î¹ÜÀíÊÇÈÝÆ÷Íø¶ÎµÄ¹ÜÀí£¬calico
ippool µÄÔöɾ²é¸Ä¡£ÅäÖùÜÀíʵÏÖ rke ʹÓõļ¯ÈºÅäÖÃÎļþºÍ״̬ÎļþµÄ°æ±¾¹ÜÀí¡£

×Ô¶¯»¯¹¦Äܼòµ¥Õ¹Ê¾¡ª»úÆ÷¹ÜÀí
ÉÏͼÊÇ»úÆ÷¹ÜÀíÒ³Ãæ£¬Í³Ò»¹ÜÀí»úÆ÷¹ØÓÚ£ºÓ²¼þ¡¢Èí¼þ¡¢k8s¡¢ÍøÂç¸÷¸ö·½ÃæµÄÐÅÏ¢¡£×îÓұ߻úÆ÷²Ù×÷ÏÂÀ¿ò£¬Ä¿Ç°Ö§³Ö
k8s ¼¯Èº½ÚµãµÄÌí¼Ó¡¢ÒƳýºÍ¸üР3 ¸ö¹¦ÄÜ¡£ÎÒÃǼòµ¥½éÉܼ¯ÈºÌí¼Ó½ÚµãµÄ²½Ö裬ÒòΪ²½Öè½Ï¶à£¬Ê¹ÓÃÎÄ×ÖÃèÊö¾ßÌå¹ý³Ì£º
1.»úÆ÷¹ÜÀíÒ³ÃæÑ¡ÖеÄ×¼±¸Ìí¼Óµ½¼¯ÈºµÄ»úÆ÷£¬²¢ÇÒ´´½¨Ìí¼Ó»úÆ÷µÄÅäÖ㬿ÉÒÔÑ¡ÔñĬÈÏÅäÖá¢×Ô¶¨ÒåÅäÖõķ½Ê½¡£
2.ÔËÐÐÌí¼Ó»úÆ÷УÑ飬ȷÈÏ»úÆ÷ÊÇ·ñ¿ÉÒÔÌí¼Óµ½ k8s ¼¯Èº
3.³õʼ»¯Ä¿±ê»úÆ÷£¬°²×°ËùÐèÈí¼þ¡¢Çý¶¯£¬ÅäÖà docker ÔËÐл·¾³
4.Ìí¼Ó»úÆ÷µ½ k8s ¼¯Èº£¬Í¬²½»úÆ÷±êÇ©ºÍÎ۵㣬Éú³É calico ÍøÂçÅäÖÃ
5.´´½¨ calico ±âÆ½ÍøÂ繤µ¥£¬¸ø VCalico ϵͳ·¢ÆðÈÝÆ÷ÍøÂçÅäÖù¤µ¥
6.´´½¨ ippool ÈÝÆ÷Íø¶Î£¬µ÷Óà calico sdk ÅäÖÃËùÐèÒªµÄÍø¶ÎÐÅÏ¢
7.¼àÌý VCalico »Øµ÷ÐÅÏ¢£¬¸üнڵãÈÝÆ÷ÍøÂç±êÇ©
Â䵨Çé¿ö
Ó¦ÓÃÓÚ vivo AI ¼ÆËãÆ½Ì¨ÖÐ 4 ¸ö k8s ¼¯Èº£¬ÉÏǧ̨ÎïÀí»ú¡£ºóÐø½ÓÈëн¨¼¯Èº£¬ÎïÀí»úÊýÁ¿½«´ïµ½Êýǧ̨¡£°´ÕÕʵ¼ù¹ý³ÌÁ½¸öµü´ú½×¶Î£ºrke
¶¨ÖÆ»¯ºÍ autorke °×ÆÁ»¯¡£¶¨ÖÆ»¯ÊǶÔÔÉúµÄ rke ÃüÁîÐй¤¾ß¸ÄÔ죬ʵÏÖ·ûºÏÎÒÃdz¡¾°µÄ¹¦ÄÜ¡£autorke
°×ÆÁ»¯ÊǰÑǰÆÚ¶¨ÖÆ»¯µÄ¹¦Äܺͱä¸üÁ÷³ÌʵÏְׯÁ»¯£¬´ÓÈ¥Äê 12 ÔÂÉÏÏßÖÁ½ñ°×ÆÁ»¯Íê³É k8s ¼¯Èº±ä¸ü¹¤µ¥
100+¡£
¸Ä½øÓÅ»¯
Õë¶ÔʹÓùý³Ì³öÏÖµÄÍ´µã£¬ÎÒÃÇÒ²×öһЩÓÅ»¯£º
ʧ°ÜÖØÊÔ£¬ÔÚͬһ¸ö½Úµã±ä¸üÁ÷³ÌÖУ¬´æÔÚ²¿·Ö½ÚµãÖ´Ðнá¹û·µ»ØÊ§°Ü£¬ÔÚ±ä¸üÁ÷³ÌʵÏÖÖØÊÔʧ°Ü½Úµã£¬ÓÅ»¯Óû§ÌåÑ飬Ìá¸ßÒì³£Çé¿öµÄ´¦ÀíЧÂÊ¡£
Á÷³Ì²ð·Ö£¬ÔÚ calico ±âƽ»¯ÅäÖÃÖУ¬ÎÒÃÇÐèÒªÓë VCalico ½»»¥Íê³É¹¤µ¥ºÍ»Øµ÷£¬¿ªÊ¼ÎÒÃÇ¿¼ÂÇ×Ô¶¯»¯Á÷³ÌÔÚÌá½»¹¤µ¥ºóÃæµÄÁ÷³Ì£¬²»ÔÙÐèÒªÈ˹¤¸ÉÔ¤¡£Æäʵ£¬VCalico
Éϱ¨»Øµ÷±¨ÎÄʱ£¬¸ü¼ÓÐèÒª k8s ¹ÜÀíԱȷÈÏ´´½¨ ippool µÄÐÅÏ¢¡£Ìá½»ÈÝÆ÷ÍøÂçÉêÇëµÄ¹¤µ¥ÐÅÏ¢Ò²ÐèÒªÈ˹¤Ð£Ñ飬¶ø²»Ó¦¸ÃÊÇ×Ô¶¯Éú³ÉÅäÖúó£¬Á¢¿Ì·¢ÆðÈÝÆ÷ÍøÂçÅäÖù¤µ¥¡£
ºóÐø¼Æ»®
×Ô¶¯»¯³õÆÚʵÏÖÁËÔÆÔÉú»ù´¡×é¼þÈÕ³£ÔËά¹ÜÀí¹¤×÷µÄ°×ÆÁ»¯¹¦ÄÜ£¬Ìá¸ßÁ˹¤×÷ЧÂÊ£¬½µµÍ²Ù×÷·çÏÕ£¬Ò»¶¨³Ì¶ÈÉÏÌá¸ßÁË»ù´¡×é¼þµÄÎȶ¨ÐÔ¡£ÔÚ½ñºó×Ô¶¯»¯½¨Éè¹ý³ÌÖУ¬ÎÒÃÇÏ£Íû·á¸»×Ô¶¯»¯µÄ¹¦ÄÜ£¬Ì½Ë÷°ëÖÇÄÜ»¯·½Ïò£¬ÖØµã¹Ø×¢ÔÆÔÉú»ù´¡×é¼þÎȶ¨ÐԺͿÉÓÃÐÔ·½ÃæµÄ×Ô¶¯»¯½¨Éè¡£
¡¤Ñ²¼ì£¬×Ô¶¯¼ì²â k8s ¼¯Èº´æÔÚµÄÎÊÌâÒÔ¼°·çÏÕµã
¡¤×ÔÓú£¬¸æ¾¯Óë¹ÊÕÏ×Ô¶¯·ÖÎö¶¨Î»ÒÔ¼°¿ìËÙ»Ö¸´
¡¤¸üУ¬»ù´¡×é¼þ°æ±¾¸üкͻúÆ÷Éý¼¶Á÷³ÌµÈ |