Ciclo de vida y etapas de las actualizaciones de clústeres

Cuando actualizas Google Distributed Cloud, el proceso de actualización implica varios pasos y componentes. Para supervisar el estado de la actualización o diagnosticar y solucionar problemas, es útil saber qué sucede cuando ejecutas el comando bmctl upgrade cluster. En este documento, se detallan los componentes y las etapas de una actualización de clúster.

Descripción general

El proceso de actualización traslada tu clúster de Google Distributed Cloud de su versión actual a una versión superior.

Esta información de versión se almacena en las siguientes ubicaciones como parte del recurso personalizado del clúster en el clúster de administrador:

  • status.anthosBareMetalVersion: Define la versión actual del clúster.

  • spec.anthosBareMetalVersion: Define la versión de destino y se establece cuando comienza a ejecutarse el proceso de actualización.

Una operación de actualización correcta concilia status.anthosBareMetalVersion con spec.anthosBareMetalVersion para que ambos muestren la versión objetivo.

Sesgo de versiones del clúster

La distorsión de la versión del clúster es la diferencia en las versiones entre un clúster de administración (híbrido o administrador) y sus clústeres de usuario administrados. Cuando agregas o actualizas un clúster de usuario, se aplican las siguientes reglas de versión:

1.30 y versiones posteriores

Las siguientes reglas se aplican a los clústeres de usuario administrados por un clúster híbrido o de administrador de la versión 1.30 o posterior:

  • Las versiones del clúster de usuario no pueden ser superiores a la versión del clúster de administración (administrador o híbrido).

  • Los clústeres de usuario pueden tener hasta dos versiones secundarias anteriores a la versión del clúster de administración. Por ejemplo, un clúster de administrador de la versión 1.30 puede administrar un clúster de usuario de la versión 1.28. Esta función de administración de desfases de versiones n-2 es de versión general para administrar clústeres en la versión 1.30.

  • En el caso de un clúster de administración determinado en la versión 1.30 o una posterior, los clústeres de usuario no necesitan tener la misma versión secundaria. Por ejemplo, un clúster de administrador de la versión 1.30 puede administrar clústeres de usuario de las versiones 1.30, 1.29 y 1.28.

    La función de administración de varios sesgos te brinda más flexibilidad para planificar las actualizaciones de tu flota. Por ejemplo, no es necesario que actualices todos los clústeres de usuario de la versión 1.28 a la versión 1.29 antes de poder actualizar el clúster de administrador a la versión 1.30.

1.29

Las siguientes reglas se aplican a los clústeres de usuario administrados por un clúster de administrador o híbrido de la versión 1.29:

  • Las versiones de los clústeres de usuario no pueden ser superiores a la versión del clúster de administración (administrador o híbrido).

  • (Versión preliminar 1.29) Los clústeres de usuario pueden tener hasta dos versiones secundarias anteriores a la versión del clúster de administración. Por ejemplo, un clúster de administrador de la versión 1.29 puede administrar un clúster de usuario de la versión 1.16. Esta administración de sesgos de versión n-2 está disponible como una función de versión preliminar para administrar clústeres en la versión 1.29.

  • (Versión preliminar de 1.29) Para un clúster de administración determinado, los clústeres de usuario no necesitan tener la misma versión secundaria que los demás. Por ejemplo, un clúster de administrador de la versión 1.29 puede administrar los clústeres de usuario de las versiones 1.29, 1.28 y 1.16. Esta administración de desfases de versiones mixtas está disponible como una función de versión preliminar para administrar clústeres en la versión 1.29.

    La función de administración de sesgos múltiples en la versión preliminar te brinda más flexibilidad para planificar las actualizaciones de tu flota. Por ejemplo, no es necesario que actualices todos los clústeres de usuario de la versión 1.16 a la versión 1.28 antes de poder actualizar tu clúster de administrador a la versión 1.29.

1.28 y anteriores

