w

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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Kubernetesϵͳ³£¼ûÔËά¼¼ÇÉ
 
 À´Ô´£ºcsdn  ·¢²¼ÓÚ  2017-3-24
  3258  次浏览      28
 

±¾ÎĽÚÑ¡×Ô¹¨ÕýµÈ±àÖøµÄ¡¶KubernetesȨÍþÖ¸ÄÏ¡·£¬¸Ã½ÚÖ÷Òª¶Ô³£ÓõÄKubernetesϵͳÔËά²Ù×÷ºÍ¼¼ÇɽøÐÐÏêϸ˵Ã÷¡£

NodeµÄ¸ôÀëºÍ»Ö¸´

apiVersion: v1
kind: Node
metadata:
name: kubernetes-minion1
labels:
kubernetes.io/hostname: kubernetes-minion1
spec:
unschedulable: true

È»ºó£¬Í¨¹ýkubectl replaceÃüÁîÍê³É¶ÔNode״̬µÄÐ޸ģº

$ kubectl replace -f unschedule_node.yaml 
nodes/kubernetes-minion1

²é¿´NodeµÄ״̬£¬¿ÉÒԹ۲쵽ÔÚNodeµÄ״̬ÖÐÔö¼ÓÁËÒ»ÏîSchedulingDisabled£º

¶ÔÓÚºóÐø´´½¨µÄPod£¬ÏµÍ³½«²»»áÔÙÏò¸ÃNode½øÐе÷¶È¡£

ÁíÒ»ÖÖ·½·¨ÊDz»Ê¹ÓÃÅäÖÃÎļþ£¬Ö±½ÓʹÓÃkubectl patchÃüÁîÍê³É£º

$ kubectl patch node kubernetes-minion1 -p 
'{£¢spec£¢:{£¢unschedulable£¢:true}}'

ÐèҪעÒâµÄÊÇ£¬½«Ä³¸öNodeÍÑÀëµ÷¶È·¶Î§Ê±£¬ÔÚÆäÉÏÔËÐеÄPod²¢²»»á×Ô¶¯Í£Ö¹£¬¹ÜÀíÔ±ÐèÒªÊÖ¶¯Í£Ö¹ÔÚ¸ÃNodeÉÏÔËÐеÄPod¡£

ͬÑù£¬Èç¹ûÐèÒª½«Ä³¸öNodeÖØÐÂÄÉÈ뼯Ⱥµ÷¶È·¶Î§£¬Ôò½«unschedulableÉèÖÃΪfalse£¬ÔÙ´ÎÖ´ÐÐkubectl replace»òkubectl patchÃüÁî¾ÍÄָܻ´ÏµÍ³¶Ô¸ÃNodeµÄµ÷¶È¡£

NodeµÄÀ©ÈÝ

ÔÚʵ¼ÊÉú²úϵͳÖлᾭ³£Óöµ½·þÎñÆ÷ÈÝÁ¿²»×ãµÄÇé¿ö£¬Õâʱ¾ÍÐèÒª¹ºÂòеķþÎñÆ÷£¬È»ºó½«Ó¦ÓÃϵͳ½øÐÐˮƽÀ©Õ¹À´Íê³É¶ÔϵͳµÄÀ©ÈÝ¡£

ÔÚKubernetes¼¯ÈºÖУ¬¶ÔÓÚÒ»¸öÐÂNodeµÄ¼ÓÈëÊǷdz£¼òµ¥µÄ¡£¿ÉÒÔÔÚNode½ÚµãÉϰ²×°Docker¡¢KubeletºÍkube-proxy·þÎñ£¬È»ºó½«KubeletºÍkube-proxyµÄÆô¶¯²ÎÊýÖеÄMaster URLÖ¸¶¨Îªµ±Ç°Kubernetes¼¯ÈºMasterµÄµØÖ·£¬×îºóÆô¶¯ÕâЩ·þÎñ¡£»ùÓÚKubeletµÄ×Ô¶¯×¢²á»úÖÆ£¬ÐµÄNode½«»á×Ô¶¯¼ÓÈëÏÖÓеÄKubernetes¼¯ÈºÖУ¬Èçͼ1Ëùʾ¡£

