Principios básicos del conjunto de réplicas de Kubernetes

1. Información general

El objeto del conjunto de réplicas describe una [aplicación] de una [versión específica] y controla los atributos (imágenes, variables de entorno del contenedor, etc.) y el número de pods.
Nota:
1) El objeto del conjunto de réplicas no controla la versión del objeto del pod, pero es para el mismo pod reflejado.
2) El objeto de implementación controla el objeto de conjunto de réplicas, que puede describir una aplicación, porque las aplicaciones se dividen en versiones.

2) Principios generales

El controlador del conjunto de réplicas supervisará el objeto pod y el objeto conjunto de réplicas de kuberntes, y los cambios de estos objetos supervisados ​​activarán el bucle syncLoop (llamado método syncReplicaSet ()) para permitir que el clúster de kubernetes evolucione hacia el estado descrito por el objeto del conjunto de réplicas .

3) Detalles de implementación

Cada vez que el controlador ejecuta el método de devolución de llamada syncReplicaSet (), se realizan las siguientes operaciones:

1) Obtenga el objeto rs de acuerdo con el parámetro de
entrada clave de cadena: espacio de nombres, nombre, err: = cache.SplitMetaNamespaceKey (clave)
rs, err: = rsc.rsLister.ReplicaSets (espacio de nombres) .Get (nombre)

2) Obtenga un valor booleano: compruebe si la operación del número de pods sincronizados debe realizarse realmente
rsNeedsSync: = rsc.expectations.SatisfiedExpectations (clave)

3) Obtenga los pods debajo del objeto rs. Esta lista de
pods se llama filterPods : allPods, err: = rsc.podLister.Pods (rs.Namespace) .List (labels.Everything ()) filterPods
: = controller.FilterActivePods (allPods)
filtradosPods, err = rsc.claimPods (rs, selector, filtradosPods)

4) De acuerdo con el valor de rsNeedsSync, decida si sincronizar el número de pods [número]: crear o eliminar pods en realidad: crear o eliminar pods en
lotes rsc.manageReplicas (FilterPods, rs)

5) Actualice el campo de estado del objeto rs

4) Diagrama de flujo simple del código fuente


								SatisfiedExpectations(此机制决定是否真的执行manageReplicas()方法)
									|
									|
									∨									
rs对象的变更或pod对象的变更 --> syncReplicaSet方法 --> manageReplicas(保持数量一致性:为rs创建pod或删除pod)  -->  1.判断究竟是新建pod还是删除pod  
																									     2. 创建为rs对象创建一个expectations对象,并设置add值/del值 
																									     3.调用slowStartBatch()方法批量创建pod 或 删除经过筛选出的多余的pod  
																								  	     4.更新rs对象关联的expectations对象
										|
										|
									    ∨
								updateReplicaSetStatus(更新rs对象的status字段)	

Supongo que te gusta

Origin blog.csdn.net/nangonghen/article/details/106153278
Recomendado
Clasificación