Si necesita ejecutar aplicaciones Java en Kubernetes sin administrar directamente la infraestructura del clúster, Enterprise Distributed Application Service (EDAS) ofrece una gestión completa del ciclo de vida sobre Container Service for Kubernetes (ACK). En lugar de compilar imágenes de contenedor y escribir manifiestos de Kubernetes manualmente, cargue un paquete JAR o WAR y EDAS se encargará de la containerization y el despliegue.
Este tema describe cómo crear un clúster ACK, importarlo a EDAS y desplegar una aplicación Java mediante un paquete JAR o WAR de demostración.
Flujo de trabajo
|
Paso |
Tarea |
Descripción |
|
1 |
Requisitos previos |
Active EDAS y ACK, cree un namespace de microservices y asigne los roles obligatorios |
|
2 |
Crear un clúster ACK |
Cree un clúster administrado de Kubernetes en la consola de ACK |
|
3 |
Importar el clúster a EDAS |
Sincronice e importe el clúster para que EDAS pueda gestionar los despliegues |
|
4 |
Desplegar la aplicación |
Configure y despliegue una aplicación Java con un paquete JAR o WAR |
|
5 |
Verificar el despliegue |
Compruebe que los pods se estén ejecutando |
|
6 |
Pasos siguientes |
Exponga la aplicación a través de un load balancer |

Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una cuenta de Alibaba Cloud con EDAS activado y ACK activado
Los roles predeterminados de ACK asignados a su cuenta
Paso 1: Crear un clúster ACK
Inicie sesión en la consola de ACK y cree un clúster administrado de Kubernetes. Para obtener instrucciones, consulte Crear un clúster administrado de Kubernetes.
Para crear un clúster ACK Serverless compatible con Alibaba Cloud Service Mesh (ASM) después de importarlo a EDAS, establezca VPC en Create VPC y Service Discovery en PrivateZone . Si configura VPC como Select Existing VPC , compruebe que el clúster cuente con recursos de VPC y vSwitch después de su creación. Para más detalles, consulte Crear un clúster ACK Serverless .
Paso 2: Importar el clúster ACK a EDAS
Al importar un clúster ACK, EDAS instala automáticamente los siguientes componentes:
|
Componente |
Propósito |
|
ack-ahas-sentinel-pilot |
Protección de aplicaciones (limitación de tráfico y degradación) |
|
ack-arms-pilot |
Agente de Application Real-Time Monitoring Service (ARMS) |
|
ack-arms-prometheus |
Agente de monitoreo Prometheus |
Para importar el clúster:
Inicie sesión en la consola de EDAS. En el panel de navegación izquierdo, seleccione Resource Management > Container Service Kubernetes Clusters.
En la barra de navegación superior, seleccione la región donde reside su clúster ACK y luego haga clic en Synchronize Container Service Kubernetes Cluster.
Localice el clúster sincronizado y haga clic en Import en la columna Actions.
En el cuadro de diálogo Precheck for Import, haga clic en Continue.
En el cuadro de diálogo Import Kubernetes Cluster, seleccione un namespace de microservices en la lista desplegable Microservice Namespace. Active o desactive Service Mesh según sus necesidades y luego haga clic en Import.
La importación se completa cuando el clúster muestra Running en la columna Cluster Status y Imported en la columna Import Status.
Paso 3: Desplegar la aplicación
El procedimiento de despliegue es el mismo para paquetes JAR y WAR. Los siguientes pasos utilizan un paquete JAR como ejemplo.
3a. Crear la aplicación
Inicie sesión en la consola de EDAS. En el panel de navegación izquierdo, seleccione Application Management > Applications.
En la barra de navegación superior, seleccione una región. En la parte superior de la página, seleccione un namespace de microservices. En la esquina superior izquierda de la página Applications, haga clic en Create Application.
3b. Configurar la información básica
En el paso Basic Information, configure los siguientes parámetros y luego haga clic en Next.
|
Parámetro |
Descripción |
|
Cluster Type |
Seleccione Kubernetes Clusters. |
|
Application Source Type |
Seleccione Default. |
|
Hosted Applications |
Seleccione el lenguaje de programación. Elija Java para este ejemplo. Para aplicaciones PHP o multilenguaje, consulte Compilar aplicaciones PHP desde el código fuente y desplegarlas en clústeres ACK. |
|
Select Application |
Seleccione un entorno de ejecución según el tipo de aplicación. Consulte las opciones a continuación. |
Opciones de entorno de ejecución:
|
Opción |
Caso de uso |
Parámetros configurables |
|
Java |
Desplegar una aplicación Dubbo o Spring Boot con un paquete JAR universal |
Java Environment |
|
Tomcat |
Desplegar una aplicación Dubbo o Spring con un paquete WAR universal |
Java Environment, Container Version |
|
EDAS-Container (HSF) |
Desplegar una aplicación High-Speed Service Framework (HSF) con un paquete WAR o FatJar |
Java Environment, Pandora Version, Ali-Tomcat Version |
Para despliegues basados en imágenes, consulte Usar una imagen para desplegar una aplicación de microservices Java en un clúster de Kubernetes.
OpenJDK 17 es compatible con Dubbo 2.7.14 y versiones posteriores, o Dubbo 3.0.6 y versiones posteriores. Consulte la matriz de compatibilidad a continuación.
3c. Configurar el despliegue
En el paso Configurations, defina el entorno, el método de despliegue y los parámetros de recursos; luego haga clic en Next.
Configuración de entorno y clúster
|
Parámetro |
Descripción |
|
Microservice Namespace |
Seleccione el namespace que creó. Si no se especifica, se usa Default de forma predeterminada. Para crear uno nuevo, haga clic en Create Microservice Namespace. Consulte la sección "Crear un namespace" en Gestionar namespaces de microservices. |
|
Cluster |
Seleccione el clúster ACK importado. Si aún no lo ha importado, elija This cluster is used for the first time in EDAS para importarlo durante la creación de la aplicación. Después, verifique si Alibaba Cloud Service Mesh está activado. La primera importación requiere tiempo adicional. |
|
K8s Namespace |
Seleccione un namespace de Kubernetes para el aislamiento de recursos. Opciones: default (se usa si no se especifica otro), kube-system (objetos creados por el sistema), kube-public (legible por todos los usuarios, incluidos los no autenticados). Para crear un namespace personalizado, haga clic en Create Kubernetes Namespace. El nombre debe tener entre 1 y 63 caracteres: letras minúsculas, dígitos y guiones (-), y debe comenzar y terminar con una letra o un dígito. |
El clúster y la aplicación no necesitan pertenecer al mismo namespace de microservices.
Configuración de la aplicación
|
Parámetro |
Descripción |
|
Application Name |
Debe comenzar con una letra. Puede contener letras, dígitos y guiones (-), hasta 36 caracteres. |
|
Application Description |
Opcional. Hasta 128 caracteres. |
Paquete de despliegue
|
Parámetro |
Descripción |
|
Source of Deployment Package |
Elija una de las siguientes opciones: |
-
Custom Program: Cargue un paquete JAR o proporcione una URL del paquete.
Upload JAR Package: Seleccione y cargue un paquete local.
JAR Package Address: Introduzca la URL de su paquete de despliegue.
Official Demo: Seleccione un tipo de aplicación de demostración: Spring Cloud Server Application, Spring Cloud Client Application, Dubbo Server Application o Dubbo Client Application.
Registro de contenedores (solo clústeres ACK)
El parámetro Container Registry Repository Type solo está disponible para aplicaciones Java, Tomcat o EDAS-Container (HSF) en clústeres ACK. No está disponible para clústeres ACK Serverless.
Antes de usar un registro de contenedores, asegúrese de que:
El componente aliyun-acr-credential-helper esté instalado
Para Container Registry Enterprise Edition, el acceso por VPC esté configurado
Seleccione Container Registry Personal Edition o Container Registry Enterprise Edition para almacenar la imagen compilada. La tarea de compilación de la imagen se ejecuta en su clúster con las siguientes reglas de programación:
|
Etiqueta o taint de nodo |
Comportamiento |
|
|
EDAS no programa tareas de compilación en estos nodos |
|
|
EDAS prefiere programar tareas de compilación en estos nodos, pero también puede usar nodos sin etiqueta |
|
|
Las tareas de compilación pueden tolerar este taint |
Para evitar que las tareas de compilación se ejecuten en nodos específicos, agregue la etiqueta edas.image.build=disable. Para crear un nodo dedicado a compilaciones, agregue tanto la etiqueta edas.image.build=enable como el taint key=edas.image.build, effect=NoSchedule.
El límite predeterminado de recursos para una sola tarea de compilación de imagen es de 1 GB por núcleo. Para ajustar este límite, consulte ¿Cómo ajusto los límites de recursos para la compilación de imágenes?
Parámetros de Container Registry Enterprise Edition:
|
Parámetro |
Descripción |
|
Region of Container Registry |
Seleccione la región de su imagen de Container Registry. |
|
Container Registry |
Seleccione su imagen de contenedor. |
|
Image Repository Namespace |
Seleccione un namespace o haga clic en + Create Namespace para crear uno nuevo. |
Configuración de recursos y tiempo de ejecución
|
Parámetro |
Descripción |
|
Version |
Especifique un número de versión personalizado o haga clic en Use Timestamp as Version Number para generar uno automáticamente. |
|
Time Zone |
Seleccione la zona horaria de la aplicación. |
|
OpenJDK Base Image |
Disponible solo cuando Java Environment se establece en Custom OpenJDK en el paso de información básica. Configure el origen de la imagen: Si establece Alibaba Cloud Container Registry en Current Account, configure los parámetros Region, Container Registry, Image Repository Namespace y Image Repository Name, y seleccione una versión de imagen. Si lo establece en Other Alibaba Cloud Accounts, especifique la Full Image Address. Solo se admiten JDK 7 y JDK 8. Usar una versión diferente de JDK puede causar excepciones en la función de monitoreo de aplicaciones. El servidor de EDAS extrae la imagen base para compilar una imagen de aplicación. Asegúrese de que la imagen base tenga permisos públicos de extracción. |
|
Total Pods |
Número de pods a desplegar. El máximo depende de la capacidad del clúster. |
|
Single-pod Resource Quota |
Límites de CPU, memoria y almacenamiento efímero por pod. Un valor de 0 significa sin límite. Los valores máximos dependen de la capacidad del clúster. |
3d. Configurar ajustes avanzados (opcional)
En el paso Advanced Settings, configure cualquiera de los siguientes elementos según sea necesario:
3e. Iniciar el despliegue
Haga clic en Create Application. En el paso Creation Completed, haga clic nuevamente en Create Application.
En el cuadro de diálogo Confirm Application Change Precheck, haga clic en Start Precheck.
Revise los resultados de la comprobación previa y haga clic en Continue. Si modificó algún elemento de la comprobación, haga clic en Check Again antes de continuar.
Verificar el despliegue
El despliegue tarda varios minutos. Para supervisar el progreso y confirmar que fue exitoso:
Vaya a la página Change List para rastrear el estado del despliegue en tiempo real.
Una vez finalizado el despliegue, vaya a Application Management > Applications y abra su aplicación. En la página Application Overview, revise el estado de los pods.
Si todos los pods muestran un estado running, el despliegue se completó correctamente. Haga clic en el estado del pod para consultar Deployments, pods y detalles de configuración avanzada de cada instancia de la aplicación.
Pasos siguientes
Después de desplegar la aplicación, vincule una instancia de Classic Load Balancer (CLB) para exponerla:
Acceso desde Internet: Agregue una instancia de CLB orientada a Internet para que los usuarios externos puedan acceder a la aplicación a través de la red pública.
Acceso interno: Agregue una instancia de CLB orientada al interior para que otros servicios en la misma Virtual Private Cloud (VPC) puedan acceder a la aplicación.
Para obtener instrucciones, consulte Vincular instancias de CLB o Reutilizar una instancia de CLB.
Contáctenos
Si tiene preguntas o sugerencias sobre el uso de Container Service for Kubernetes (ACK) y clústeres Serverless Kubernetes en EDAS, puede unirse al grupo de DingTalk buscando el ID 23197114 en DingTalk.