Web Development

Implementación de aplicaciones de Django en Kubernetes

Read this post in other languages:

Como una plataforma de orquestación de contenedores de código abierto que automatiza la implementación, el escalado y el equilibrio de carga, Kubernetes ofrece una resiliencia inigualable en la gestión de sus aplicaciones de Django.

Tanto si está lanzando un proyecto a pequeña escala como si está gestionando una aplicación compleja, Kubernetes proporciona un entorno robusto para mejorar su aplicación de Django, y garantiza que esté preparada para satisfacer las necesidades del desarrollo web moderno.

Al automatizar la implementación, el escalado y el funcionamiento de aplicaciones en contenedores, Kubernetes (o K8s) ofrece numerosas ventajas a las organizaciones en el acelerado sector tecnológico.

Tanto si es un desarrollador de Django que busca mejorar sus habilidades de implementación como un entusiasta de Kubernetes que quiere explorar la integración de Django, esta guía tiene algo para todos.

La introducción a este tutorial explora la relación simbiótica entre Django y Kubernetes, lo que le permite crear contenedores para su aplicación web, distribuir cargas de trabajo en clústeres y garantizar una alta disponibilidad.

Django

Django es un marco de trabajo web Python de alto nivel que se erige como un faro de eficiencia y simplicidad en el mundo de desarrollo web. Django nació de la necesidad de crear aplicaciones web rápidas, robustas y fáciles de mantener, y se ha convertido en la opción preferida de desarrolladores y organizaciones.

En su núcleo, Django adopta la filosofía «pilas incluidas», y ofrece una amplia gama de herramientas, bibliotecas y convenciones integradas que facilitan el proceso de desarrollo. Simplifica tareas complejas como el enrutamiento de URL, la integración de bases de datos y la autenticación de usuarios, lo que permite a los desarrolladores centrarse en la creación de sus aplicaciones.

Una de las principales ventajas de Django es su adhesión al principio «libre de repeticiones» (don’t repeat yourself, DRY), lo que reduce la redundancia y mejora la mantenibilidad del código. También sigue el patrón arquitectónico modelo-vista-controlador (MVC), lo que hace que las aplicaciones sean estructuradas y fáciles de gestionar.

Django también da prioridad a la seguridad, por lo que es menos propenso a vulnerabilidades web comunes. Incluye funcionalidades como la protección contra «cross-site scripting» (XSS) o «cross-site request forgery» (CSRF) sin necesidad de configuraciones adicionales. Django ofrece una potente combinación de velocidad, simplicidad y seguridad, y es una opción ideal para los desarrolladores que buscan crear aplicaciones web robustas y llenas de funcionalidades con un esfuerzo mínimo.

Orquestadores de contenedores

Los orquestadores de contenedores son herramientas esenciales para gestionar y automatizar la implementación, el escalado y el funcionamiento de aplicaciones en contenedores. Hay varios tipos de orquestadores de contenedores disponibles en el mercado. Estos son algunos de los más populares:

1. Kubernetes, la plataforma de orquestación de contenedores de código abierto, ofrece un entorno robusto y adaptable para gestionar aplicaciones en contenedores. Automatiza tareas como el escalamiento, el equilibrio de carga y las comprobaciones de estado de contenedores con un amplio ecosistema de extensiones.

2. Docker Swarm es una solución de orquestación de contenedores proporcionada por Docker. Diseñado para ser fácil de configurar y utilizar, es una buena opción para aplicaciones más pequeñas u organizaciones que ya utilizan Docker, ya que emplea la misma interfaz de línea de comandos y API que Docker.

3. OpenShift es una plataforma empresarial de Kubernetes desarrollada por Red Hat. Añade herramientas de desarrollo y operativas a Kubernetes, lo que simplifica la implementación y la gestión de aplicaciones en contenedores.

4. Nomad, desarrollado por HashiCorp, es un orquestador ágil y fácil de usar capaz de gestionar contenedores y aplicaciones sin contenedores.

