¿Hay alguna variable disponible en el timón para obtener el valor del ciclo de réplica actual? Me gustaría aumentar el número de réplicas de la implementación al exponer el valor de número de réplicas en valores.yaml de helm con esto, necesitamos actualizar un parámetro para cada réplica.
hay un parámetro en nuestro "nombre del servidor" de yaml, debemos cambiar sus valores para cada réplica, como nombre del servidor: "servidor", luego debemos pasar valores como "servidor-0", "servidor-1", "servidor-2 " a cada réplica (0, 1, 2).
¿Hay alguna manera?
No, no puede pasar valores diferentes para cada réplica.
¿Por qué? Porque está en la definición de la palabra "réplica" :
réplica : una copia exacta de un objeto
La réplica es una copia exacta , por lo que no puede hacerla diferente de ninguna manera. Y kubernetes no te va a ayudar con eso.
Respondiendo a tu otra pregunta:
¿Cómo obtener el recuento de réplicas actual? Me gustaría aumentar el número de réplicas de la implementación exponiendo el valor del número de réplicas
Kubernetes aplica el modelo declarativo . Usted declara cuántas réplicas quiere y hará todo lo posible para igualarlas. No necesita saber su conteo actual para escalarlo hacia arriba o hacia abajo (al menos eso es lo que entiendo que está tratando de hacer según su pregunta).
Simplemente coloque la variable replicacount en el archivo values.yaml y haga referencia a ella en el gráfico de timón. Es fácil.
Si el código de su aplicación busca su propio nombre de host (como en el comando shell hostname o la función gethostname de C), será el nombre del pod actual. Esto será único en cada réplica.
Si verificar el nombre de host es inconveniente para su código, también puede usar la API descendente para inyectar el nombre del pod como una variable de entorno (ejemplo copiado directamente de la documentación de Kubernetes vinculada):
env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.nameNo hay forma de inyectar estos datos en un archivo sin usar algo como un contenedor de inicio o un script de punto de entrada. Los mecanismos que Kubernetes tiene para inyectar archivos (por ejemplo, montar un ConfigMap en un contenedor ) solo inyectan contenido de archivo fijo y siempre será idéntico en todas las réplicas.
Si necesita específicamente que los nombres estén en el orden secuencial que propone, o necesita que se reutilice un nombre para recuperar el almacenamiento, un StatefulSet generará los nombres de los pods exactamente así (también puede asignar almacenamiento automáticamente e iniciar los pods en un orden específico).
No hay nada en Helm que le permita tener una configuración diferente por réplica. Su plantilla lo ayudará a construir los nombres y contenidos de los objetos StatefulSet/Service/ConfigMap/..., pero una vez que los haya creado, los controladores de Kubernetes que crean los Pods individuales aún funcionan de la misma manera y aún crean un número. de Pods en su mayoría idénticos con el mismo comportamiento.