Kubernetes con Cloud Shell: despliegue de una aplicación de Flask de Python
En este tutorial, utilizará una cuenta de Oracle Cloud Infrastructure para configurar un cluster de Kubernetes. A continuación, crea una aplicación de Python con un marco de Flask. Por último, despliegue la aplicación en el cluster con Cloud Shell.
Las tareas clave incluyen cómo:
- Crear un compartimento.
- Configurar un cluster de Kubernetes en OCI.
- Crear una aplicación Python en un marco de Flask.
- Crear una imagen de Docker.
- Transfiera la imagen a OCI Container Registry.
- Utilizar Cloud Shell para desplegar la aplicación de Docker en el cluster.
- Conectarse a su aplicación desde Internet.

Para obtener información adicional, consulte:
Antes de empezar
Para realizar correctamente este tutorial, debe tener lo siguiente:
- Una cuenta de Oracle Cloud Infrastructure de pago. Consulte Registro en Oracle Cloud Infrastructure.
- Cloud Shell proporciona las siguientes aplicaciones:
- JDK 8+
- Python 3.6.8+
- Kubectl 1.18.10+
- Apache Maven 3.5+
- Docker 19.0.11+
La ventaja de utilizar Cloud Shell es que todas las herramientas necesarias para gestionar la aplicación ya están instaladas y listas para usarse.
1. Preparación
Prepare su entorno para crear y desplegar la aplicación.
- Conéctese a la consola de Oracle Cloud Infrastructure.
- Abra el menú de navegación y haga clic en Gobernanza y administración. En Gobernanza, haga clic en Límites, cuotas y uso.
- Busque el límite de servicio para Regiones:
- Filtre las siguientes opciones:
- Servicio: regiones
- Ámbito: Arrendamiento
- Recurso: recuento de regiones suscritas
- Compartimento:
<tenancy-name>
(root)
- Busque el límite de servicio:
- Nombre de límite:
subscribed-region-count
- Límite de servicio: como mínimo 2
- Nombre de límite:
- Filtre las siguientes opciones:
- Busque el recuento de núcleos informáticos disponibles para la unidad VM.Standard.E3.Flex:
- Filtre las siguientes opciones:
- Servicio: Recursos informáticos
- Alcance:
<first-availability-domain>
. Ejemplo:EMlr:US-ASHBURN-AD-1
- Recurso: núcleos para instancias Standard.E3.Flex y BM.Standard.E3.128
- Compartimento:
<tenancy-name>
(root)
- Busque el recuento de núcleos disponibles:
- Nombre de límite:
standard-e3-core-ad-count
- Disponible: como mínimo 1
- Nombre de límite:
- Repita el procedimiento para Ámbito:
<second-availability-domain>
y<third-availability-domain>
. Cada región debe tener al menos un núcleo disponible para esta unidad.
- Filtre las siguientes opciones:
- Averigüe si tiene 50 GB de volumen en bloque disponibles:
- Filtre las siguientes opciones:
- Service: Block Volume
- Alcance:
<first-availability-domain>
. Ejemplo:EMlr:US-ASHBURN-AD-1
- Recurso: Tamaño de volumen (GB)
- Compartimento:
<tenancy-name>
(root)
- Busque el recuento de núcleos disponibles:
- Nombre de límite:
total-storage-gb
- Disponible: mínimo 50
- Nombre de límite:
- Repita el procedimiento para Ámbito:
<second-availability-domain>
y<third-availability-domain>
. Cada región debe tener al menos 50 GB de volumen en bloque disponibles.
- Filtre las siguientes opciones:
- Descubra cuántos equilibradores de carga flexibles tiene disponibles:
- Filtre las siguientes opciones:
- Servicio: LbaaS
- Alcance:
<your-region>
. Ejemplo:us-ashburn-1
- Recurso:
<blank>
- Compartimento:
<tenancy-name>
(root)
- Busque el recuento de las siguientes unidades
- Nombre de límite:
lb-flexible-bandwidth-count
- Disponible: como mínimo 1
- Nombre de límite:
- Filtre las siguientes opciones:
Con este tutorial se crean tres instancias informáticas con una unidad VM.Standard.E2.1 para los nodos de cluster. Para utilizar otra unidad, filtre por su recuento de núcleos. Por ejemplo, para VM.Standard2.4, filtre por Núcleos para instancias de máquina virtual y dedicadas basadas en Standard2 y obtenga el recuento.
Para obtener una lista de todas las unidades, consulte Unidades VM Standard.
Con este tutorial se crean tres instancias informáticas con una unidad VM.Standard.E3.Flex para los nodos de cluster. Para utilizar otra unidad, filtre por su recuento de núcleos. Por ejemplo, para VM.Standard2.4, filtre por Núcleos para instancias de máquina virtual y dedicadas basadas en Standard2 y obtenga el recuento.
Para obtener una lista de todas las unidades, consulte Unidades VM Standard.
En este tutorial se utiliza un flujo de trabajo de creación rápida para crear un cluster con una subred regional pública que aloja un equilibrador de carga flexible. Para utilizar un equilibrador de carga diferente, puede utilizar un flujo de trabajo personalizado para especificar explícitamente los recursos de red existentes que utilizar, incluidas las subredes existentes en las que crear los equilibradores de carga.
Para utilizar otro ancho de banda, filtre por su recuento, por ejemplo ancho de banda de 100 Mbps o ancho de banda de 400 Mbps.
- En la barra de navegación, seleccione el menú Perfil y, a continuación, seleccione Configuración de usuario o Mi perfil, según la opción que vea.
- Haga clic en Tokens de autenticación.
- Haga clic en Generar token.
- Asígnele una descripción.
- Haga clic enGenerar token.
- Copie el token y guárdelo.
- Haga clic en Cerrar.
Asegúrese de guardar el token justo después de crearlo. No tendrá acceso a él más adelante.
2. Configuración de un cluster
Instale y configure las opciones de gestión para el cluster de Kubernetes. Posteriormente, despliegue la aplicación en este cluster.
Si su nombre de usuario está en el grupo Administradores, omita esta sección. De lo contrario, haga que el administrador agregue la siguiente política a su arrendamiento:
allow group <the-group-your-username-belongs> to manage compartments in tenancy
Con este privilegio, puede crear un compartimento para todos los recursos del tutorial.
- En la barra de navegación, seleccione el menú Perfil y, a continuación, seleccione Configuración de usuario o Mi perfil, según la opción que vea.
- En el panel de la izquierda, haga clic en Grupos.
- En un bloc de notas, copie el nombre de grupo al que pertenece el nombre de usuario.
- Abra el menú de navegación y haga clic en Identidad y seguridad. En Identidad, haga clic en Políticas.
- Haga clic en Crear política.
- Rellene la siguiente información:
- Nombre:
manage-compartments
- Descripción:
Allow the group <the-group-your-username-belongs> to list, create, update, delete and recover compartments in the tenancy.
- Compartimento:
<your-tenancy>(root)
- Nombre:
- En Creador de política, haga clic en Mostrar editor manual.
- Pegue la siguiente política:
allow group <the-group-your-username-belongs> to manage compartments in tenancy
- Haga clic en Crear.
De referencia
Tipo de recurso compartments
en Combinaciones de verbos + tipo de recurso para IAM
Cree un compartimento para los recursos que cree en este tutorial.
- Conéctese a la consola de Oracle Cloud Infrastructure.
- Abra el menú de navegación y haga clic en Identidad y seguridad. En Identidad, haga clic en Compartimentos.
- Haga clic en Crear compartimento.
- Rellene la siguiente información:
- Nombre:
<your-compartment-name>
- Descripción:
Compartment for <your-description>.
- Compartimento principal:
<your-tenancy>(root)
- Nombre:
- Haga clic en Crear compartimento.
Referencia: Creación de un compartimento
Si su nombre de usuario está en el grupo Administradores, omita esta sección. De lo contrario, haga que el administrador agregue la siguiente política a su arrendamiento:
allow group <the-group-your-username-belongs> to manage all-resources in compartment <your-compartment-name>
Con este privilegio, puede gestionar todos los recursos en el compartimento, otorgándole esencialmente derechos administrativos en ese compartimento.
- Abra el menú de navegación y haga clic en Identidad y seguridad. En Identidad, haga clic en Políticas.
- Seleccione el compartimento en la lista Compartimento.
- Haga clic en Crear política.
- Rellene la siguiente información:
- Nombre:
manage-<your-compartment-name>-resources
- Descripción:
Allow users to list, create, update, and delete resources in <your-compartment-name>.
- Compartimento:
<your-tenancy>(root)
- Nombre:
- Para Creador de política, seleccione las siguientes opciones:
- Casos de uso de política:
Compartment Management
- Plantillas de políticas comunes:
Let compartment admins manage the compartment
- Grupos:
<the-group-your-username-belongs>
- Ubicación:
<your-tenancy>(root)
- Casos de uso de política:
- Haga clic en Crear.
De referencia
Cree un cluster con la configuración por defecto y los nuevos recursos de red mediante el flujo de trabajo 'Creación rápida'.
Después de crear un cluster de Kubernetes, configure Cloud Shell para acceder al cluster.
Con su configuración de acceso al cluster, ya puede preparar la aplicación para su despliegue.
3. Creación de la aplicación de Docker
A continuación, configure el marco de Flask en Cloud Shell. A continuación, cree y ejecute una aplicación de Python.
Cree su aplicación de Flask.
Ejecute la aplicación de Flask.
Ha creado correctamente una aplicación de Python local con el marco de Flask.
Referencias:
Para obtener más información sobre Flask, consulte la documentación de Flask.
A continuación, cree una imagen de Docker para la aplicación de Flask.
4. Despliegue de su imagen de Docker
Con la imagen de Python creada, ahora puede desplegarla.
Con la imagen de Docker local creada, transfiera la imagen al repositorio de Container Registry.
Siga estos pasos.
Busque la imagen en Container Registry una vez que se haya completado el comando push.
Siguiente paso
Ha creado correctamente una aplicación Hello World de Python, la ha desplegado en un cluster de Kubernetes y la ha publicado en Internet mediante el marco de Flask.
Consulte estos sitios para obtener más información sobre el desarrollo con productos Oracle: