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 eficaz 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 uses para crear flotas puede variar según las necesidades técnicas y comerciales de tu organización. Por ejemplo, una organización podría agrupar los 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. Si todo lo demás permanece constante, es conveniente tener la menor cantidad de flotas posible en tu organización.

Esta guía está dirigida a los arquitectos de Cloud que desean comenzar a usar flotas en sus organizaciones. Proporciona orientación práctica para organizar tus clústeres en flotas, lo que incluye lo siguiente:

  • Cuando quieras crear clústeres completamente nuevos
  • Cuando desees 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 Google Cloud determinado solo puede tener una flota (o ninguna flota) asociada, aunque esa flota puede incluir clústeres de varios proyectos. El proyecto asociado a una flota se conoce como el proyecto host de la flota.
  • Los clústeres solo pueden ser miembros de una sola flota en un momento determinado.
  • 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 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 incluir en un proyecto:

Principios generales

A continuación, se incluyen preguntas generales que debes hacerte cuando decidas si agrupar clústeres en una flota. En las siguientes secciones, analizaremos con más detalle cómo se aplican.

  • ¿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 otra plataforma de contenedores. También es posible que ya tengas aplicaciones que se ejecutan en clústeres existentes, pero que estés dispuesto a trasladarlas a clústeres nuevos para lograr una arquitectura preferida.

Después de identificar 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, sino que 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, auditoría y 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 los clústeres por entorno. Una configuración típica consiste en tener tres entornos principales: desarrollo, no producción (o etapa de pruebas) y producción. Por lo general, los cambios en la aplicación se implementan de forma progresiva (o se promueven) en cada entorno de la lista. Por este motivo, 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 bases empresariales 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, podrían ser suficientes para muchas organizaciones. Consulta el plano 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.

Combina instancias de cargas de trabajo redundantes

Cuando una aplicación necesita alta disponibilidad, un patró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 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 Google Cloud. En esta situación, el objetivo es crear un conjunto de flotas dentro de tu organización y asignarles clústeres existentes.

Después de identificar las flotas, puedes crear un proyecto nuevo por flota, crear una flota en cada proyecto y registrar los 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 negocio hayan creado tus clústeres existentes. Por lo general, en este caso, se particiona el conjunto de clústeres por unidad de negocios. Un ejemplo es cuando las cargas de trabajo de ciertas unidades de negocios (por ejemplo, auditoría y comercio en un banco) no pueden comunicarse entre sí por motivos reglamentarios.

Si las unidades de negocio 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 los servicios de las unidades de negocio.

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 se encuentra claramente en solo uno de tus entornos, separa la lista de clústeres por entorno. Sin embargo, si algunos clústeres contienen cargas de trabajo que lógicamente pertenecen 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 del clúster

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 tanto las políticas de IAM (container.admin) como el RBAC (ClusterRoleBinding de administrador). Si planeas usar funciones que requieren uniformidad, el objetivo debe ser que todos los clústeres tengan el mismo conjunto de administradores y que haya un conjunto pequeño de administradores para la flota. Si los clústeres deben tener diferentes administradores y el objetivo es usar las 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 desean compartir permisos de administrador con un equipo central de la plataforma que administra flotas, no deberían 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, tal vez quieras organizar tus flotas de una manera que minimice el riesgo cuando configures la autenticación de cargas de trabajo en toda la flota. O bien, si quieres usar Cloud Service Mesh, es posible que necesites que ciertos clústeres estén en la misma flota. Si usas una nube privada virtual (VPC), algunas funciones requieren el uso de una sola VPC por flota.

Puedes obtener más información para adoptar las 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). 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 los Controles del servicio de VPC, por lo general, algunas cargas de trabajo estarán dentro del perímetro y otras fuera de él. Debes planificar tener versiones de cada flota con y sin Controles del servicio de VPC en cada entorno (o, al menos, en el entorno de producción y en el entorno inmediatamente anterior al de producción).

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

¿Qué sigue?