ͼ1 нڵã×Ô¶¯×¢²áÍê³ÉÀ©ÈÝ

Kubernetes MasterÔÚ½ÓÊÜÁËÐÂNodeµÄ×¢²áÖ®ºó£¬»á×Ô¶¯½«ÆäÄÉÈ뵱ǰ¼¯ÈºµÄµ÷¶È·¶Î§ÄÚ£¬ÔÚÖ®ºó´´½¨ÈÝÆ÷ʱ£¬¾Í¿ÉÒÔÏòеÄNode½øÐе÷¶ÈÁË¡£

ͨ¹ýÕâÖÖ»úÖÆ£¬KubernetesʵÏÖÁ˼¯ÈºµÄÀ©ÈÝ¡£

Pod¶¯Ì¬À©ÈݺÍËõ·Å

ÔÚʵ¼ÊÉú²úϵͳÖУ¬ÎÒÃǾ­³£»áÓöµ½Ä³¸ö·þÎñÐèÒªÀ©Èݵij¡¾°£¬Ò²¿ÉÄÜ»áÓöµ½ÓÉÓÚ×ÊÔ´½ôÕÅ»òÕß¹¤×÷¸ºÔؽµµÍ¶øÐèÒª¼õÉÙ·þÎñʵÀýÊýµÄ³¡¾°¡£´ËʱÎÒÃÇ¿ÉÒÔÀûÓÃÃüÁîkubectl scale rcÀ´Íê³ÉÕâЩÈÎÎñ¡£ÒÔRedis-slave RCΪÀý£¬ÒѶ¨ÒåµÄ×î³õ¸±±¾ÊýÁ¿Îª2£¬Í¨¹ýÖ´ÐÐÏÂÃæµÄÃüÁredis-slave RC¿ØÖƵÄPod¸±±¾ÊýÁ¿´Ó³õʼµÄ2¸üÐÂΪ3£º

$ kubectl scale rc redis-slave --replicas=3
scaled

Ö´ÐÐkubectl get podsÃüÁîÀ´ÑéÖ¤PodµÄ¸±±¾ÊýÁ¿Ôö¼Óµ½3£º

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
redis-slave-4na2n 1/1 Running 0 1h
redis-slave-92u3k 1/1 Running 0 1h
redis-slave-palab 1/1 Running 0 2m

½«--replicasÉèÖÃΪ±Èµ±Ç°Pod¸±±¾ÊýÁ¿¸üСµÄÊý×Ö£¬ÏµÍ³½«»á¡°É±µô¡±Ò»Ð©ÔËÐÐÖеÄPod£¬¼´¿ÉʵÏÖÓ¦Óü¯ÈºËõÈÝ£º

$ kubectl scale rc redis-slave --replicas=1
scaled

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
redis-slave-4na2n 1/1 Running 0 1h

¸üÐÂ×ÊÔ´¶ÔÏóµÄLabel

Label£¨±êÇ©£©×÷ΪÓû§¿ÉÁé»î¶¨ÒåµÄ¶ÔÏóÊôÐÔ£¬ÔÚÒÑ´´½¨µÄ¶ÔÏóÉÏ£¬ÈÔÈ»¿ÉÒÔËæÊ±Í¨¹ýkubectl labelÃüÁî¶ÔÆä½øÐÐÔö¼Ó¡¢Ð޸ġ¢É¾³ýµÈ²Ù×÷¡£

ÀýÈ磬ÎÒÃÇÒª¸øÒÑ´´½¨µÄPod¡°redis-master-bobr0¡±Ìí¼ÓÒ»¸ö±êÇ©role=backend£º

$ kubectl label pod redis-master-bobr0 role=backend

²é¿´¸ÃPodµÄLabel£º

$ kubectl get pods -Lrole
NAME READY STATUS RESTARTS AGE ROLE
redis-master-bobr0 1/1 Running 0 3m backend

ɾ³ýÒ»¸öLabel£¬Ö»ÐèÔÚÃüÁîÐÐ×îºóÖ¸¶¨LabelµÄkeyÃû²¢ÓëÒ»¸ö¼õºÅÏàÁ¬¼´¿É£º

