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 potente que elimina la necesidad de realizar operaciones repetidas en un entorno de varios clústeres y proporciona coherencia y observabilidad integral en grupos grandes de clústeres. Algunas funciones de GKE Enterprise 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 puede agrupar clústeres según el tipo de aplicaciones que se ejecutan en ellos, mientras que otra puede agruparlos por región, entorno o algún otro factor relevante. Si todo lo demás permanece constante, es conveniente tener la menor cantidad de flotas necesario 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, lo que incluye lo siguiente:

  • Cuando deseas crear clústeres completamente nuevos.
  • Cuando quieras 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 puedes decidir usar un patrón de agrupación diferente para los clústeres.

Antes de leer esta guía, debes familiarizarte con los conceptos que se abordan en nuestra descripción general de la administración de flotas. También se supone que estás familiarizado con los conceptos básicos de Kubernetes y la jerarquía de recursos de Google Cloud.

Limitaciones de flotas y recursos

Las siguientes limitaciones generales se aplican cuando se crean flotas:

  • Un proyecto de 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 con una flota se conoce como proyecto host de la flota.
  • Los clústeres solo pueden ser miembros de una sola flota en un momento determinado.
  • 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.

Por varios motivos, puede ser conveniente 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

Las siguientes son preguntas generales que debes hacerte cuando decidas si agrupar clústeres en una flota. Analizaremos 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 con respecto a dónde se implementan esas aplicaciones. Esto puede deberse a que aún no desarrollaste esas aplicaciones o las estás migrando desde una plataforma de contenedores diferente. De manera alternativa, es posible que ya tengas aplicaciones en ejecución en clústeres existentes, pero estés dispuesto a migrar aplicaciones 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, Deployments) que deseas implementar. No es necesario que sea una lista literal; puede ser solo una idea de las cargas de trabajo que necesitarás. Luego, sigue los pasos del resto de esta sección para dividir de forma progresiva ese conjunto de aplicaciones en subconjuntos hasta que tengas el conjunto mínimo de agrupaciones necesario. 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 regulatorios.

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 es 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 promocionan) a 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 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 entorno, 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 dos o más clústeres que ejecutan implementaciones con una configuración muy similar y 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 estas situaciones, coloca todos esos clústeres en la misma flota. Por lo general, los clústeres en diferentes regiones no necesitan estar en flotas separadas, a menos que sea necesario por motivos regulatorios o por otros motivos.

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 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úster de Kubernetes en tu organización.

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

Si las unidades de negocios solo existen para fines contables de costos, pero usas un equipo de TI común, considera combinar sus clústeres en una sola flota, en especial si hay dependencias significativas entre servicios entre 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 la lista de clústeres por entorno. Sin embargo, si algunos clústeres contienen cargas de trabajo que, lógicamente, pertenecen a entornos diferentes, 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 las políticas de IAM (container.admin) y 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 administradores diferentes 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 administradores diferentes 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, te recomendamos que organices tus flotas de manera que se 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 la nube privada virtual (VPC), algunas funciones requieren el uso de una sola VPC por flota.

Puedes obtener más información sobre la adopción de funciones de flota y 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 debes considerar para los clústeres nuevos y existentes es si elegiste o quieres 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, se recomienda colocarlas en flotas separadas.

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

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

¿Qué sigue?