Planificar recursos de la flota

Como has visto en la descripción general de la gestión de flotas, las flotas son un mecanismo de agrupación para gestionar, configurar y proteger clústeres de Kubernetes a gran escala. Las flotas son una herramienta eficaz que elimina la necesidad de realizar operaciones repetidas en un entorno multiclúster y proporciona coherencia y observabilidad completa en grandes grupos de clústeres. Algunas funciones de GKE solo están disponibles a través de una flota.

La estrategia de agrupación que uses para crear flotas puede variar en función de las necesidades técnicas y empresariales de tu organización. Por ejemplo, una organización puede agrupar los clústeres en función del tipo de aplicaciones que se ejecuten en ellos, mientras que otra puede agruparlos por región, entorno u otros factores relevantes. Si todo lo demás es igual, es conveniente tener el menor número posible de flotas en tu organización.

Esta guía está dirigida a arquitectos de nube que quieran empezar a usar flotas en sus organizaciones. Ofrece algunas directrices prácticas sobre cómo organizar los clústeres en flotas, como las siguientes:

  • Cuando quieras crear clústeres completamente nuevos.
  • Cuando quieras crear flotas con clústeres que ya tengas.

Los patrones que se describen en este artículo funcionan en muchas organizaciones, pero no son la única forma de planificar flotas. Las flotas son flexibles, por lo que puedes decidir usar otro patrón de agrupación para tus clústeres.

Antes de leer esta página, asegúrese de que conoce los siguientes conceptos:

Limitaciones de flotas y recursos

Se aplican las siguientes limitaciones generales al crear flotas:

  • Un proyecto determinado solo puede tener una flota asociada (o ninguna), aunque esa flota puede incluir clústeres de varios proyectos. Google Cloud El proyecto asociado a una flota se conoce como proyecto host de la flota.
  • Los clústeres solo pueden ser miembros de una flota en un momento dado.
  • Todos los clústeres de un proyecto determinado deben estar en la misma flota o no estar en ninguna. Si un proyecto ya contiene miembros de la flota, no puedes registrar un clúster de ese proyecto en otra flota.
  • El límite predeterminado de clústeres en una flota es de 250, aunque puedes solicitar un límite superior si es necesario.

Puede ser conveniente colocar varios clústeres en el mismo proyecto por muchos motivos. Sin embargo, ten en cuenta los siguientes límites al planificar qué clústeres vas a incluir en un proyecto:

Principios generales

A continuación, se incluyen algunas preguntas generales que debes hacerte al decidir si quieres agrupar clústeres en una flota. En las siguientes secciones, veremos cómo se aplican estos conceptos con más detalle.

  • ¿Están relacionados entre sí?
    • Los recursos que tienen grandes cantidades de comunicación entre servicios son los que más se benefician de gestionarse juntos en una flota.
    • Los recursos del mismo entorno de implementación (por ejemplo, tu entorno de producción) deben gestionarse conjuntamente en una flota.
  • ¿Quién administra los recursos?
    • Tener un control unificado (o al menos de confianza mutua) sobre los recursos es fundamental para garantizar la integridad de la flota.

Planificar flotas para clústeres nuevos

En esta sección se describe cómo planificar las flotas cuando se tiene un conjunto conocido de aplicaciones, pero se puede elegir dónde se implementan. Esto puede deberse a que aún no has desarrollado esas aplicaciones o a que las estás migrando desde otra plataforma de contenedores. También puede que ya tengas aplicaciones en clústeres, pero que quieras moverlas a otros para conseguir una arquitectura preferida.

Una vez que se hayan identificado las flotas, puedes crear un proyecto por flota, crear una flota en cada proyecto y crear y registrar clústeres en la flota correspondiente.

Auditar tus cargas de trabajo

Empieza con una lista de todas las cargas de trabajo de Kubernetes (por ejemplo, los despliegues) que quieras desplegar. No tiene por qué ser una lista literal, sino una idea de las cargas de trabajo que necesitarás. A continuación, sigue los pasos que se indican en el resto de esta sección para dividir progresivamente ese conjunto de aplicaciones en subconjuntos hasta que tengas el conjunto mínimo de agrupaciones necesario. Así se definen las flotas y los clústeres que necesitas.

Tener en cuenta las unidades de negocio

Es posible que tu organización tenga una estructura de TI federada, en la que haya un equipo de TI central para la organización, así como equipos de TI independientes para cada unidad de negocio. En este caso, cada equipo de TI federado puede querer gestionar sus propias flotas. Usa flotas independientes si las cargas de trabajo de dos unidades de negocio (por ejemplo, auditoría y comercio en un banco) no pueden comunicarse entre sí por motivos normativos.

Separar las cargas de trabajo por entorno

Un patrón habitual que funciona en muchas organizaciones es agrupar los clústeres por entorno. Una configuración habitual es tener tres entornos principales: desarrollo, no producción (o staging) y producción. Los cambios en las aplicaciones suelen implementarse de forma progresiva (o promocionarse) en cada entorno de la lista. Por este motivo, tienes implementaciones independientes en cada entorno para la misma aplicación subyacente, como el mismo nombre de imagen de contenedor base. Consulta el plan de fundamentos de Enterprise para ver un ejemplo de cómo crear entornos en tu organización.

Una flota solo debe contener clústeres de un entorno. Tres entornos, con una flota en cada uno, pueden ser suficientes para muchas organizaciones. Consulta el plan de aplicación empresarial para ver un ejemplo en el que cada entorno tiene una flota y cómo se pueden implementar las aplicaciones de forma progresiva.

Combinar instancias de cargas de trabajo redundantes