5. Apache Mesos es un kernel de sistemas distribuidos de código abierto, y DC/OS (Data Center Operating System) es una plataforma de calidad empresarial creada en Mesos. DC/OS amplía Mesos con funcionalidades adicionales para gestionar y escalar aplicaciones en contenedores.

Los equipos de software trabajan principalmente con plataformas gestionadas ofrecidas por conocidos proveedores en la nube como AWS, Google Cloud Platform y Azure. Estos proveedores en la nube ofrecen servicios como Amazon EKS, Google GKE y Azure AKS, todos los cuales son soluciones administradas de Kubernetes. Estos servicios simplifican la configuración, expansión y administración de clústeres de Kubernetes y se integran a la perfección con los respectivos entornos en la nube, lo que garantiza una orquestación de contenedores y una implementación de aplicaciones eficientes.

Cómo crear una aplicación de Django en PyCharm

En este tutorial empezaremos generando una aplicación de Django mínima. A continuación, colocaremos la aplicación en contenedores y, en el último paso, la implementaremos en un clúster de Kubernetes local mediante Docker Desktop.

Si no ha trabajado antes con el marco de trabajo Django pero desea crear una aplicación de Django desde cero, consulte este artículo del blog.

Aquí puede acceder al código fuente utilizado en este tutorial.

Comencemos creando una nueva aplicación de Django en PyCharm.

Para crear su proyecto, inicie PyCharm y haga clic en New Project. Si PyCharm ya se está ejecutando, seleccione File | New Project en el menú principal.

Proporcione detalles esenciales como el nombre de proyecto, la ubicación y el tipo de intérprete, utilizando venv o un entorno personalizado.

A continuación, haga clic en Create.

PyCharm hace todo el trabajo pesado configurando su proyecto y creando el entorno virtual.

Gunicorn

Una vez creado el proyecto, instale Gunicorn, un servidor HTTP popular de la interfaz de pasarela del servidor web de Python (WSGI). Gunicorn, un servidor web con modelo de trabajador de pre-fork utilizado para servir aplicaciones web de Python, se utiliza a menudo en combinación con marcos de trabajo web como Django, Flask y otros para implementar aplicaciones web y hacerlas accesibles a través de Internet.

La ventana de herramientas Python Packages ofrece la forma más rápida y sencilla de previsualizar e instalar paquetes para el intérprete Python seleccionado en ese momento.

Puede abrir la ventana de herramientas a través de View | Tool Windows | Python Packages.

Psycopg 2

Psycopg 2 es una biblioteca de Python utilizada para conectarse e interactuar con bases de datos PostgreSQL. Proporciona una interfaz Python para trabajar con PostgreSQL, un de los sistemas de gestión de bases de datos relacionales de código abierto más populares. Psycopg 2 permite a los desarrolladores de Python realizar diversas operaciones con bases de datos, como insertar, actualizar y recuperar datos, así como ejecutar consultas SQL y gestionar conexiones a bases de datos desde programas de Python.

Antes de instalar psycopg2, deberá instalar las dependencias a nivel de sistema, brew install libpq para macOS y apt-get install libpq-dev para Linux.

Referencia: postgresql.org/docs/16/libpq.html

libpq es una biblioteca de cliente para PostgreSQL. Es una biblioteca de C que proporciona la funcionalidad necesaria para que las aplicaciones de cliente se conecten, interactúen y gestionen servidores de bases de datos PostgreSQL. 

Después de completar las modificaciones particulares, actualice la sección dentro de settings.py relacionada con DATABASES.

Asegúrese siempre de pasar sus credenciales secretas a través de variables de entorno.

STATIC_ROOT

