Planifica los recursos de la flota

Como aprendiste en la Descripción general de la administración de flotas, las flotas son un mecanismo de agrupación para administrar, configurar y proteger clústeres de Kubernetes a gran escala. Las flotas son una herramienta poderosa que elimina la necesidad de realizar operaciones repetidas en un entorno de varios clústeres y proporciona coherencia y observabilidad integral en grandes grupos de clústeres. Varias funciones de GKE solo están disponibles a través de una flota.

La estrategia de agrupación que usas para crear flotas puede variar según las necesidades técnicas y empresariales de tu organización. Por ejemplo, una organización podría agrupar clústeres según el tipo de aplicaciones que se ejecutan en ellos, mientras que otra podría agruparlos por región, entorno o cualquier otro factor pertinente. En igualdad de condiciones, es conveniente tener la menor cantidad de flotas posible dentro de tu organización.

Esta guía está destinada a los arquitectos de la nube que desean comenzar a usar flotas en sus organizaciones. Proporciona orientación práctica para organizar tus clústeres en flotas, incluidos los siguientes casos:

  • Cuando deseas crear clústeres completamente nuevos
  • Cuando deseas crear flotas con clústeres existentes

Los patrones que se describen aquí funcionan para muchas organizaciones, pero no son la única forma de planificar flotas. Las flotas son flexibles y es posible que decidas usar un patrón de agrupación diferente para tus clústeres.

Antes de leer esta página, asegúrate de estar familiarizado con los siguientes conceptos:

Limitaciones de flotas y recursos

Se aplican las siguientes limitaciones generales cuando se crean flotas:

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

Puede ser conveniente por muchos motivos colocar varios clústeres en el mismo proyecto. Sin embargo, ten en cuenta los siguientes límites cuando planifiques qué clústeres colocar juntos en un proyecto:

Principios generales

Las siguientes son preguntas generales que debes hacerte cuando decidas si agrupar clústeres en una flota. Veremos cómo se aplican con más detalle en las siguientes secciones.

  • ¿Los recursos se relacionan entre sí?
    • Los recursos que tienen grandes cantidades de comunicaciones de servicios se benefician en mayor medida de administrarse en conjunto en una flota.
    • Los recursos en el mismo entorno de implementación (por ejemplo, el entorno de producción) deben administrarse juntos en una flota.
  • ¿Quién administra los recursos?
    • Tener control unificado (o, al menos, que se pueda confiar de forma mutua) sobre los recursos es fundamental para garantizar la integridad de las flotas.

Planifica flotas para clústeres nuevos

En esta sección, se describe cómo planificar flotas cuando tienes un conjunto conocido de aplicaciones, pero eres flexible en cuanto a dónde se implementan esas aplicaciones. Esto puede deberse a que aún no desarrollaste esas aplicaciones o a que las estás migrando desde una plataforma de contenedores diferente. Como alternativa, es posible que ya tengas aplicaciones que se ejecuten en clústeres existentes, pero que estés dispuesto a mover aplicaciones a clústeres nuevos para lograr una arquitectura preferida.

Una vez que se identificaron las flotas, puedes crear un proyecto nuevo por flota, crear una flota en cada proyecto y crear y registrar clústeres en la flota deseada.

Audita tus cargas de trabajo

Comienza con una lista de todas las cargas de trabajo de Kubernetes (por ejemplo, implementaciones) que deseas implementar. No es necesario que sea una lista literal, solo puede ser una idea de las cargas de trabajo que necesitarás. Luego, sigue los pasos del resto de esta sección para dividir progresivamente ese conjunto de aplicaciones en subconjuntos hasta que tengas el conjunto mínimo de agrupaciones necesarias. Esto definirá qué flotas y clústeres necesitas.

Considera las unidades de negocios

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, es posible que cada equipo de TI federado desee administrar sus propias flotas. Usa flotas separadas si las cargas de trabajo de dos unidades de negocios (por ejemplo, la auditoría y el comercio en un banco) no pueden comunicarse entre sí por motivos reglamentarios.

Separa las cargas de trabajo por entorno

Un patrón común que funciona para muchas organizaciones es agrupar clústeres por entorno. Una configuración típica es tener tres entornos principales: desarrollo, no producción (o etapa de pruebas) y producción. Por lo general, los cambios en las aplicaciones se implementan de forma progresiva (o se promueven) en cada entorno de la lista. Debido a esto, tienes implementaciones separadas en cada entorno para la misma aplicación subyacente, como el mismo nombre de imagen de contenedor base. Consulta el plano de fundamentos empresariales para obtener 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, podrían ser suficientes para muchas organizaciones. Consulta el plano de aplicación empresarial para obtener un ejemplo en el que cada entorno tiene una flota y cómo se pueden implementar las aplicaciones de forma progresiva.

