Ê×Ò³
ѧϰ
»î¶¯
רÇø
¹¤¾ß
TVP
·¢²¼
¾«Ñ¡ÄÚÈÝ/¼¼ÊõÉçȺ/ÓŻݲúÆ·,¾¡ÔÚС³ÌÐò
Á¢¼´Ç°Íù

ÓÐ״̬²¿ÊðÂý£¿Ê¹Óà openkruise ʵÏÖÈÝÆ÷Ó¦Óù̶¨ID

±³¾°ËµÃ÷

ÎÒÃÇÔÚÒµÎñÉÏÈÝÆ÷µÄ¹ý³ÌÖÐÓöµ½ÁËÈçÏÂÎÊÌ⣺

  1. ÒÔ deployment ²¿ÊðµÄÓ¦Óà pod£¬ÓÉÓÚ id ¾­³£±ä¸ü£¬·þÎñÖØÆô£¬¼à¿Ø±äµÃÄÑÒÔά»¤¡£ÕâÀïÖ»ÊÇÒÔ¼à¿ØΪÇÐÈëµã£¬ÊÂʵÉÏ£¬»¹ÓÐÖî¶àÓ¦ÓÃÐèÒªÓëidÇ¿°ó¶¨¡£
  2. statefulset ¿ÉÒÔ½â¾öÉÏÃæµÄÎÊÌ⣬µ«ÊÇÒýÈëÒ»¸öеÄÎÊÌâ¾ÍÊÇ statefulset ±¾ÉíΪÁËά»¤ÓÐ״̬µÄÓ¦Óã¬ËùÓеÄÓ¦Óà Pod Æô¶¯ÊÇÓÐÑϸñµÄÏȺó˳Ðò£¬Ò²¾ÍÊÇ´®ÐÐÆô¶¯£¬¶ÔÓÚ´ó¹æÄ£µÄÓ¦Óà pod À´½²£¬Æô¶¯ÏûºÄʱ¼äÌ«³¤£¬ÕâÊÇÎÞ·¨ÈÌÊܵġ£

Ϊ½â¾öÒÔÉÏÎÊÌ⣬ÎÒÃÇÔÚÈÝÆ÷ƽ̨µ±ÖÐÒýÈëÁË openkruise¡£

openkruise¼ò½é

ÏîÄ¿µØÖ·£ºhttps://github.com/openkruise/kruise

ÏêϸµÄ˵Ã÷¿ÉÒԲο¼ÕâƪÎÄÕ£º

https://yq.aliyun.com/articles/706442

´Óµ±Ç° github ÉϵÄÎĵµÀ´¿´£¬Ä¿Ç° OpenKruise Ö§³ÖÎåÖָĽøµÄ¿ØÖÆÆ÷£º

  • CloneSet: CloneSet is a workload that mainly focuses on managing stateless applications. It provides full features for more efficient, deterministic and controlled deployment, such as inplace update, specified pod deletion, configurable priority/scatter update, preUpdate/postUpdate hooks.
  • Advanced StatefulSet: An enhanced version of default StatefulSet with extra functionalities such as inplace-update, pause and MaxUnavailable.
  • SidecarSet: A controller that injects sidecar containers into the Pod spec based on selectors and also is able to upgrade the sidecar containers.
  • UnitedDeployment: This controller manages application pods spread in multiple fault domains by using multiple workloads.
  • BroadcastJob: A job that runs Pods to completion across all the nodes in the cluster.

UnitedDeployment ÊÇÔÚ StatefulSet »ù´¡Éϵĸü¸ß¼¶³éÏó£¬Í¨¹ýÒ»¸ö×ÊÔ´ÃèÊö¿ÉÒÔ¹ÜÀí¶à¸ö StatefulSet µÄʵÀý×飬¿ÉʵÏÖ¶àʵÀý×éµÄ»Ò¶È·¢²¼Óë¹ö¶¯Éý¼¶¡£

Broadcast Job ʵ¼ÊÉϾÍÊÇÒÔ DaemonSet µÄ·½Ê½ÔÚËùÓнڵãÉÏÔËÐÐÒ»´ÎÐÔ Job£¬SidercarSet ÓÃÓÚ Sidercar ×¢Èë¼°¹ÜÀí¡£

¶øÎÒÃÇҪʹÓõ½µÄÕýÊÇÆä Advanced StatefulSet µÄÌØÐÔ¡£¹ØÓÚAdvanced StatefulSet¸üÏêϸµÄÃèÊöÈçÏ£º

ÔÚkubernetes¹Ù·½µÄstatefulSetÉÏ×öÁ˹¦ÄÜÀ©Õ¹£¬¸üвßÂÔÓÉÔ­À´µÄÖ»Ö§³Örecreate£¬À©Õ¹ÎªÍ¬Ê±Ö§³ÖrecreateºÍrollingupdate¡£rollingupdate»¹Ö§³ÖÁ½ÖÖ²ßÂÔ£¬Ò»ÖÖÊÇInPlaceIfPossible£¬ÁíÒ»ÖÖÊÇInPlaceOnly¡£InPlaceIfPossible»á¾¡¿ÉÄܵı£Ö¤Ó¦ÓÃÔÚÔ­µØÉý¼¶£¨Ö»Ö§³Ö¾µÏñµÄÉý¼¶£¬Èç¹ûÐÞ¸ÄÁËyamlÖеÄÆäËûÅäÖÃÏÔòÎÞ·¨±£Ö¤£©£»InPlaceOnly»á±£Ö¤Ó¦ÓÃÒ»¶¨ÔÚÔ­µØÉý¼¶£¬µ«ÊÇËüÒ²Ö»Ö§³Ö¾µÏñµÄÉý¼¶£¬Èç¹ûÐÞ¸ÄÁËyamlÖеÄÆäËûÅäÖÃÏ»áÖ±½ÓÅ׳öÒì³£¡£ÁíÍ⣬ԭÉúµÄStatefulSetÖ»ÄÜ×öµ½´®ÐÐÆô¶¯£¬Advanced StatefulSet¿ÉÒÔ×öµ½²¢ÐÐÆô¶¯¡£

²¿Êðopenkruise

¹Ù·½µÄ°²×°Îĵµ¿ÉÒÔÖ±½Ó²Î¿¼ÕâÀ

https://github.com/openkruise/kruise/tree/master/docs/tutorial

ÎÒ¼òµ¥Ð´Ï°²×°²½Ö裺

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
wget?https://github.com/openkruise/kruise/releases/download/v0.4.0/kruise-chart.tgz??tar?xf?kruise-chart.tgz??cd?kruise??helm?install?openkruise?./?-n?kube-system?

Ä¿Ç°openkruiseÒѾ­¸üе½ÁËv0.5.0µÄ°æ±¾¡£Ò²¿ÉÒÔÖ±½Óͨ¹ý°¢ÀïÔƵÄÓ¦ÓÃĿ¼À´Íê³ÉÆä°²×°¡£

ÏÂÃæ˵һϸüÏêϸµÄ°²×°¹ý³Ì£º

1¡¢»ñÈ¡helm°ü

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
helm?repo?add?incubator?http://aliacs-k8s-cn-beijing.oss-cn-beijing.aliyuncs.com/app/charts-incubator/??helm?search?repo?ack-kruise??helm?fetch?incubator/ack-kruise??tar?xf?ack-kruise-0.5.0.tgz??cd?ack-kruise?

ÐÞ¸Ävalues.ymlÎļþÈçÏ£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
#?Default?values?for?kruise.??revisionHistoryLimit:?3??manager:??#?settings?for?log?print??log:??#?log?level?for?kruise-manager??level:?"4"??#?image?settings??image:??#?repository?for?kruise-manager?image??repository:?hub.example.com/library/kruise-manager??#?tag?for?kruise-manager?image??tag:?v0.5.0??#?resources?of?kruise-manager?container??resources:??limits:??cpu:?500m??memory:?1Gi??requests:??cpu:?500m??memory:?1Gi??metrics:??addr:?localhost??port:?8080??custom_resource_enable:?StatefulSet?

ÆäʵÕâÀï¾Í¸ÄÁËÁ½¸ö¶«Î÷£º

  • image£ºÄ¬ÈÏÊÇdocker hubÉϵĵØÖ·£¬ÎÒÕâÀï¸Äµ½ÁË˽ÓоµÏñ²Ö¿â
  • custom_resource_enable£ºÓÃÓÚÖ¸¶¨ÆôÓÃÄļ¸ÖÖ×ÊÔ´£¬Èç¹û²»Ö¸¶¨µÄ»°£¬openkruiseÖ§³ÖµÄÎåÖÖ×ÊÔ´»áÈ«²¿ÆôÓã¬ÎÒÕâÀïÖ»Óõ½ÁËStatefulSet£¬ËùÒÔÕâÀïÖ»ÆôÓÃÁËÕâÒ»ÖÖ×ÊÔ´

È»ºóÖ´Ðа²×°²Ù×÷£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
helm?install?ack-kruise?-n?kube-system?./?

°²×°Íêºó£¬»áÉú³ÉÒÔÏÂÎåÖÖcrd£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
#?kubectl?get?crds?|grep?kruise??broadcastjobs.apps.kruise.io?2020-04-26T10:29:28Z??clonesets.apps.kruise.io?2020-04-26T10:29:28Z??sidecarsets.apps.kruise.io?2020-04-26T10:29:28Z??statefulsets.apps.kruise.io?2020-04-26T10:29:28Z??uniteddeployments.apps.kruise.io?2020-04-26T10:29:28Z?

ͬʱ»á´´½¨Ò»¸ö kruise-system µÄÃüÃû¿Õ¼ä£¬²¢ÔÚÀïÃæÉú³ÉÒ»¸ö pod£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
#?kubectl?get?pods?-n?kruise-system??NAME?READY?STATUS?RESTARTS?AGE??kruise-controller-manager-0?1/1?Running?0?55m?

ÑéÖ¤ statefulset ×ÊÔ´µÄ webhook ÊÇ·ñ±»Õý³£´´½¨£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
#?kubectl?get?mutatingwebhookconfiguration?-o?yaml??apiVersion:?v1??items:??-?apiVersion:?admissionregistration.k8s.io/v1??kind:?MutatingWebhookConfiguration??metadata:??creationTimestamp:?"2020-04-26T10:29:28Z"??generation:?3??name:?kruise-mutating-webhook-configuration??resourceVersion:?"622944921"??selfLink:?/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/kruise-mutating-webhook-configuration??uid:?303a7b7f-3a62-49d7-8ef6-082ea288eeb2??webhooks:??-?admissionReviewVersions:??-?v1beta1??clientConfig:??caBundle:?xxxxx??service:??name:?kruise-webhook-server-service??namespace:?kruise-system??path:?/mutating-create-update-statefulset??port:?443??failurePolicy:?Fail??matchPolicy:?Exact??name:?mutating-create-update-statefulset.kruise.io??namespaceSelector:??matchExpressions:??-?key:?control-plane??operator:?DoesNotExist??objectSelector:?{}??reinvocationPolicy:?Never??rules:??-?apiGroups:??-?apps.kruise.io??apiVersions:??-?v1alpha1??operations:??-?CREATE??-?UPDATE??resources:??-?statefulsets??scope:?'*'??sideEffects:?Unknown??timeoutSeconds:?30??......?

Ò²ÊÇÈ·±£ÆäËûδÓõ½µÄÏà¹Ø mutatingwebhook Êǹرյġ£¡£ÔÚʵ¼Ê²âÊÔÖУ¬SidecarSet ×ÊÔ´µÄ mutatingwebhook ¿ÉÄܻᵼÖ´´½¨µÄ pod ³ö²»À´¡£

ÕâЩwebhook±¾ÖÊÉ϶¼ÊÇkubernetesµÄadmissioncontrol£¬Ö»ÒªÄã°²×°ÁË£¬ÄÄÅÂûÓÐʹÓ㬵±ÄãÔÚÖ´ÐÐÏà¹Ø²Ù×÷ʱ£¬¶¼ÐèÒª±»ËùÓеÄadminssioncontrol¼ì²â£¬Èç¹ûadmissioncontrol±¾Éí³öÁËÎÊÌ⣬¾Í»áµ¼ÖÂÇëÇóÎÞ·¨ÏìÓ¦µÄ״̬¡£Í¬Ê±ÕâЩwebhookÀàÐ͵ÄadminssioncontrolÒ²»áÍÏÂýÏìÓ¦Ëٶȡ£