En Django, STATIC_ROOT es un ajuste de configuración que se utiliza para especificar la ruta absoluta del sistema de archivos donde se almacenarán los archivos estáticos recopilados al ejecutar el comando de gestión collectstatic. Los archivos estáticos suelen incluir CSS, JavaScript, imágenes y otros activos utilizados por su aplicación web. La configuración STATIC_ROOT constituye una parte esencial para servir archivos estáticos en un entorno de producción.

Establezca una variable de entorno para STATIC_ROOT en la línea 127. Esta variable apuntará a una ruta de archivo que conduce a un volumen persistente de Kubernetes. Más adelante se explicará cómo configurar esta opción.

Para recoger los archivos estáticos, ejecute el siguiente comando:

python manage.py collectstatic

Este comando recopilará los archivos estáticos y los colocará en el directorio STATIC-ROOT. Luego, puede servir estos activos directamente a través de un servidor web Apache o NGINX, un enfoque más eficiente para entornos de producción.

Dockerfile

Un Dockerfile es un documento textual directo que contiene directivas para construir imágenes de Docker.

1. FROM python:3.11: Esta línea especifica la imagen base para la imagen de Docker utilizando la imagen de Python 3.11 oficial de Docker Hub. La aplicación se compilará y ejecutará sobre esta imagen base, que ya tiene Python preinstalado.

2. ENV PYTHONUNBUFFERED 1: Esta línea establece una variable de entorno PYTHONUNBUFFERED a 1. A menudo se recomienda establecer esta variable de entorno cuando se ejecuta Python dentro de contenedores de Docker para asegurar que Python no almacena en búfer el resultado. Esto ayuda a obtener registros en tiempo real e información de depuración de la aplicación.

3. WORKDIR /app: Esta línea establece el directorio de trabajo dentro del contenedor de Docker a /app. Todos los comandos posteriores se ejecutarán en este directorio.

4. COPY . /app: Esta línea copia el contenido del directorio actual (el directorio donde se encuentra el Dockerfile) al directorio /app dentro del contenedor. Esto incluye el código de su aplicación y cualquier archivo necesario para la imagen de Docker.

5. RUN pip install -r requirements.txt: Esta línea ejecuta el comando pip install para instalar las dependencias de Python enumeradas en un archivo requirements.txt que se encuentra en el directorio /app. Esto es una práctica común para las aplicaciones de Python, ya que le permite gestionar las dependencias de la aplicación.

6. EXPOSE 8000: Esta línea informa a Docker que el contenedor escucha en el puerto 8000. En realidad no publica el puerto. Es una declaración de metadatos que indica qué puerto puede utilizar el contenedor.

7. CMD ["gunicorn", "django_kubernetes_tutorial.wsgi:application", "--bind", "0.0.0.0:8000"]: Esta línea especifica el comando predeterminado que se ejecutará cuando se inicie el contenedor. Utiliza Gunicorn para servir la aplicación de Django y enlaza Gunicorn para escuchar en todas las interfaces de red (0.0.0.0) en el puerto 8000 utilizando la aplicación WSGI definida en django_kubernetes_tutorial.wsgi:application.

DockerHub

Visite hub.docker.com y proceda a iniciar sesión o a registrarse en la plataforma.

Haga clic en Create repository.

A continuación, indique el nombre del repositorio y haga pública la visibilidad. Si está trabajando con información sensible o confidencial, establezca la visibilidad a Private.

Una vez creado el repositorio, necesitará compilar la imagen de Docker y enviarla al registro.

Antes de ejecutar el comando, asegúrese de que el archivo requirements.txt esté actualizado ejecutando el siguiente comando:

pip freeze > requirements.txt

Para construir una imagen, ejecute el siguiente comando: 

docker build -t mukulmantosh/django-kubernetes:1.0 .

docker build -t /django-kubernetes:1.0 .

Este comando variará según sus circunstancias específicas y tendrá que utilizar su nombre de usuario personal.

A continuación, debe autenticarse con Docker Hub para enviar la imagen al registro.

Escriba el siguiente comando en el terminal:

docker login