$ kubectl label pod redis-master-bobr0 role-

ÐÞ¸ÄÒ»¸öLabelµÄÖµ£¬ÐèÒª¼ÓÉÏ--overwrite²ÎÊý£º

$ kubectl label pod redis-master-bobr0 role=master --overwrite

½«Podµ÷¶Èµ½Ö¸¶¨µÄNode

ÎÒÃÇÖªµÀ£¬KubernetesµÄScheduler·þÎñ£¨kube-scheduler½ø³Ì£©¸ºÔðʵÏÖPodµÄµ÷¶È£¬Õû¸öµ÷¶È¹ý³Ìͨ¹ýÖ´ÐÐһϵÁи´ÔÓµÄËã·¨×îÖÕΪÿ¸öPod¼ÆËã³öÒ»¸ö×î¼ÑµÄÄ¿±ê½Úµã£¬ÕâÒ»¹ý³ÌÊÇ×Ô¶¯Íê³ÉµÄ£¬ÎÒÃÇÎÞ·¨ÖªµÀPod×îÖջᱻµ÷¶Èµ½Äĸö½ÚµãÉÏ¡£ÓÐʱÎÒÃÇ¿ÉÄÜÐèÒª½«Podµ÷¶Èµ½Ò»¸öÖ¸¶¨µÄNodeÉÏ£¬´Ëʱ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýNodeµÄ±êÇ©£¨Label£©ºÍPodµÄnodeSelectorÊôÐÔÏàÆ¥Å䣬À´´ïµ½ÉÏÊöÄ¿µÄ¡£

Ê×ÏÈ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýkubectl labelÃüÁî¸øÄ¿±êNode´òÉÏÒ»¸öÌØ¶¨µÄ±êÇ©£¬ÏÂÃæÊÇ´ËÃüÁîµÄÍêÕûÓ÷¨£º

kubectl label nodes <node-name> <label-key>=<label-value>

ÕâÀÎÒÃÇΪkubernetes-minion1½Úµã´òÉÏÒ»¸özone=northµÄ±êÇ©£¬±íÃ÷ËüÊÇ¡°±±·½¡±µÄÒ»¸ö½Úµã£º

ÉÏÊöÃüÁîÐвÙ×÷Ò²¿ÉÒÔͨ¹ýÐÞ¸Ä×ÊÔ´¶¨ÒåÎļþµÄ·½Ê½£¬²¢Ö´ÐÐkubectl replace -f xxx.yamlÃüÁîÀ´Íê³É¡£

È»ºó£¬ÔÚPodµÄÅäÖÃÎļþÖмÓÈënodeSelector¶¨Ò壬ÒÔredis-master-controller.yamlΪÀý£º

apiVersion: v1
kind: ReplicationController
metadata:
name: redis-master
labels:
name: redis-master
spec:
replicas: 1
selector:
name: redis-master
template:
metadata:
labels:
name: redis-master
spec:
containers:
- name: master
image: kubeguide/redis-master
ports:
- containerPort: 6379
nodeSelector:
zone: north

ÔËÐÐkubectl create -fÃüÁî´´½¨Pod£¬scheduler¾Í»á½«¸ÃPodµ÷¶Èµ½ÓµÓÐzone=north±êÇ©µÄNodeÉÏÈ¥¡£

ʹÓÃkubectl get pods -o wideÃüÁî¿ÉÒÔÑéÖ¤PodËùÔÚµÄNode£º

Èç¹ûÎÒÃǸø¶à¸öNode¶¼¶¨ÒåÁËÏàͬµÄ±êÇ©£¨ÀýÈçzone=north£©£¬Ôòscheduler½«»á¸ù¾Ýµ÷¶ÈËã·¨´ÓÕâ×éNodeÖÐÌôѡһ¸ö¿ÉÓõÄNode½øÐÐPodµ÷¶È¡£