Cuando una aplicación necesita alta disponibilidad, una opción es ejecutarla en dos o más regiones. Esto implica que dos o más clústeres ejecuten implementaciones con una configuración muy similar que se gestionan como una unidad. A menudo, tendrán un balanceador de carga que abarque instancias de aplicaciones en todos los clústeres o usarán el balanceo de carga de DNS.

En estos casos, coloca todos esos clústeres en la misma flota. Por lo general, los clústeres de diferentes regiones no tienen que estar en flotas independientes, a menos que sea necesario por motivos normativos o de otro tipo.

Planificar flotas con clústeres actuales

En esta sección se describe cómo planificar flotas cuando tienes cargas de trabajo que se ejecutan en clústeres y no tienes previsto trasladarlas. Es posible que esos clústeres estén dentro o fuera Google Cloud. En este caso, el objetivo es crear un conjunto de flotas en tu organización y asignarles clústeres.

Una vez que se hayan identificado las flotas, puedes crear un proyecto por flota, crear una flota en cada proyecto y registrar los clústeres en la flota correspondiente.

Auditar tus clústeres

Empieza con una lista de todos los clústeres de Kubernetes de tu organización. Inventario de recursos de Cloud es una de las formas de buscar recursos de clústeres de Kubernetes en tu organización.

A continuación, puedes seguir los pasos que se indican en el resto de esta sección para dividir progresivamente ese conjunto de aplicaciones en subconjuntos hasta que tengas el conjunto mínimo de agrupaciones necesario. Así podrás definir qué flotas necesitas.

Tener en cuenta las unidades de negocio

Es posible que tu organización tenga una estructura de TI federada, en la que haya un equipo de TI central para la organización, así como equipos de TI independientes para cada unidad de negocio. Es posible que estos equipos de TI por unidad de negocio hayan creado los clústeres que ya tienes. En este caso, lo habitual es particionar el conjunto de clústeres por unidad de negocio. Por ejemplo, las cargas de trabajo de determinadas unidades de negocio (como la auditoría y la negociación en un banco) no pueden comunicarse entre sí por motivos normativos.

Si las unidades de negocio solo existen para la contabilidad de costes, pero utilizan un equipo de TI común, plantéate combinar sus clústeres en una sola flota, sobre todo si hay dependencias significativas entre servicios de diferentes unidades de negocio.

Agrupar clústeres por entorno

Identifica qué entornos se usan en tu organización. Los nombres de entorno habituales son desarrollo, no producción (o staging) y producción.

Si cada clúster pertenece claramente a uno solo de tus entornos, separa la lista de clústeres por entorno. Sin embargo, si algunos clústeres contienen cargas de trabajo que pertenecen lógicamente a entornos diferentes, te recomendamos que vuelvas a implementar las aplicaciones en clústeres que solo contengan aplicaciones que pertenezcan a un único entorno lógico.

Minimizar el número de propietarios de clústeres

Al combinar proyectos en una flota, puede haber diferentes conjuntos de usuarios autorizados para actuar como administradores en esos clústeres, teniendo en cuenta tanto las políticas de gestión de identidades y accesos (container.admin) como el control de acceso basado en roles (RBAC) (ClusterRoleBinding de administrador). Si tienes previsto usar funciones que requieran igualdad, el objetivo debe ser que todos los clústeres tengan el mismo conjunto de administradores y que haya un pequeño conjunto de administradores para la flota. Si los clústeres deben tener administradores diferentes y el objetivo es usar las funciones que requieren que sean iguales, probablemente no pertenezcan a la misma flota.

Por ejemplo, si los clústeres C1 y C2 tienen administradores diferentes que no confían entre sí y no quieren compartir permisos de administrador con un equipo de plataforma central que gestione flotas, no deberían agruparse en una flota.

Puedes consultar más información sobre la similitud y las funciones que la requieren en el artículo Cómo funcionan las flotas.

Tener en cuenta las funciones de la flota

Independientemente de si trabajas con clústeres nuevos o ya creados, las funciones de la flota que elijas también pueden afectar a la organización óptima de la flota. Por ejemplo, si decides usar la federación de Workload Identity en toda la flota, puede que te interese organizar tus flotas de forma que se minimice el riesgo al configurar la autenticación de cargas de trabajo en toda la flota. También puede que necesites que determinados clústeres estén en la misma flota si quieres usar Cloud Service Mesh. Si utilizas una nube privada virtual (VPC), algunas funciones requieren que se use una única VPC por flota.

En la siguiente guía de esta serie, Planificar funciones de la flota, encontrarás más información sobre cómo adoptar funciones de la flota, así como sus requisitos y limitaciones.

Tener en cuenta los perímetros de VPC

Otro aspecto que debes tener en cuenta tanto en los clústeres nuevos como en los actuales es si has elegido o quieres crear tus propias redes privadas en Google Cloud con nubes privadas virtuales (VPC). Los clústeres que se encuentran dentro de un perímetro de VPC (por ejemplo, en una VPC compartida que tenga Controles de Servicio de VPC) pueden estar en una flota. Si tienes VPCs compartidas restringidas y no restringidas, es recomendable que las coloques en flotas independientes.

Si tienes previsto usar perímetros de Controles de Servicio de VPC, normalmente algunas cargas de trabajo estarán dentro del perímetro y otras fuera. Debes planificar tener versiones de Controles de Servicio de VPC y versiones que no sean de Controles de Servicio de VPC de cada flota en cada entorno (o al menos en el de producción y en el entorno inmediatamente anterior al de producción).

Cuando planifiques flotas con VPCs, ten en cuenta que algunas funciones de las flotas tienen requisitos específicos de VPC, como que todos los clústeres que las usen estén en la misma red de VPC.

Siguientes pasos