Introduzca su nombre de usuario y contraseña. Una vez que se han autenticado correctamente, puede enviar la imagen ejecutando este comando:

docker push mukulmantosh/django-kubernetes:1.0 

docker push /django-kubernetes:1.0 

Una vez que la imagen se ha enviado correctamente, puede observar los cambios en Docker Hub.

Si no tiene previsto enviar más imágenes al registro, puede iniciar sesión ejecutando el siguiente comando:

docker logout

Si quiere extraer esta imagen de forma local, visite hub.docker.com/r/mukulmantosh/django-kubernetes.

Configuración de Kubernetes: cómo escribir archivos YAML

Esta sección del tutorial describe la implementación de aplicaciones en clústeres de Kubernetes locales.

Para este tutorial, usaremos Docker Desktop, pero también puedes usar minikube o kind.

Namespaces

En Kubernetes, namespaces es una partición virtual dentro de un clúster que se utiliza para agrupar y aislar recursos y objetos. Es una manera de crear varios clústeres virtuales dentro de un único clúster físico. 

Puede crear y gestionar los espacios de nombres mediante kubectl, la herramienta de línea de comando de Kubernetes, o definiéndolos en manifiestos YAML al implementar recursos. 

  • Si ha elegido Docker Desktop como plataforma preferida para ejecutar Kubernetes, asegúrese de habilitar Kubernetes en la configuración haciendo clic en la casilla de verificación Enable Kubernetes.

Ejecute el siguiente comando en el terminal para crear el namespace:

kubectl create ns django-app

Cómo implementar bases de datos con K8s

Para comenzar, vamos a establecer una instancia PostgreSQL en nuestro clúster de Kubernetes en el entorno local.

PersistentVolume

En Kubernetes, un volumen persistente (PV) es un trozo de almacenamiento en el clúster aprovisionado por un administrador. Al almacenar los datos en una manera independiente del ciclo de vida de un pod, los PV permiten una gestión y abstracción de los recursos de almacenamiento más desacoplada y flexible. Esto significa que los datos pueden persistir incluso si el pod que los utiliza se elimina o se reprograma en un nodo diferente del clúster.

Creemos un volumen persistente y llamémoslo pv.yml.

Esta configuración YAML define un recurso PersistentVolume llamado postgres-pv con una capacidad de 1 gigabyte, montado utilizando el modo de acceso ReadWriteOnce y proporcionado por una ruta local en el sistema de archivos del nodo ubicado en /data/db. Este PV se puede utilizar para proporcionar almacenamiento persistente para los pods que necesitan acceso a un directorio en el sistema de archivos del nodo y es adecuado para aplicaciones como PostgreSQL u otros servicios con estado que necesitan almacenamiento persistente.

Para producción, recomendamos utilizar soluciones en la nube como AWS RDS o Google CloudSQL, o utilizar StatefulSets de Kubernetes.

PersistentVolumeClaim

En Kubernetes, PersistentVolumeClaim (PVC) es un objeto de recurso utilizado por un pod para solicitar una cantidad concreta de almacenamiento con ciertas propiedades de un PV. Los PVCs sirven para que las aplicaciones reclamen recursos de almacenamiento sin necesitar saber los detalles de la infraestructura de almacenamiento subyacente.

Al crear y utilizar los PVCs, Kubernetes proporciona una manera de asignar y gestionar recursos de almacenamiento para las aplicaciones al tiempo que abstrae la infraestructura de almacenamiento subyacente, lo que hace más fácil trabajar con aplicaciones con estado en entornos de contenedores y gestionarlas.

Creemos un PVC y llamémoslo pvc.yml.

Un PVC solicita recursos de almacenamiento y está vinculado a un PV que proporciona el almacenamiento real. 