ÕâÖÖ»ùÓÚNode±êÇ©µÄµ÷¶È·½Ê½Áé»îÐԺܸߣ¬±ÈÈçÎÒÃÇ¿ÉÒÔ°ÑÒ»×éNode·Ö±ðÌùÉÏ¡°¿ª·¢»·¾³¡±¡°²âÊÔÑéÖ¤»·¾³¡±¡°Óû§ÑéÊÕ»·¾³¡±ÕâÈý×é±êÇ©ÖеÄÒ»ÖÖ£¬´Ëʱһ¸öKubernetes¼¯Èº¾Í³ÐÔØÁË3¸ö»·¾³£¬Õ⽫´ó´óÌá¸ß¿ª·¢Ð§ÂÊ¡£

ÐèҪעÒâµÄÊÇ£¬Èç¹ûÎÒÃÇÖ¸¶¨ÁËPodµÄnodeSelectorÌõ¼þ£¬ÇÒ¼¯ÈºÖв»´æÔÚ°üº¬ÏàÓ¦±êÇ©µÄNodeʱ£¬¼´Ê¹»¹ÓÐÆäËû¿É¹©µ÷¶ÈµÄNode£¬Õâ¸öPodÒ²×îÖÕ»áµ÷¶Èʧ°Ü¡£

Ó¦ÓõĹö¶¯Éý¼¶

µ±¼¯ÈºÖеÄij¸ö·þÎñÐèÒªÉý¼¶Ê±£¬ÎÒÃÇÐèҪֹͣĿǰÓë¸Ã·þÎñÏà¹ØµÄËùÓÐPod£¬È»ºóÖØÐÂÀ­È¡¾µÏñ²¢Æô¶¯¡£Èç¹û¼¯Èº¹æÄ£±È½Ï´ó£¬ÔòÕâ¸ö¹¤×÷¾Í±ä³ÉÁËÒ»¸öÌôÕ½£¬¶øÇÒÏÈÈ«²¿Í£Ö¹È»ºóÖð²½Éý¼¶µÄ·½Ê½»áµ¼Ö½ϳ¤Ê±¼äµÄ·þÎñ²»¿ÉÓá£KubernetesÌṩÁËrolling-update£¨¹ö¶¯Éý¼¶£©¹¦ÄÜÀ´½â¾öÉÏÊöÎÊÌâ¡£

¹ö¶¯Éý¼¶Í¨¹ýÖ´ÐÐkubectl rolling-updateÃüÁîÒ»¼üÍê³É£¬¸ÃÃüÁî´´½¨ÁËÒ»¸öеÄRC£¬È»ºó×Ô¶¯¿ØÖƾɵÄRCÖеÄPod¸±±¾ÊýÁ¿Öð½¥¼õÉÙµ½0£¬Í¬Ê±ÐµÄRCÖеÄPod¸±±¾ÊýÁ¿´Ó0Öð²½Ôö¼Óµ½Ä¿±êÖµ£¬×îÖÕʵÏÖÁËPodµÄÉý¼¶¡£ÐèҪעÒâµÄÊÇ£¬ÏµÍ³ÒªÇóеÄRCÐèÒªÓë¾ÉµÄRCÔÚÏàͬµÄÃüÃû¿Õ¼ä£¨Namespace£©ÄÚ£¬¼´²»ÄܰѱðÈ˵Ä×ʲúÍµÍµ×ªÒÆµ½×Ô¼ÒÃûÏ¡£

ÒÔredis-masterΪÀý£¬¼ÙÉ赱ǰÔËÐеÄredis-master PodÊÇ1.0°æ±¾£¬ÔòÏÖÔÚÐèÒªÉý¼¶µ½2.0°æ±¾¡£

´´½¨redis-master-controller-v2.yamlµÄÅäÖÃÎļþÈçÏ£º

apiVersion: v1
kind: ReplicationController
metadata:
name: redis-master-v2
labels:
name: redis-master
version: v2
spec:
replicas: 1
selector:
name: redis-master
version: v2
template:
metadata:
labels:
name: redis-master
version: v2
spec:
containers:
- name: master
image: kubeguide/redis-master:2.0
ports:
- containerPort: 6379

ÔÚÅäÖÃÎļþÖÐÓм¸´¦ÐèҪעÒ⣺