Las siguientes reglas se aplican a los clústeres de usuario administrados por un clúster híbrido o de administrador de la versión 1.28 o anterior:

  • Las versiones de los clústeres de usuario no pueden ser superiores a la versión del clúster de administración (administrador o híbrido).

  • Los clústeres de usuario pueden tener hasta una versión secundaria inferior a la versión del clúster de administración. Por ejemplo, un clúster de administrador de la versión 1.28 no puede administrar un clúster de usuario de la versión 1.15.

  • En el caso de un clúster de administración determinado, todos los clústeres de usuario administrados deben tener la misma versión secundaria.

Para obtener información sobre las reglas de sesgo de versiones de grupos de nodos, consulta Reglas de control de versiones de grupos de nodos.

Reglas de versión

Cuando descargas una versión nueva de bmctl y la instalas, puedes actualizar los clústeres de administrador, híbridos, independientes y de usuario creados o actualizados con una versión anterior de bmctl. Los clústeres no se pueden cambiar a una versión inferior.

Solo puedes actualizar un clúster a una versión que coincida con la versión de bmctl que usas. Es decir, si usas la versión 1.31.200-gke.58 de bmctl, solo puedes actualizar un clúster a la versión 1.31.200-gke.58.

Actualizaciones de versiones de parches

Para una versión secundaria determinada, puedes actualizar a cualquier versión de parche superior. Es decir, puedes actualizar un clúster de la versión 1.31.X a la versión 1.31.Y siempre que Y sea mayor que X. Por ejemplo, puedes actualizar de 1.30.0 a 1.30.100 y actualizar de 1.30.100 a 1.30.300. Te recomendamos actualizar a la versión de parche más reciente siempre que sea posible para garantizar que los clústeres tengan las correcciones de seguridad más recientes.

Actualizaciones de versiones secundarias

Puedes actualizar los clústeres de una versión secundaria a la siguiente, sin importar la versión del parche. Es decir, puedes actualizar de 1.N.X a 1.N+1.Y, donde 1.N.X es la versión de tu clúster y N+1 es la siguiente versión secundaria disponible. Las versiones del parche, X y Y, no afectan la lógica de actualización en este caso. Por ejemplo, puedes actualizar de 1.30.600-gke.68 a 1.31.200-gke.58.

No puedes omitir versiones secundarias cuando actualizas clústeres. Si intentas actualizar a una versión secundaria que es dos o más versiones secundarias posteriores a la versión actual del clúster, bmctl emite un error. Por ejemplo, no puedes actualizar un clúster de la versión 1.29.0 a la versión 1.31.0 en un solo paso.

Como se describió anteriormente, un clúster de administrador puede administrar clústeres de usuario que se encuentran en la misma versión o en una inferior. La diferencia en las versiones entre los clústeres de usuario y su clúster de administración (a veces denominado sesgo de versión) varía según la versión del clúster. Antes de actualizar un clúster de administración a una versión secundaria nueva, asegúrate de que las versiones de los clústeres de usuario administrados cumplan con las reglas de desfase de versiones de clústeres para la versión de actualización de destino.

Reglas de control de versiones de grupos de nodos

Cuando actualizas los grupos de nodos de forma selectiva, se aplican las siguientes reglas de versión:

1.30

  • La versión del clúster debe ser mayor o igual que la versión del grupo de nodos de trabajo.

  • El sesgo de versiones máximo entre un grupo de nodos trabajador y el clúster es de dos versiones secundarias.

  • Los grupos de nodos trabajadores pueden tener cualquier versión de parche de una versión secundaria compatible.

1.29

  • La versión del clúster debe ser mayor o igual que la versión del grupo de nodos de trabajo.

  • (Versión GA 1.29) El sesgo de versión máximo entre un grupo de nodos trabajador y el clúster es de dos versiones secundarias.

  • Los grupos de nodos trabajadores no pueden tener una versión que se haya lanzado cronológicamente después que la versión del clúster. La versión anterior no tiene los detalles completos de la versión posterior, lo que es un requisito para la compatibilidad.

    Por ejemplo, la versión 1.16.6 se lanzó después de la versión 1.28.100-gke.146, por lo que no puedes actualizar tu clúster de la versión 1.16.6 a la versión 1.28.100-gke.146 y dejar un grupo de nodos trabajador en la versión 1.16.6. Del mismo modo, si actualizas tu clúster a la versión 1.28.100-gke.146, pero decides dejar un grupo de nodos trabajador en la versión 1.16.5, no puedes actualizar el grupo de nodos trabajador a la versión 1.16.6 mientras el clúster esté en la versión 1.28.100-gke.146.