Esta configuración YAML define un PersistentVolumeCLaim llamado postgres-pvc dentro del namespace django-app. Solicita un gigabyte de almacenamiento con el modo de acceso ReadWriteOnce y especifica explícitamente la StorageClass manual. Este PVC está destinado a un PV existente con el nombre postgres-pv, y reserva efectivamente ese volumen para su uso por pods dentro del namespace django-app que hacen referencia a este PVC.

ConfigMap

En Kubernetes, un ConfigMap es un objeto de API que se utiliza para almacenar datos de configuración de pares clave-valor. ConfigMaps ofrece una forma de desacoplar los datos de configuración del código de la aplicación, lo que facilita la gestión y actualización de las configuraciones sin modificar y volver a implementar los contenedores. Son especialmente útiles para configurar aplicaciones, microservicios y otros componentes dentro de un clúster de Kubernetes.

Creemos un ConfigMap y llamémoslo cm.yml.

Aunque este tutorial utiliza ConfigMaps, por consideraciones de seguridad, se recomienda almacenar las credenciales sensibles en Secrets de Kubernetes o explorar alternativas como Bitnami Sealed Secrets, AWS Parameter Store o HashiCorp Vault.

Deployment

En Kubernetes, Deployment es un objeto de recurso utilizado para gestionar la implementación y el escalado de aplicaciones. Forma parte del grupo de la API de Kubernetes y ofrece una forma declarativa para definir y gestionar el estado deseado de su aplicación.

Un Deployment es un recurso de Kubernetes de nivel superior utilizado para gestionar y escalar pods de aplicaciones. 

Esta configuración YAML define un Deployment llamado postgres en el namespace django-app. Implementa una única réplica de una base de datos PostgreSQL (versión 16.0) con almacenamiento persistente. El pod de base de datos se etiqueta como app: postgresdb y el almacenamiento se proporciona por un PVC llamado postgres-pvc. La configuración y las credenciales para el contenedor PostgeSQL se proporcionan a través de un ConfigMap llamado db-secret-credentials.

Service

En Kubernetes, Service es un objeto de recurso utilizado para exponer un conjunto de pods como un servicio de red. Los Services habilitan la comunicación en red entre las diferentes partes de su aplicación que se ejecutan en un clúster de Kubernetes y ofrecen un punto de conexión estable para que los clientes accedan a esas partes. Los Services abstraen la infraestructura de red subyacente, lo que facilita la conexión y el descubrimiento de los componentes de su aplicación.

Esta configuración YAML define un NodePort Service llamado postgres-service dentro del namespace django-app. Expone el servicio PostgreSQL que se ejecuta en los pods indicados con «app: postgresdb» en el puerto 5432 dentro del clúster. Los clientes externos pueden acceder al Service en la dirección IP de cualquier nodo utilizando el puerto 30004. Este Service ofrece una forma de hacer que la base de datos PostgreSQL sea accesible desde fuera del clúster de Kubernetes.

Cómo crear configuraciones YAML para una aplicación de Django

PersistentVolume

Esta configuración YAML define un PersistentVolume llamado staticfiles-pv con una capacidad de almacenamiento de 1 GB, lo que permite a varios pods leer y escribir en él de forma simultánea. El almacenamiento se proporciona por una ruta de host local situada en /data/static. Los archivos estáticos de Django se almacenarán en esta ubicación.

PersistentVolumeClaim

Este YAML define un PVC llamado staticfiles-pvc en el namespace django-app. Solicita almacenamiento con una capacidad de al menos 1 GB por un PV con la StorageClass «manual», y especifica que necesita acceso a ReadWriteMany. La reclamación se vincula explícitamente a un PV existente llamado staticfiles-pv para satisfacer sus necesidades de almacenamiento. Este permite a los pods en el namespace django-app utilizar este PVC para acceder y utilizar el almacenamiento proporcionado por el PVC asociado.

ConfigMap

Este YAML define un ConfigMap llamado app-cm en el namespace django-app, y contiene varios pares clave-valor que almacenan datos de configuración. Este ConfigMap se puede utilizar por los pods u otros recursos dentro del namespace django-app para acceder a los ajustes de configuración, como la información de conexión a la base de datos y las rutas de los archivos estáticos.