£¨1£©RCµÄÃû×Ö£¨name£©²»ÄÜÓë¾ÉµÄRCµÄÃû×ÖÏàͬ£»

£¨2£©ÔÚselectorÖÐÓ¦ÖÁÉÙÓÐÒ»¸öLabelÓë¾ÉµÄRCµÄLabel²»Í¬£¬ÒÔ±êʶÆäΪеÄRC¡£

±¾ÀýÖÐÐÂÔöÁËÒ»¸öÃûΪversionµÄLabel£¬ÒÔÓë¾ÉµÄRC½øÐÐÇø·Ö¡£

ÔËÐÐkubectl rolling-updateÃüÁîÍê³ÉPodµÄ¹ö¶¯Éý¼¶£º

kubectl rolling-update redis-master -f redis-master-controller-v2.yaml

KubectlµÄÖ´Ðйý³ÌÈçÏ£º

Creating redis-master-v2
At beginning of loop: redis-master replicas: 2, redis-master-v2 replicas: 1
Updating redis-master replicas: 2, redis-master-v2 replicas: 1
At end of loop: redis-master replicas: 2, redis-master-v2 replicas: 1
At beginning of loop: redis-master replicas: 1, redis-master-v2 replicas: 2
Updating redis-master replicas: 1, redis-master-v2 replicas: 2
At end of loop: redis-master replicas: 1, redis-master-v2 replicas: 2
At beginning of loop: redis-master replicas: 0, redis-master-v2 replicas: 3
Updating redis-master replicas: 0, redis-master-v2 replicas: 3
At end of loop: redis-master replicas: 0, redis-master-v2 replicas: 3
Update succeeded. Deleting redis-master
redis-master-v2

µÈËùÓÐеÄPodÆô¶¯Íê³Éºó£¬¾ÉµÄPodÒ²±»È«²¿Ïú»Ù£¬ÕâÑù¾ÍÍê³ÉÁËÈÝÆ÷¼¯ÈºµÄ¸üС£

ÁíÒ»ÖÖ·½·¨ÊDz»Ê¹ÓÃÅäÖÃÎļþ£¬Ö±½ÓÓÃkubectl rolling-updateÃüÁ¼ÓÉÏ--image²ÎÊýÖ¸¶¨Ð°澵ÏñÃû³ÆÀ´Íê³ÉPodµÄ¹ö¶¯Éý¼¶£º

kubectl rolling-update redis-master --image=redis-master:2.0

ÓëʹÓÃÅäÖÃÎļþµÄ·½Ê½²»Í¬£¬Ö´ÐеĽá¹ûÊǾɵÄRC±»É¾³ý£¬ÐµÄRCÈÔ½«Ê¹ÓþɵÄRCµÄÃû×Ö¡£

KubectlµÄÖ´Ðйý³ÌÈçÏ£º

¿ÉÒÔ¿´µ½£¬Kubectlͨ¹ýн¨Ò»¸öа汾Pod£¬Í£µôÒ»¸ö¾É°æ±¾Pod£¬Öð²½µü´úÀ´Íê³ÉÕû¸öRCµÄ¸üС£

¸üÐÂÍê³Éºó£¬²é¿´RC£º

¿ÉÒÔ¿´µ½£¬Kubectl¸øRCÔö¼ÓÁËÒ»¸ökeyΪ¡°deployment¡±µÄLabel£¨Õâ¸ökeyµÄÃû×Ö¿Éͨ¹ý--deployment-label-key²ÎÊý½øÐÐÐ޸ģ©£¬LabelµÄÖµÊÇRCµÄÄÚÈݽøÐÐHash¼ÆËãºóµÄÖµ£¬Ï൱ÓÚÇ©Ãû£¬ÕâÑù¾ÍÄܷܺ½±ãµØ±È½ÏRCÀïµÄImageÃû×Ö¼°ÆäËûÐÅÏ¢ÊÇ·ñ·¢ÉúÁ˱仯£¬ËüµÄ¾ßÌå×÷ÓÿÉÒԲμûµÚ6ÕµÄÔ´Âë·ÖÎö¡£