1.28

  • La versión del clúster debe ser mayor o igual que la versión del grupo de nodos de trabajo.

  • (Versión preliminar 1.28) El sesgo de versiones máximo entre un grupo de nodos trabajador y el clúster es de dos versiones menores cuando se habilita la función de versión preliminar de sesgo de versiones n-2. Si no habilitas esta función, el sesgo de versiones máximo entre un grupo de nodos trabajador y el clúster es de una versión menor.

  • Los grupos de nodos trabajadores no pueden tener una versión que se haya lanzado cronológicamente después que la versión del clúster. La versión anterior no tiene los detalles completos de la versión posterior, lo que es un requisito para la compatibilidad.

    Por ejemplo, la versión 1.16.6 se lanzó después de la versión 1.28.100-gke.146, por lo que no puedes actualizar tu clúster de la versión 1.16.6 a la versión 1.28.100-gke.146 y dejar un grupo de nodos trabajador en la versión 1.16.6. Del mismo modo, si actualizas tu clúster a la versión 1.28.100-gke.146, pero decides dejar un grupo de nodos trabajador en la versión 1.16.5, no puedes actualizar el grupo de nodos trabajador a la versión 1.16.6 mientras el clúster esté en la versión 1.28.100-gke.146.

1.16

  • La versión del clúster debe ser mayor o igual que la versión del grupo de nodos de trabajo.

  • El sesgo de versiones máximo entre un grupo de nodos trabajador y el clúster es de una versión menor.

  • Los grupos de nodos trabajadores no pueden tener una versión que se haya lanzado cronológicamente después que la versión del clúster. La versión anterior no tiene los detalles completos de la versión posterior, lo que es un requisito para la compatibilidad.

    Por ejemplo, la versión 1.16.6 se lanzó después de la versión 1.28.100-gke.146, por lo que no puedes actualizar tu clúster de la versión 1.16.6 a la versión 1.28.100-gke.146 y dejar un grupo de nodos trabajador en la versión 1.16.6. Del mismo modo, si actualizas tu clúster a la versión 1.28.100-gke.146, pero decides dejar un grupo de nodos trabajador en la versión 1.16.5, no puedes actualizar el grupo de nodos trabajador a la versión 1.16.6 mientras el clúster esté en la versión 1.28.100-gke.146.

En la siguiente tabla, se enumeran las versiones del grupo de nodos compatibles que se permiten para una versión específica del clúster:

1.30

Para los grupos de nodos en una versión secundaria compatible, la versión 1.29 o la 1.28, todas las versiones de parche son compatibles con los clústeres en cualquier versión de parche de la versión secundaria 1.30.

1.29

Versión del clúster (plano de control) Versiones compatibles del grupo de nodos trabajadores (se agregaron versiones en negrita)
1.29.1000-gke.93
  • 1.29.1000-gke.93
  • 1.29.900-gke.180
  • 1.29.800-gke.111
  • 1.29.700-gke.113
  • 1.29.600-gke.105
  • 1.29.500-gke.162
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.1300-gke.59
  • 1.28.1200-gke.83
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.900-gke.180
  • 1.29.900-gke.180
  • 1.29.800-gke.111
  • 1.29.700-gke.113
  • 1.29.600-gke.105
  • 1.29.500-gke.162
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.1300-gke.59
  • 1.28.1200-gke.83
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.800-gke.111
  • 1.29.800-gke.111
  • 1.29.700-gke.113
  • 1.29.600-gke.105
  • 1.29.500-gke.162
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.1200-gke.83
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.700-gke.113
  • 1.29.700-gke.113
  • 1.29.600-gke.105
  • 1.29.500-gke.162
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.600-gke.105
  • 1.29.600-gke.105
  • 1.29.500-gke.162
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.500-gke.162
  • 1.29.500-gke.162
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.400-gke.86
  • 1.29.400-gke.86
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.300-gke.185
  • 1.29.300-gke.185
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.200-gke.243
  • 1.29.200-gke.243
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.100-gke.251
  • 1.29.100-gke.251
  • 1.29.0-gke.1449
  • 1.28.400-gke.77
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
1.29.0-gke.1449
  • 1.29.0-gke.1449
  • 1.28.300-gke.136
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.435
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0