Ó÷¨Ê¾Àý

ÏÂÃæÊǹٷ½ÌṩµÄÒ»¸ö»ùÓÚ openkruise ÌṩµÄ statefulset ×ÊÔ´µÄ²¿ÊðÎļþʾÀý£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
apiVersion:?apps.kruise.io/v1alpha1??kind:?StatefulSet??metadata:??name:?demo-v1-guestbook-kruise??labels:??app.kubernetes.io/name:?guestbook-kruise??app.kubernetes.io/instance:?demo-v1??spec:??replicas:?3??serviceName:?demo-v1-guestbook-kruise??selector:??matchLabels:??app.kubernetes.io/name:?guestbook-kruise??app.kubernetes.io/instance:?demo-v1??template:??metadata:??labels:??app.kubernetes.io/name:?guestbook-kruise??app.kubernetes.io/instance:?demo-v1??spec:??readinessGates:??#?A?new?condition?that?ensures?the?pod?remains?at?NotReady?state?while?the?in-place?update?is?happening??-?conditionType:?InPlaceUpdateReady??containers:??-?name:?guestbook-kruise??image:?openkruise/guestbook:v1??imagePullPolicy:?Always??ports:??-?name:?http-server??containerPort:?3000??podManagementPolicy:?Parallel?#?allow?parallel?updates,?works?together?with?maxUnavailable??updateStrategy:??type:?RollingUpdate??rollingUpdate:??#?Do?in-place?update?if?possible,?currently?only?image?update?is?supported?for?in-place?update??podUpdatePolicy:?InPlaceIfPossible??#?Allow?parallel?updates?with?max?number?of?unavailable?instances?equals?to?2??maxUnavailable:?3?

Ö´Ðв¿ÊðÖ®ºó£¬Æô¶¯ pod ʾÀýÈçÏ£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
#?kubectl?get?pods?|grep?demo-v1??demo-v1-guestbook-kruise-0?1/1?Running?0?62s??demo-v1-guestbook-kruise-1?1/1?Running?0?62s??demo-v1-guestbook-kruise-2?1/1?Running?0?62s?

Ò²¿Éͨ¹ýÈçϲÙ×÷²é¿´×ÊԴ״̬£º

´úÂëÓïÑÔ£ºjavascript
¸´ÖÆ
#?kubectl?get?sts.apps.kruise.io??NAME?DESIRED?CURRENT?UPDATED?READY?AGE??demo-v1-guestbook-kruise?3?3?3?3?56s??openkruiseÌṩµÄstatefulsetµÄ×ÊÔ´ÃûΪsts.apps.kruise.io?

¸üÏêϸµÄÓ÷¨¿É²Î¿¼£º

Advanced StatefulSet¾ßÌåµÄʹÓ÷½·¨£ºhttps://github.com/openkruise/kruise/blob/master/docs/concepts/astatefulset/README.md

Advanced StatefulSetʾÀýÎļþ£ºhttps://github.com/openkruise/kruise/blob/master/docs/tutorial/v1/guestbook-statefulset.yaml

UnitedDeployment¾ßÌåµÄʹÓ÷½·¨£ºhttps://github.com/openkruise/kruise/blob/master/docs/tutorial/uniteddeployment.md

UnitedDeploymentʾÀýÎļþ£ºhttps://raw.githubusercontent.com/kruiseio/kruise/master/docs/tutorial/v1/uniteddeployment.yaml

  • ·¢±íÓÚ:
  • Ô­ÎÄÁ´½Ó£ºhttp://news.51cto.com/art/202005/617414.htm
  • ÈçÓÐÇÖȨ£¬ÇëÁªÏµ cloudcommunity@tencent.com ɾ³ý¡£

Ïà¹Ø¿ìѶ

ɨÂë

Ìí¼ÓÕ¾³¤ ½ø½»Á÷Ⱥ

ÁìȡרÊô 10ÔªÎÞÃż÷ȯ

˽Ïí×îР¼¼Êõ¸É»õ

ɨÂë¼ÓÈ뿪·¢ÕßÉçȺ
Áìȯ
http://www.vxiaotou.com