Combina instancias de carga de trabajo redundantes

Cuando una aplicación necesita alta disponibilidad, un patrón es ejecutarla en dos o más regiones. Esto implica dos o más clústeres que ejecutan implementaciones configuradas de manera muy similar que se administran como una unidad. A menudo, tendrán un balanceador de cargas que abarca instancias de aplicaciones en todos los clústeres o usarán el balanceo de cargas de DNS.

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

Planifica flotas con clústeres existentes

En esta sección, se describe cómo planificar flotas cuando tienes cargas de trabajo que se ejecutan en clústeres existentes y no planeas reubicarlas. Esos clústeres pueden estar dentro o fuera de la organización Google Cloud. En este caso, el objetivo es crear un conjunto de flotas dentro de tu organización y asignarles clústeres existentes.

Una vez que se identificaron las flotas, puedes crear un proyecto nuevo por flota, crear una flota en cada proyecto y registrar clústeres en la flota deseada.

Audita tus clústeres

Comienza con una lista de todos los clústeres de Kubernetes de tu organización. Cloud Asset Inventory es una forma de buscar recursos de clústeres de Kubernetes en tu organización.

Luego, puedes seguir los pasos del resto de esta sección para dividir progresivamente ese conjunto de aplicaciones en subconjuntos hasta que tengas el conjunto mínimo de agrupaciones necesarias. Esto definirá qué flotas necesitas.

Considera las unidades de negocios

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 negocios hayan creado tus clústeres existentes. Por lo general, en este caso, se divide el conjunto de clústeres por unidad de negocios. Un ejemplo es cuando las cargas de trabajo de ciertas unidades de negocios (por ejemplo, la auditoría y el comercio en un banco) no pueden comunicarse entre sí por motivos reglamentarios.

Si las unidades de negocios existen únicamente para fines de contabilidad de costos, pero usan un equipo de TI común, considera combinar sus clústeres en una sola flota, en especial si hay dependencias significativas entre servicios en las unidades de negocios.

Agrupa clústeres por entorno

Identifica qué entornos se usan en tu organización Los nombres de entornos típicos son desarrollo, no producción (o etapa de pruebas) y prod.

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

Minimiza la cantidad de propietarios de clústeres

Cuando se combinan proyectos existentes en una flota, puede haber diferentes conjuntos de usuarios autorizados para actuar como administradores en esos clústeres, teniendo en cuenta las políticas de IAM (container.admin) y RBAC (ClusterRoleBinding de administrador). Si planeas usar funciones que requieren similitud, 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 diferentes administradores y el objetivo es usar esas funciones que requieren similitud, es probable que no pertenezcan a la misma flota.

Por ejemplo, si los clústeres C1 y C2 tienen diferentes administradores que no confían entre sí y no están dispuestos a compartir permisos de administrador con un equipo de plataforma central que administra flotas, no deben agruparse en una flota.

Puedes obtener más información sobre la similitud y qué funciones la requieren en Cómo funcionan las flotas.

Considera las funciones de la flota

Independientemente de si trabajas con clústeres nuevos o existentes, las funciones de la flota que elijas también pueden afectar la organización óptima de la flota. Por ejemplo, si eliges usar la federación de identidades para cargas de trabajo en toda la flota, es posible que desees organizar tus flotas de una manera que minimice el riesgo cuando configures la autenticación de cargas de trabajo en toda la flota, o si deseas usar Cloud Service Mesh, es posible que necesites que ciertos clústeres estén en la misma flota. Si usas la nube privada virtual (VPC), algunas funciones requieren el uso de una sola VPC por flota.

Puedes obtener más información para adoptar funciones de la flota, así como sus requisitos y limitaciones, en la siguiente guía de esta serie, Planifica las funciones de la flota.

Considera los perímetros de VPC

Otro problema que se debe tener en cuenta para los clústeres nuevos y existentes es si elegiste o deseas crear tus propias redes privadas en Google Cloud con la nube privada virtual (VPC). Google Cloud Los clústeres dentro de un perímetro de VPC (por ejemplo, en una VPC compartida que tiene Controles del servicio de VPC) pueden estar juntos en una flota. Si tienes VPC compartidas restringidas y no restringidas, una práctica recomendada es colocarlas en flotas separadas.

Si planeas usar perímetros de Controles del servicio de VPC, por lo general, algunas cargas de trabajo están dentro del perímetro y otras fuera de él. Debes planificar tener versiones de Controles del servicio de VPC y que no sean de Controles del servicio de VPC de cada flota en cada entorno (o al menos en el entorno de producción y el entorno inmediatamente anterior al de producción).

Ten en cuenta cuando planifiques flotas con VPC que algunas funciones de la flota tienen requisitos específicos de VPC, como requerir que todos los clústeres que las usan estén dentro de la misma red de VPC.

¿Qué sigue?