A principios de esta semana, lanzamos Akamai App Platform, una extensión de un solo clic para Linode Kubernetes Engine (LKE) para añadir fácilmente herramientas centradas en el desarrollador y las operaciones, automatización y autoservicio para agilizar el ciclo de vida de su aplicación cuando utiliza Kubernetes. Akamai App Platform conecta muchas de las tecnologías que se encuentran en el panorama de la Cloud Native Computing Foundation (CNCF) de forma que proporciona un valor directo.
En esta entrada de blog le guiaremos a través de los pasos para aprovisionar un clúster LKE con Akamai App Platform y, a continuación, crear, implementar y exponer públicamente una aplicación.
Aprovisionamiento de un clúster Kubernetes con Akamai App Platform
Akamai App Platform ya está disponible en versión beta. Así que antes de empezar, primero asegúrese de iniciar sesión en su cuenta, o regístrese para obtener una cuenta de cloud computing de Akamai. Una vez que haya iniciado sesión, regístrese en el programa beta en la página Betas.
Ahora seleccione Kubernetes en el menú de navegación de la izquierda y seleccione Crear clúster. Aparecerá la página Crear un clúster Kubernetes. En la parte superior de la página, debe seleccionar las siguientes opciones:
- En el campo Etiqueta de clúster, indique un nombre para su clúster. El nombre debe ser único entre todos los clústeres de su cuenta. Con este nombre identificará su clúster en el panel Cloud Manager .
- Seleccione su región en el menú desplegable.
- Seleccione la versión de Kubernetes que desea desplegar en su clúster en el menú desplegable.
- En la sección Plataforma de aplicaciones para LKE, seleccione "Sí, activar Plataforma de aplicaciones para LKE".
- En la sección "Add Node Pools", seleccione los recursos de hardware para los nodos trabajadores Linode que componen su clúster LKE. Durante la fase beta, la App Platform para LKE requiere un pool de nodos con al menos 3 nodos trabajadores con un mínimo de 16 GB de memoria por nodo. Shared CPU no está soportado actualmente.
- Seleccione Añadir para incluir el grupo de nodos en su configuración.
- Una vez añadido un grupo de nodos a su configuración, aparecerá en el Resumen del clúster, en la parte derecha de Cloud Manager , donde se detallan los recursos de hardware y el coste mensual de su clúster.
- Cuando esté satisfecho con la configuración de su cluster, seleccione Crear Cluster en la parte derecha de la pantalla. Aparecerá la página de detalles de su clúster, y sus Node Pools se enumeran en esta página.
Ahora se creará el clúster de LKE y, una vez listo, se instalará App Platform. La instalación de App Platform para LKE tarda entre 10 y 15 minutos. Una vez finalizada la instalación, la URL del Portal Endpoint aparecerá en la sección App Platform para LKE de la página de detalles del clúster. El progreso de la instalación se comprobará cada 60 segundos. Cuando la instalación esté todavía en curso, no se mostrará la URL del Portal Endpoint. En su lugar aparecerá el mensaje "Instalación en curso".
Cuando la instalación tanto del clúster LKE como de la App Platform esté lista, haga clic en la URL proporcionada del Portal Endpoint:
Ahora verá la siguiente página de inicio de sesión:
Para iniciar sesión, primero tendrás que obtener las credenciales iniciales. En la página de detalles del clúster, navega hasta el menú de opciones de la elipsis y selecciona Descargar Kubeconfig. El archivo se guardará en la carpeta de descargas de su ordenador.
Abra un intérprete de comandos de terminal y guarde la ruta de su archivo Kubeconfig en la variable de entorno $KUBECONFIG. En el comando de ejemplo, el archivo Kubeconfig se encuentra en la carpeta Descargas, pero debe modificar esta línea con la ubicación de esta carpeta en su ordenador:
export KUBECONFIG=~/Downloads/kubeconfig.yaml
Ahora ejecute el siguiente comando para obtener el nombre de usuario:
kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.username}} | base64 -d
Y ejecute el siguiente comando para obtener la contraseña:
kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.password}} | base64 -d
Ahora utilice las credenciales obtenidas para iniciar sesión en la Consola y cambiar la contraseña inicial.
Configure Object Storage para App Platform
Cuando hayas iniciado sesión en la Consola, lo primero que tendrás que hacer es configurar Object Storage. Aparecerá un mensaje preguntándote si la App Platform debe configurar el almacenamiento de objetos por ti.
Esto no es obligatorio, pero se recomienda encarecidamente, ya que evitará errores por falta de espacio en disco al utilizar volúmenes de almacenamiento para aplicaciones integradas. El uso de Object Storage también tiene la ventaja de crear copias de seguridad de todas las bases de datos utilizadas por la plataforma y de todos los repositorios Git.
Si no desea que App Platform configure el almacenamiento de objetos por usted, seleccione Omitir por ahora. Tenga en cuenta que en este caso algunas funciones, como la creación de copias de seguridad de bases de datos, no estarán disponibles. Puede iniciar el Asistente en cualquier momento en la sección Mantenimiento.
- Haga clic en
Yes
. - Siga las instrucciones para crear un Token de Acceso Personal y asegúrese de seleccionar Lectura/Escritura para la categoría Object Storage . Copie el token de API.
- Pegue el código de acceso en el asistente y seleccione la región en la que deben crearse los buckets:
- A continuación, haga clic en
Submit
.
Ahora se crearán en su cuenta todos los buckets Object Storage necesarios y una clave de acceso, y la plataforma de aplicaciones se configurará para utilizar los buckets para almacenar copias de seguridad, registros, métricas, trazas e imágenes. No se almacenará el código de acceso personal proporcionado. Los buckets creados tendrán el valor lke<cluster-id>
prefijo.
Habilitar puerto
Ahora que el almacenamiento de objetos está configurado, podemos componer la plataforma de aplicaciones habilitando las aplicaciones necesarias. En este post queremos construir una imagen desde el código fuente por lo que tendremos que habilitar la App Harbor porque la función de autoservicio Build utiliza Harbor para almacenar todas las imágenes de contenedores.
- En el menú de la izquierda, haga clic en
Apps
. - Pasa el ratón por encima de la aplicación Harbor y haz clic en el botón de activación.
- En la parte superior izquierda, haga clic en
Deploy Changes
.
Harbor estará ahora instalado y configurado para su uso.
Crear un equipo
Lo siguiente que tienes que hacer es crear un equipo. Un equipo es un inquilino en la plataforma. Es como un espacio de nombres como servicio. Cada equipo puede tener sus propios miembros y los miembros tendrán acceso a la consola para utilizar todas las funciones de autoservicio. Hablaremos más sobre los Equipos en posts posteriores. Vamos a crear un Equipo:
- Asegúrese de seleccionar
platform
en elview
en la barra superior. - Haga clic en
Teams
en el menú de la izquierda. - Haga clic en
Create Team
. - Introduzca un nombre para el equipo. En los ejemplos usaremos el nombre de equipo demo. Tenga en cuenta que un nombre de Equipo tiene un máximo de 12 caracteres y el espacio de nombres creado tendrá el nombre
team-<team-name>
. - Omita todas las demás opciones y haga clic en
Submit
. - Haga clic en
Deploy Changes
en la parte superior izquierda de la Consola.
Crear un repositorio
Ahora que hemos creado un Equipo, podemos pasar a la función team
y seleccionamos nuestro Equipo recién creado. En la vista de equipo también verás una sección de Apps en el menú de la izquierda, igual que en la vista de plataforma. Las Apps en la vista de equipo son Apps que son compartidas por todos los Equipos en la Plataforma de Apps y Apps que son sólo (dedicadas) para el Equipo.
Todos los miembros del Team tendrán acceso a las Apps del Team. Como queremos construir una imagen, primero vamos a crear un repositorio con una app simple usando Nginx para servir una única página HTML:
- Haz clic en la aplicación Gitea. Gitea es un servicio Git autoalojado que se ejecuta en la App Platform y está listo para ser utilizado.
- Seleccione "Iniciar sesión con OpenID":
- Seleccione "+ Nuevo repositorio":
- Añade un nombre para el repositorio. Llamemos al repositorio
demo
- Seleccione
Make Repository Private
y seleccioneInitialize Repository
. - Haga clic en Crear repositorio.
Ahora vamos a añadir algo de código al repositorio. Crearemos una aplicación simple usando Nginx para servir una página HTML.
Añadir el archivo demo.html
con el siguiente contenido:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Sample Deployment</title>
<style>
body {
color: #ffffff;
background-color: #0099cc;
font-family: Arial, sans-serif;
font-size: 14px;
}
h1 {
font-size: 500%;
font-weight: normal;
margin-bottom: 0;
}
h2 {
font-size: 200%;
font-weight: normal;
margin-bottom: 0;
}
.centered-text {
text-align: center;
}
</style>
</head>
<body>
<div class="centered-text">
<h1>Welcome to the App Platform</h1>
</div>
</body>
</html>
Y añadir el archivo Dockerfile con el siguiente contenido:
FROM nginxinc/nginx-unprivileged:stable
COPY demo.html /usr/share/nginx/html/index.html
EXPOSE 8080
Crear, desplegar y exponer públicamente la aplicación
Ahora vamos a construir, desplegar y exponer públicamente la aplicación. Para ello, App Platform ofrece un conjunto de formularios de autoservicio. Puede utilizar el formulario de autoservicio Builds para crear imágenes a partir del código fuente, utilizar una de las plantillas Helm de inicio rápido del Catálogo para desplegar su aplicación y utilizar el formulario de autoservicio Services para exponer públicamente la aplicación.
Paso 1: Creación de la imagen
- Asegúrese de seleccionar
team
en elview
en la barra superior. Recuerda que has iniciado sesión como administrador de la plataforma y que puedes ver tanto la vista de la plataforma como la del equipo. - Haga clic en
Builds
en el menú de la izquierda. - Haga clic en
Create Build
. - Añade un nombre a la compilación. Llamemos a esta compilación
demo
. - Usa el modo (por defecto) Docker Build y añade la URL del repositorio Git que acabamos de crear. En la próxima versión de App Platform podrás seleccionar la URL en función de los repositorios disponibles.
- Haga clic en
Submit
. - Haga clic en
Deploy Changes
en la parte superior de la barra de menú de la izquierda.
La plataforma de aplicaciones creará y ejecutará una canalización Tekton para clonar la aplicación desde el repositorio, crear la imagen y enviarla a Harbor. La imagen se enviará al registro privado de Harbor, al que solo podrán acceder los miembros del equipo.
Ahora puede seguir el estado de la compilación abriendo el panel de Tekton en la sección Aplicaciones (en la vista de equipo). También puedes hacer clic en Builds en el menú de la izquierda. Allí verás la compilación creada por el Proyecto. Haga clic en el enlace PipelineRun para ver el estado de la construcción.
Cuando el pipeline esté listo, podrás ver la imagen en Harbor. Go a la sección Apps en el menú de la izquierda y haz clic en Harbor. Recuerda que has iniciado sesión como administrador de la plataforma y verás todos los proyectos creados por la App Platform. Pulsa sobre el proyecto del equipo que hemos creado. Aquí verás un repositorio llamado team-demo/demo
.
Paso 2: Creación de una carga de trabajo para desplegar nuestra imagen
- Primero vaya a la lista de Builds y copie el nombre del repositorio de la imagen:
- Ahora haga clic en
Catalog
en el menú de la izquierda. - En el Catálogo, haga clic en el botón
Quickstart-K8s-Deployment
gráfico. - Haga clic en la pestaña Valores.
- Añada un nombre a la carga de trabajo. Sigamos con el nombre
demo
. - En el
Chart values fil
e establece elimage.repository
al nombre del registro que hemos añadido a nuestro portapapeles y utilizarlatest
para laimage.tag
. - Haga clic en
Submit
en la parte inferior de los valores del gráfico. - Haga clic en
Deploy Changes
en la parte superior de la barra de menú de la izquierda
La App Platform creará ahora un Argo CD ApplicationSet para desplegar la aplicación. Tenga en cuenta que los valores y el gráfico se almacenan en repositorios Git separados.
Para ver la aplicación de demostración en el CD de Argo, haga clic en Cargas de trabajo en el menú de la izquierda. Allí verá la carga de trabajo creada por el Proyecto. Haga clic en el enlace Aplicación para ver el estado de la carga de trabajo.
Paso 3: Exponer públicamente la aplicación
Para ver nuestra aplicación en vivo hay que hacer algunas cosas. La App Platform aprovecha una arquitectura de entrada avanzada utilizando Nginx Ingress e Istio. Para exponer la aplicación necesitaremos crear un Ingress y un Istio VirtualService. Afortunadamente la App Platform automatiza todo esto.
- Ahora haga clic en
Services
en el menú. - Haga clic en
Create Service
. - En la lista desplegable, seleccione la opción
demo
servicio - En
Exposure
haga clic enExternal
. - Haga clic en
Submit
y luegoDeploy Changes
.
En la lista de servicios verás el servicio que acabamos de crear y la URL utilizada para publicar el servicio. Haz clic en la URL.
Recapitulemos
En este post hemos aprovisionado un clúster LKE y habilitado la App Platform. A continuación, configuramos el almacenamiento de objetos, habilitamos Harbor App, creamos un equipo y creamos un repositorio de código. A continuación, utilizamos los formularios de autoservicio en la App Platform para construir, desplegar y exponer públicamente una aplicación.
Después de instalar App Platform, puede configurar el almacenamiento de objetos para que todas las aplicaciones integradas en App Platform puedan utilizar esta configuración. Se acabaron las pruebas y errores para configurar el almacenamiento de objetos para aplicaciones como Grafana Loki, Thanos, Harbor y Tempo. Con la Plataforma App en Akamai, todo esto se hace por usted.
El uso de Teams para multi-tenancy permite que varios grupos de usuarios trabajen de forma independiente y que compartan las mismas capacidades de infraestructura y plataforma. Los usuarios pueden utilizar los formularios de autoservicio para crear, desplegar y exponer sus aplicaciones en cuestión de minutos.
Tenga en cuenta que esto es sólo la punta del iceberg. App Platform tiene mucho más que ofrecer. Pronto publicaremos más artículos para profundizar en App Platform y mostrarte cómo crear secretos, configurar políticas de red, trabajar con políticas de seguridad y utilizar las capacidades de la plataforma para CI/CD, observabilidad y seguridad.
Comentarios