Deployment

Este YAML define un Deployment llamado django-app-deploy en el namespace django-app. Crea una réplica (pod) que ejecuta un contenedor con una imagen y una configuración específicas de Docker. El pod está asociado a dos volúmenes, postgres-db-storage y staticfiles, que son respaldados con los PVC. El contenedor está configurado para utilizar variables del entorno de un ConfigMap llamado app-cm y escucha en el puerto 8000. Los volúmenes se montan en rutas específicas dentro del contenedor para dar acceso al almacenamiento de base de datos y archivos estáticos. Este Deployment es una forma común de ejecutar una aplicación de Django utilizando Kubernetes.

Si le interesa cómo extraer imágenes de un registro privado, lea esto

Service

El Service escucha en el puerto 8000 y dirige el tráfico entrante a los pods indicados con app: django-application. Se trata de una configuración habitual para exponer y equilibrar la carga de aplicaciones web en un clúster de Kubernetes donde se ejecutan varias instancias de la misma aplicación. El Service asegura que el tráfico se distribuya de manera uniforme entre ellas.

NGINX

NGINX es un web de alto rendimiento y un servidor proxy inverso conocido por su velocidad, fiabilidad y escalabilidad. Gestiona con eficiencia el tráfico web, el equilibrio de carga y la distribución de contenidos, por lo que es una opción popular para servir sitios web y aplicaciones.

ConfigMap

Esta configuración YAML define un ConfigMap de Kubernetes llamado nginx-cm en el namespace django-app y contiene un par clave-valor donde la clave es default.conf y el valor es un archivo de configuración NGINX multilínea que redirige la solicitud al servidor de backend. 

Deployment

Esta configuración YAML define un Deployment que crea y gestiona pods que ejecutan un contenedor NGNX son volúmenes y configuraciones específicas. Ese Deployment asegura que una réplica de este pod siempre esté en ejecución en el namespace django-app. También anula la configuración predeterminada de NGINX sustituyéndola por un ConfigMap nginx-cm.

Service

Esta configuración YAML define un Kubernetes Service llamado nginx-service dentro del namespace django-app. Expone los pods indicados con app:nginx en el puerto 80 dentro del clúster y también hace que el Service sea accesible en NodePort 30005 en cada nodo del clúster. Esto permite que el tráfico externo llegue a los pods que ejecutan la aplicación de NGINX a través del servicio NodePort.

Cómo gestionar cargas de trabajo por lotes con trabajos de Kubernetes

En Kubernetes, Job es un objeto de recurso que representa una única unidad o una tarea finita. Los Jobs son diseñados para ejecutar tareas hasta su finalización, con un número determinado de finalizaciones con éxito. 

Migración de bases de datos

Esta configuración YAML define un Kubernetes Job llamado django-db-migrations dentro del namespace django-app. Este Job ejecuta un contenedor utilizando una imagen de Docker personalizada para las migraciones de Django y monta un PVC para proporcionar almacenamiento para los archivos relacionado con la base de datos. Si el Job falla, puede reintentarse hasta 15 veces, y conservará su pod durante 100 segundos tras su finalización. Este Job creará nuevas tablas en PostgreSQL.

Archivos estáticos

Esta configuración YAML define un Kubernetes Job llamado django-staticfiles dentro del namespace django-app. El Job ejecuta un contenedor utilizando una imagen de Docker personalizada para recopilar archivos estáticos para una aplicación de Django y monta un PVC para proporcionar almacenamiento para los archivos estáticos. Si el Job falla, puede reintentarse hasta tres veces, y conservará su pod durante 100 segundos tras su finalización a efectos de depuración. Este Job copiará los archivos estáticos en el mountPath, que es /data/static.

Cómo lanzar la aplicación