Èç¹ûÔÚ¸üйý³ÌÖз¢ÏÖÅäÖÃÓÐÎó£¬ÔòÓû§¿ÉÒÔÖжϸüвÙ×÷£¬²¢Í¨¹ýÖ´ÐÐKubectl rolling-update ¨CrollbackÍê³ÉPod°æ±¾µÄ»Ø¹ö£º

µ½´Ë£¬¿ÉÒÔ¿´µ½Pod»Ö¸´µ½¸üÐÂǰµÄ°æ±¾ÁË¡£

Kubernetes¼¯Èº¸ß¿ÉÓ÷½°¸

Kubernetes×÷ΪÈÝÆ÷Ó¦ÓõĹÜÀíÖÐÐÄ£¬Í¨¹ý¶ÔPodµÄÊýÁ¿½øÐÐ¼à¿Ø£¬²¢ÇÒ¸ù¾ÝÖ÷»ú»òÈÝÆ÷ʧЧµÄ״̬½«ÐµÄPodµ÷¶Èµ½ÆäËûNodeÉÏ£¬ÊµÏÖÁËÓ¦ÓòãµÄ¸ß¿ÉÓÃÐÔ¡£Õë¶ÔKubernetes¼¯Èº£¬¸ß¿ÉÓÃÐÔ»¹Ó¦°üº¬ÒÔÏÂÁ½¸ö²ãÃæµÄ¿¼ÂÇ£ºetcdÊý¾Ý´æ´¢µÄ¸ß¿ÉÓÃÐÔºÍKubernetes Master×é¼þµÄ¸ß¿ÉÓÃÐÔ¡£

1£®etcd¸ß¿ÉÓÃÐÔ·½°¸

etcdÔÚÕû¸öKubernetes¼¯ÈºÖд¦ÓÚÖÐÐÄÊý¾Ý¿âµÄµØÎ»£¬Îª±£Ö¤Kubernetes¼¯ÈºµÄ¸ß¿ÉÓÃÐÔ£¬Ê×ÏÈÐèÒª±£Ö¤Êý¾Ý¿â²»Êǵ¥¹ÊÕϵ㡣һ·½Ã棬etcdÐèÒªÒÔ¼¯ÈºµÄ·½Ê½½øÐв¿Êð£¬ÒÔʵÏÖetcdÊý¾Ý´æ´¢µÄÈßÓà¡¢±¸·ÝÓë¸ß¿ÉÓÃÐÔ£»ÁíÒ»·½Ã棬etcd´æ´¢µÄÊý¾Ý±¾ÉíÒ²Ó¦¿¼ÂÇʹÓÿɿ¿µÄ´æ´¢É豸¡£

etcd¼¯ÈºµÄ²¿Êð¿ÉÒÔʹÓþ²Ì¬ÅäÖã¬Ò²¿ÉÒÔͨ¹ýetcdÌṩµÄREST APIÔÚÔËÐÐʱ¶¯Ì¬Ìí¼Ó¡¢Ð޸Ļòɾ³ý¼¯ÈºÖеijÉÔ±¡£±¾½Ú½«¶Ôetcd¼¯ÈºµÄ¾²Ì¬ÅäÖýøÐÐ˵Ã÷¡£¹ØÓÚ¶¯Ì¬Ð޸ĵIJÙ×÷·½·¨Çë²Î¿¼etcd¹Ù·½ÎĵµµÄ˵Ã÷¡£

Ê×ÏÈ£¬¹æ»®Ò»¸öÖÁÉÙ3̨·þÎñÆ÷£¨½Úµã£©µÄetcd¼¯Èº£¬ÔÚÿ̨·þÎñÆ÷Éϰ²×°ºÃetcd¡£

²¿ÊðÒ»¸öÓÉ3̨·þÎñÆ÷×é³ÉµÄetcd¼¯Èº£¬ÆäÅäÖÃÈç±í1Ëùʾ£¬Æä¼¯Èº²¿ÊðʵÀýÈçͼ2Ëùʾ¡£

±í1 etcd¼¯ÈºµÄÅäÖÃ