1.28

Versión del clúster (plano de control) Versiones compatibles del grupo de nodos trabajadores (se agregaron versiones en negrita)
1.28.1400-gke.79
  • 1.28.1400-gke.79
  • 1.28.1300-gke.59
  • 1.28.1200-gke.83
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.1300-gke.59
  • 1.28.1300-gke.59
  • 1.28.1200-gke.83
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.1200-gke.83
  • 1.28.1200-gke.83
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.1100-gke.94
  • 1.28.1100-gke.94
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.1000-gke.60
  • 1.28.1000-gke.60
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.900-gke.112
  • 1.28.900-gke.112
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.800-gke.111
  • 1.28.800-gke.111
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.700-gke.150
  • 1.28.700-gke.150
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.600-gke.163
  • 1.28.600-gke.163
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.500-gke.120
  • 1.28.500-gke.120
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.400-gke.77
  • 1.28.400-gke.77
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.300-gke.131
  • 1.28.300-gke.131
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.200-gke.118
  • 1.28.200-gke.118
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.100-gke.146
  • 1.28.100-gke.146
  • 1.28.0-gke.425
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.28.0-gke.425
  • 1.28.0-gke.425
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0

1.16

Versión del clúster (plano de control) Versiones compatibles del grupo de nodos trabajadores (se agregaron versiones en negrita)
1.16.12
  • 1.16.12
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.11
  • 1.16.11
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.10
  • 1.16.10
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.9
  • 1.16.9
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.8
  • 1.16.8
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.7
  • 1.16.7
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.11
  • 1.15.10
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.6
  • 1.16.6
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.9
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.5
  • 1.16.5
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.8
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.4
  • 1.16.4
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.7
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.3
  • 1.16.3
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.6
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.2
  • 1.16.2
  • 1.16.1
  • 1.16.0
  • 1.15.5
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.1
  • 1.16.1
  • 1.16.0
  • 1.15.4
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0
1.16.0
  • 1.16.0
  • 1.15.3
  • 1.15.2
  • 1.15.1
  • 1.15.0

Actualiza los componentes

Los componentes se actualizan a nivel del nodo y del clúster. A nivel del clúster, se actualizan los siguientes componentes:

  • Componentes del clúster para redes, observabilidad y almacenamiento
  • Para los clústeres independientes, híbridos y de administrador, los controladores de ciclo de vida
  • El tipo gke-connect-agent.

Los nodos de un clúster se ejecutan como uno de los siguientes roles, con diferentes componentes que se actualizan según el rol del nodo:

Rol del nodo Función Componentes que se actualizarán
Trabajador Ejecuta cargas de trabajo del usuario Kubelet, entorno de ejecución de contenedores (Docker o containerd)
Plano de control Ejecuta el plano de control de Kubernetes, los controladores de ciclo de vida del clúster y los complementos de la plataforma de la edición Enterprise de Google Kubernetes Engine (GKE). Pods estáticos del plano de control de Kubernetes (kubeapi-server, kube-scheduler, kube-controller-manager, etcd)

Controladores de ciclo de vida, como lifecycle-controllers-manager y anthos-cluster-operator

Complementos de la plataforma de la edición Enterprise de Google Kubernetes Engine (GKE), como stackdriver-log-aggregator y gke-connect-agent
Balanceador de cargas del plano de control Ejecuta HAProxy y Keepalived que entregan tráfico a kube-apiserver y ejecuta amplificadores de MetalLB para reclamar direcciones IP virtuales. Pods estáticos del balanceador de cargas del plano de control (HAProxy, Keepalived)

Altavoces de MetalLB

Expectativa de tiempo de inactividad

En la siguiente tabla, se detalla el tiempo de inactividad esperado y el posible impacto cuando actualizas los clústeres. En esta tabla, se supone que tienes varios nodos de clúster y un plano de control de alta disponibilidad. Si ejecutas un clúster independiente o no tienes un plano de control de alta disponibilidad, espera un tiempo de inactividad adicional. A menos que se indique lo contrario, este tiempo de inactividad se aplica a las actualizaciones de clústeres de administrador y de usuario:

Componentes Expectativas de tiempo de inactividad Cuándo ocurre el tiempo de descanso
Servidor de la API del plano de control de Kubernetes (kube-apiserver), etcd y programador No hay tiempo de inactividad N/A
Controladores de ciclo de vida y trabajo ansible-runner (solo en el clúster de administrador) No hay tiempo de inactividad N/A
loadbalancer-haproxy y keepalived del plano de control de Kubernetes Tiempo de inactividad transitorio (menos de 1 a 2 minutos) cuando el balanceador de cargas redirecciona el tráfico. Inicio del proceso de actualización.
Observabilidad pipeline-stackdriver y metrics-server Se agotó el operador y se actualizó. El tiempo de inactividad debe ser inferior a 5 minutos.

Los DaemonSets siguen funcionando sin tiempo de inactividad.
Después de que finalicen las actualizaciones de los nodos del plano de control.
Interfaz de red de contenedor (CNI) No hay tiempo de inactividad para las rutas de red existentes.

El DaemonSet se implementó de a dos sin tiempo de inactividad.

El operador se agota y se actualiza. Tiempo de inactividad inferior a 5 minutos
Después de que finalicen las actualizaciones de los nodos del plano de control.
MetalLB (solo clúster de usuarios) Se agotó el operador y se actualizó. El tiempo de inactividad es inferior a 5 minutos.

No hay tiempo de inactividad para el servicio existente.
Después de que finalicen las actualizaciones de los nodos del plano de control.
CoreDNS y el escalador automático de DNS (solo para clústeres de usuarios) CoreDNS tiene varias réplicas con el escalador automático. Por lo general, no hay tiempo de inactividad. Después de que finalicen las actualizaciones de los nodos del plano de control.
Aprovisionador de volumen local No hay tiempo de inactividad para los volúmenes persistentes aprovisionados (PV) existentes.

Es posible que el operador tenga 5 minutos de tiempo de inactividad.
Después de que finalicen las actualizaciones de los nodos del plano de control.
Istio / entrada Se agota y se actualiza el operador de Istio. Aproximadamente 5 minutos de inactividad.

Las entradas configuradas existentes seguirán funcionando.
Después de que finalicen las actualizaciones de los nodos del plano de control.
Otros operadores del sistema Tiempo de inactividad de 5 minutos cuando se agota la batería y se actualiza. Después de que finalicen las actualizaciones de los nodos del plano de control.
Cargas de trabajo de usuarios Depende de la configuración, por ejemplo, si tiene alta disponibilidad.

Revisa tus propias implementaciones de cargas de trabajo para comprender el posible impacto.
Cuando se actualizan los nodos trabajadores.

Detalles de la actualización del clúster de usuario

En esta sección, se detalla el orden de las actualizaciones de componentes y la información de estado para una actualización de clúster de usuarios. En la siguiente sección, se detallan las desviaciones de este flujo para las actualizaciones de clústeres independientes, híbridos o de administrador.

En el siguiente diagrama, se muestra el proceso de verificación previa para una actualización de clúster de usuario:

La verificación previa al vuelo del clúster ejecuta verificaciones de estado adicionales en el clúster antes de que comience el proceso de actualización.