Para lanzar la aplicación, vaya al directorio k8s y ejecute el siguiente comando:

Después de implementar la aplicación, utilice el siguiente comando para verificar el estado de los pods en ejecución:

kubectl get pods -n django-app -w

Cómo crear un superusuario en Django

Una vez que todas sus aplicaciones se pongan en marcha, cree un superusuario para iniciar sesión en el administrador de Django.

Ejecute el siguiente comando para obtener la lista de pods en ejecución:

kubectl get pods -n django-app

Para entrar en el shell del contenedor, ejecute:

kubectl exec -it -n django-app -- sh

A continuación, ejecute:

python manage.py createsuperuser

Una vez que haya creado correctamente el superusuario, abra http://127.0.0.1:30005 en un navegador. Le dirigirá a la página de bienvenida predeterminada.

A continuación, diríjase al administrador de Django a través de http://127.0.0.1:30005/admin.

Introduzca el nombre de usuario y contraseña que acaba de crear. 

Una vez autenticado, se le redirigirá a la página de administración de Django. 

Si intenta iniciar sesión a través de localhost:30005/admin, puede recibir un error 403 Forbidden (CSFR).

Puede resolverlo en el archivo settings.py bajo CSFR_TRUSTED_ORIGINS.

CSRF_TRUSTED_ORIGINS es una configuración en Django que se utiliza para especificar una lista de orígenes de confianza para la protección contra la falsificación de petición en sitios cruzados (CSFR). El CSFR es una vulnerabilidad de seguridad que puede ocurrir cuando un atacante engaña a un usuario para que, sin saberlo, realice una solicitud no deseada a una aplicación web. Para evitarlo, Django incluye protección CSRF integrada.

CSFR_TRUSTED_ORIGINS le permite definir una lista de los orígenes (sitios web) desde los que se aceptan solicitudes protegidas contra CSFR. Cualquier solicitud procedente de un origen no incluido en esta lista se considerará potencialmente maliciosa y debidamente bloqueada.

Esta configuración se puede utilizar para permitir ciertas solicitudes cruzadas a su aplicación de Django, al tiempo que mantiene la seguridad contra ataques CSRF. Resulta especialmente útil cuando la aplicación debe interactuar con otros servicios web o API alojados en dominios diferentes.

Si está utilizando las herramientas GUI como Kubernetes Dashboard, puede visualizar fácilmente sus pods en ejecución, implementaciones, volúmenes persistentes, y más.

Compatibilidad con Kubernetes en PyCharm 

PyCharm ofrece un editor mejorado y compatibilidad con tiempos de ejecución para Kubernetes, y aporta una gran cantidad de funcionalidades para simplificar su gestión de Kubernetes, como por ejemplo:

  • Explorar los objetos del clúster, extraer y editar sus configuraciones y describirlos.
  • Visualizar eventos.
  • Visualizar y descargar los registros de los pods.
  • Adjuntar la consola de los pod.
  • Ejecutar shell en pods.
  • Reenviar puertos a un pod.
  • Aplicar configuraciones YAML de recursos desde el editor.
  • Eliminar recursos del clúster.
  • Finalizar entradas ConfigMap y Secret del clúster.
  • Configurar rutas a kubectl.
  • Configurar archivos kubeconfig personalizados a nivel global y por proyecto.
  • Modificar contextos y namespaces.
  • Utilizar el esquema de API (incluido CRD) del clúster activo para editar manifiestos de recursos.

Vea este vídeo para aprender más sobre cómo trabajar con Kubernetes en PyCharm Professional.

¡Pruebe PyCharm para sus tareas de Kubernetes gratis!

Referencias

¿Ya conoce bien Kubernetes? A continuación, dé el siguiente paso en su viaje de programación explorando las soluciones en la nube, y eche un vistazo a nuestros tutoriales en AWS EKS y Google Kubernetes Engine.

Artículo original en inglés de:

Mukul Mantosh

Mukul Mantosh

image description