ͼ2 etcd¼¯Èº²¿ÊðʵÀý

È»ºóÐÞ¸Äÿ̨·þÎñÆ÷ÉÏetcdµÄÅäÖÃÎļþ/etc/etcd/etcd.conf¡£

ÒÔetcd1Ϊ´´½¨¼¯ÈºµÄʵÀý£¬ÐèÒª½«ÆäETCD_INITIAL_CLUSTER_STATEÉèÖÃΪ¡°new¡±¡£etcd1µÄÍêÕûÅäÖÃÈçÏ£º

Æô¶¯etcd1·þÎñÆ÷ÉϵÄetcd·þÎñ£º

$ systemctl restart etcd

Æô¶¯Íê³Éºó£¬¾Í´´½¨ÁËÒ»¸öÃûΪetcd-clusterµÄ¼¯Èº¡£

etcd2ºÍetcd3Ϊ¼ÓÈëetcd-cluster¼¯ÈºµÄʵÀý£¬ÐèÒª½«ÆäETCD_INITIAL_CLUSTER_STATEÉèÖÃΪ¡°exist¡±¡£etcd2µÄÍêÕûÅäÖÃÈçÏ£¨etcd3µÄÅäÖÃÂÔ£©£º

Æô¶¯etcd2ºÍetcd3·þÎñÆ÷ÉϵÄetcd·þÎñ£º

$ systemctl restart etcd

Æô¶¯Íê³Éºó£¬ÔÚÈÎÒâetcd½ÚµãÖ´ÐÐetcdctl cluster-healthÃüÁîÀ´²éѯ¼¯ÈºµÄÔËÐÐ״̬£º

$ etcdctl cluster-health
cluster is healthy
member ce2a822cea30bfca is healthy
member acda82ba1cf790fc is healthy
member eba209cd0012cd2 is healthy

ÔÚÈÎÒâetcd½ÚµãÉÏÖ´ÐÐetcdctl member listÃüÁîÀ´²éѯ¼¯ÈºµÄ³ÉÔ±ÁÐ±í£º

ÖÁ´Ë£¬Ò»¸öetcd¼¯Èº¾Í´´½¨³É¹¦ÁË¡£

ÒÔkube-apiserverΪÀý£¬½«·ÃÎÊetcd¼¯ÈºµÄ²ÎÊýÉèÖÃΪ£º

--etcd-servers=http://10.0.0.1:4001,http://10.0.0.2:4001,http://10.0.0.3:4001

ÔÚetcd¼¯Èº³É¹¦Æô¶¯Ö®ºó£¬Èç¹ûÐèÒª¶Ô¼¯Èº³ÉÔ±½øÐÐÐ޸ģ¬ÔòÇë²Î¿¼¹Ù·½ÎĵµµÄÏêϸ˵Ã÷£ºµã»÷´Ë´¦

¶ÔÓÚetcdÖÐÐèÒª±£´æµÄÊý¾ÝµÄ¿É¿¿ÐÔ£¬¿ÉÒÔ¿¼ÂÇʹÓÃRAID´ÅÅÌÕóÁС¢¸ßÐÔÄÜ´æ´¢É豸¡¢NFSÍøÂçÎļþϵͳ£¬»òÕßʹÓÃÔÆ·þÎñÉÌÌṩµÄÍøÅÌϵͳµÈÀ´ÊµÏÖ¡£

2.Kubernetes Master×é¼þµÄ¸ß¿ÉÓÃÐÔ·½°¸

ÔÚKubernetesÌåϵÖУ¬Master·þÎñ°çÑÝ×Å×Ü¿ØÖÐÐĵĽÇÉ«£¬Ö÷ÒªµÄÈý¸ö·þÎñkube-apiserver¡¢kube-controller-mansgerºÍkube-schedulerͨ¹ý²»¶ÏÓ빤×÷½ÚµãÉϵÄKubeletºÍkube-proxy½øÐÐͨÐÅÀ´Î¬»¤Õû¸ö¼¯ÈºµÄ½¡¿µ¹¤×÷״̬¡£Èç¹ûMasterµÄ·þÎñÎÞ·¨·ÃÎʵ½Ä³¸öNode£¬Ôò»á½«¸ÃNode±ê¼ÇΪ²»¿ÉÓ㬲»ÔÙÏòÆäµ÷¶Èн¨µÄPod¡£µ«¶ÔMaster×ÔÉíÔòÐèÒª½øÐжîÍâµÄ¼à¿Ø£¬Ê¹Master²»³ÉΪ¼¯ÈºµÄµ¥¹ÊÕϵ㣬ËùÒÔ¶ÔMaster·þÎñÒ²ÐèÒª½øÐи߿ÉÓ÷½Ê½µÄ²¿Êð¡£

ÒÔMasterµÄkube-apiserver¡¢kube-controller-mansgerºÍkube-schedulerÈý¸ö·þÎñ×÷Ϊһ¸ö²¿Êðµ¥Ôª£¬ÀàËÆÓÚetcd¼¯ÈºµÄµäÐͲ¿ÊðÅäÖá£Ê¹ÓÃÖÁÉÙÈý̨·þÎñÆ÷°²×°Master·þÎñ£¬²¢ÇÒʹÓÃActive-Standby-Standbyģʽ£¬±£Ö¤ÈκÎʱºò×ÜÓÐÒ»Ì×MasterÄܹ»Õý³£¹¤×÷¡£

ËùÓй¤×÷½ÚµãÉϵÄKubeletºÍkube-proxy·þÎñÔòÐèÒª·ÃÎÊMaster¼¯ÈºµÄͳһ·ÃÎÊÈë¿ÚµØÖ·£¬ÀýÈç¿ÉÒÔʹÓÃpacemakerµÈ¹¤¾ßÀ´ÊµÏÖ¡£Í¼3չʾÁËÒ»ÖÖµäÐ͵IJ¿Êð·½Ê½¡£

ͼ3 Kubernetes Master¸ß¿ÉÓò¿Êð¼Ü¹¹

   
3258 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

DevOpsתÐÍÈÚÈëµ½ÆóÒµÎÄ»¯
DevOps ÄÜÁ¦Ä£ÐÍ¡¢Ñݽø¼°°¸ÀýÆÊÎö
»ùÓÚ DevOps ÀíÄîµÄ˽ÓÐ PaaS ƽ̨ʵ¼ù
΢Èí¿ª·¢ÍŶӵÄDevOpsʵ¼ùÆôʾ
Ïà¹ØÎĵµ

DevOpsÇý¶¯Ó¦ÓÃÔËά±ä¸ïÓë´´ÐÂ
ÔËά¹ÜÀí¹æ»®
ÈçºÎʵÏÖÆóÒµÓ¦Óò¿Êð×Ô¶¯»¯
ÔËά×Ô¶¯»¯Êµ¼ù֮·
Ïà¹Ø¿Î³Ì

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

itilÎå´óÁ÷³Ìͼ
ITILÁ÷³Ì¹ÜÀíÁù²½×ß
ʹÓÃITIL V3×÷SOAÖÎÀíµÄ»ùʯ
IT·þÎñ¹ÜÀíµÄʵ¼ùÓë×ܽá
½è¼øITIL¼Ü¹¹ÀíÄîÌáÉýÐÅÏ¢»¯
ITILÁ÷³Ì×ܽá


»ùÓÚITILµÄIT·þÎñ¹ÜÀí
ITILÈÏÖ¤
ITSM/ITIL»ù´¡
IT¹æ»®¹ÜÀí
ITÍâ°ü¹ÜÀí
IT³É±¾¹ÜÀí

ÖйúÒÆ¶¯Í¨ÐÅ ÍøÂç¹æ»®Óë¹ÜÀí
ijº½¿Õ¹«Ë¾ IT¹æ»®ÓëÆóÒµ¼Ü¹¹
ij½ðÈÚ¹«Ë¾ IT·þÎñ¹ÜÀí£¨ITIL V3£©
ÖйúÁªÍ¨¼¯ÍÅ ITÇ°ÑØÖªÊ¶¸ÅÊö
Öк£ÓÍ ÆóÒµIT¼Ü¹¹Éè¼Æ