En el diagrama anterior, se detallan los pasos que se realizan durante una actualización:

  • El comando bmctl upgrade cluster crea un recurso personalizado PreflightCheck.
  • Esta verificación previa ejecuta verificaciones adicionales, como verificaciones de actualización del clúster, verificaciones de estado de la red y verificaciones de estado del nodo.
  • Los resultados de estas verificaciones adicionales se combinan para informar sobre la capacidad del clúster de actualizarse correctamente a la versión de destino.

Si las verificaciones previas se realizan correctamente y no hay problemas de bloqueo, los componentes del clúster se actualizan en un orden específico, como se muestra en el siguiente diagrama:

Se actualizan los balanceadores de cargas y el grupo de nodos del plano de control, y, luego, GKE Connect, los complementos del clúster, y los grupos de nodos del balanceador de cargas y de nodos trabajadores.

En el diagrama anterior, los componentes se actualizan en el siguiente orden:

  1. La actualización comienza con la actualización del campo spec.anthosBareMetalVersion.
  2. Se actualizan los balanceadores de cargas del plano de control.
  3. Se actualiza el grupo de nodos del plano de control.
  4. En paralelo, se actualiza GKE Connect, los complementos del clúster y el grupo de nodos del balanceador de cargas.
    1. Después de que el grupo de nodos del balanceador de cargas se actualiza correctamente, se actualizan los grupos de nodos de trabajo.
  5. Cuando se hayan actualizado todos los componentes, se ejecutarán las verificaciones de estado del clúster.

    Las verificaciones de estado se seguirán ejecutando hasta que todas se aprueben.

  6. Cuando todas las verificaciones de estado se aprueben, la actualización finalizará.

Cada componente tiene su propio campo de estado dentro del recurso personalizado del clúster. Puedes verificar el estado en estos campos para comprender el progreso de la actualización:

Secuencia Nombre del campo Significado
1 status.controlPlaneNodepoolStatus El estado se copia del estado del grupo de nodos del plano de control. El campo incluye las versiones de los nodos de los grupos de nodos del plano de control.
2 status.anthosBareMetalLifecycleControllersManifestsVersion Es la versión de lifecycles-controllers-manager que se aplicó al clúster. Este campo solo está disponible para clústeres independientes, administrados o híbridos.
2 status.anthosBareMetalManifestsVersion Es la versión del clúster del último manifiesto aplicado.
2 status.controlPlaneLoadBalancerNodepoolStatus El estado se copia del estado del grupo de nodos del balanceador de cargas del plano de control. Este campo está vacío si no se especifica un balanceador de cargas del plano de control independiente en Cluster.Spec.
3 status.anthosBareMetalVersions Un mapa de versiones agregado de la versión a los números de nodos.
4 status.anthosBareMetalVersion Es el estado final de la versión actualizada.

Detalles de la actualización de clústeres independientes, híbridos y de administrador

A partir de la versión 1.15.0 de bmctl, el comportamiento de actualización predeterminado para los clústeres administrados de forma independiente (independientes, híbridos o de administrador) es una actualización in situ. Es decir, cuando actualizas un clúster a la versión 1.15.0 o posterior, la actualización usa controladores de ciclo de vida, en lugar de un clúster de inicio, para administrar todo el proceso de actualización. Este cambio simplifica el proceso y reduce los requisitos de recursos, lo que hace que las actualizaciones de clústeres sean más confiables y escalables.

Aunque no se recomienda usar un clúster de arranque para la actualización, la opción sigue disponible. Para usar un clúster de arranque cuando realices la actualización, ejecuta el comando bmctl upgrade con la marca --use-bootstrap=true. Las etapas de la actualización son diferentes según el método que uses.

Actualizaciones in situ

El proceso de actualización local predeterminado para los clústeres autoadministrados es similar al proceso de actualización de los clústeres de usuario. Sin embargo, cuando usas el proceso de actualización en su lugar, se implementa una versión nueva de preflightcheck-operator antes de que se ejecuten las verificaciones de estado y de solicitud preliminar del clúster:

Se implementa una versión nueva del operador preflightcheck-operator antes de que la verificación previa del clúster ejecute verificaciones de estado adicionales en el clúster.

Al igual que la actualización del clúster de usuario, el proceso de actualización comienza con la actualización del campo Cluster.spec.anthosBareMetalVersion a la versión de destino. Se ejecutan dos pasos adicionales antes de que se actualicen los componentes, como se muestra en el siguiente diagrama: lifecycle-controller-manager se actualiza a la versión objetivo y, luego, implementa la versión objetivo de anthos-cluster-operator. Esta anthos-cluster-operator realiza los pasos restantes del proceso de actualización:

lifecycle-controller-manager y anthos-cluster-operator se implementan antes de que se actualice el resto del clúster en el mismo orden que los componentes del clúster de usuario.

Si se ejecuta de forma correcta, anthos-cluster-operator concilia la versión objetivo de spec.anthosBareMetalVersion a status.anthosBareMetalVersion.

Actualiza con un clúster de arranque

El proceso para actualizar un clúster de administrador, híbrido o independiente es similar al de un clúster de usuario que se analizó en la sección anterior.

La diferencia principal es que el comando bmctl upgrade cluster inicia un proceso para crear un clúster de arranque. Este clúster de arranque es un clúster temporal que administra el clúster híbrido, de administrador o independiente durante una actualización.

El proceso para transferir la propiedad de administración del clúster al clúster de arranque se denomina cambio. El resto de la actualización sigue el mismo proceso que la actualización del clúster de usuario.

Durante el proceso de actualización, los recursos del clúster de destino permanecen inactivos. El progreso de la actualización solo se refleja en los recursos del clúster de inicialización.

Si es necesario, puedes acceder al clúster de arranque para supervisar y depurar el proceso de actualización. Se puede acceder al clúster de arranque a través de bmctl-workspace/.kindkubeconfig.

Para transferir la propiedad de administración del clúster después de que se complete la actualización, el clúster pivota los recursos del clúster de arranque al clúster actualizado. No hay pasos manuales que debas realizar para pivotar el clúster durante el proceso de actualización. El clúster de arranque se borra después de que la actualización del clúster es correcta.

Desviación de nodos

Las actualizaciones de clústeres de Google Distributed Cloud pueden provocar interrupciones de las aplicaciones a medida que se vacían los nodos. Este proceso de drenaje hace que todos los Pods que se ejecutan en un nodo se apaguen y se reinicien en los nodos restantes del clúster.

Las implementaciones se pueden usar para tolerar esas interrupciones. Una implementación puede especificar que se deben ejecutar varias réplicas de una aplicación o un servicio. Una aplicación con varias réplicas debería experimentar pocas interrupciones o ninguna durante las actualizaciones.

PodDisruptionBudgets (PDB)

Cuando actualizas un clúster, Google Distributed Cloud usa el flujo del modo de mantenimiento para agotar los nodos.

A partir de la versión 1.29, los nodos se agotan con la API de expulsión, que respeta PodDisruptionBudgets (PDB). Los PDB se pueden usar para garantizar que una cantidad definida de réplicas siempre se ejecute en el clúster en condiciones de ejecución normales. Los PDB te permiten limitar la interrupción de una carga de trabajo cuando se deben reprogramar sus Pods. El vaciado de nodos basado en la expulsión está disponible como versión general para la versión 1.29.

En las versiones 1.28 y anteriores, Google Distributed Cloud no respeta los PDB cuando se vacían los nodos durante una actualización. En cambio, el proceso de drenaje de nodos es el mejor esfuerzo. Es posible que algunos Pods se bloqueen en un estado Terminating y se nieguen a abandonar el nodo. La actualización continúa, incluso con Pods bloqueados, cuando el proceso de drenaje en un nodo tarda más de 20 minutos.

Para obtener más información, consulta Coloca los nodos en modo de mantenimiento.

¿Qué sigue?