Nota:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a Oracle Cloud Infrastructure Free Tier.
- Utiliza valores de ejemplo para las credenciales, el arrendamiento y los compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Despliegue su aplicación mediante el pipeline de integración y despliegue continuos de OCI DevOps en Kubernetes
Introducción
El servicio DevOps de Oracle Cloud Infrastructure (OCI) es una plataforma completa de integración y entrega continuas (CI/CD) que permite a los desarrolladores simplificar y automatizar su ciclo de vida de desarrollo de software. El servicio DevOps de OCI permite a los desarrolladores y operadores desarrollar, crear, probar y desplegar software de forma colaborativa.
Objetivos
- Descubra cómo utilizar el pipeline de compilación DevOps de OCI.
- Despliegue una aplicación NodeJs sencilla mediante un pipeline de integración y despliegue continuos en Kubernetes.
Requisitos
- Cree un tema para que el servicio DevOps pueda enviar mensajes a este tema de notificación para eventos importantes de las ejecuciones de pipeline.
- Cree y configure Container Engine for Kubernetes en el que se desplegará la aplicación.
- Cree un registro de contenedor de OCI para transferir la imagen de la aplicación.
- Cree un registro de artefactos para almacenar artefactos.
- Cree un grupo de logs para activar el registro para pipelines de compilación.
Tarea 1: Configurar el proyecto DevOps de OCI
-
Haga clic en Crear proyecto DevOps en Servicio DevOps. Introduzca el nombre del proyecto y seleccione el tema que ha creado anteriormente.
Después de crear el proyecto, verá la lista de opciones disponibles en el servicio OCI DevOps.
-
Haga clic en Repositorio de código e introduzca el nombre del repositorio. Configure el repositorio de código y cargue los archivos de aplicación en el repositorio.
-
Cree un archivo de sincronización para crear la imagen de Docker de la aplicación NodeJS y transfiéralo al repositorio de código.
FROM node:16 # Create app directory WORKDIR /usr/src/app # Install app dependencies COPY package*.json ./ RUN npm install # Bundle app source COPY . . EXPOSE 3000 CMD [ "node", "index.js" ]
-
Cree un archivo de especificación de compilación denominado
build_spec.yaml
. Transfiera este archivo al directorio raíz del repositorio.version: 0.1 component: build timeoutInSeconds: 6000 runAs: root shell: bash steps: - type: Command timeoutInSeconds: 1200 name: "Build container image" command: | d ${OCI_WORKSPACE_DIR}/node_app docker build -t myapp:v1.0 . outputArtifacts: - name: myapp-image type: DOCKER_IMAGE location: myapp:v1.0
-
Un pipeline de creación contiene las etapas que definen el proceso de creación para compilar, probar y ejecutar correctamente las aplicaciones de software antes del despliegue. Haga clic en Crear pipeline de compilación e introduzca un nombre.
-
Haga clic en Agregar una etapa en el pipeline de compilación creado y seleccione Gestionar etapa de compilación.
-
Introduzca el nombre de la etapa y agregue el repositorio de código principal.
-
Seleccione el tipo de conexión como repositorio de código de OCI y seleccione el repositorio de código en el que está presente el código de aplicación.
-
Haga clic en Seleccionar.
-
Haga clic en Agregar.
-
-
Haga clic en Agregar artefacto. Especifique el tipo como repositorio de imágenes de contenedor y proporcione una ruta de acceso totalmente cualificada del registro creado anteriormente.
-
Esta etapa transferirá el artefacto de imagen de aplicación al registro de contenedor. En el pipeline de creación creado previamente, agregue otra etapa de tipo Entregar artefactos. Haga clic en Seleccionar artefactos y seleccione el artefacto creado.
-
Proporcione Nombre de artefacto de resultado/configuración de compilación como imagen de myapp, porque hemos mencionado este nombre de artefacto en nuestro archivo
build_spec.yaml
. -
Haga clic en Agregar.
-
-
Cree el archivo
manifest.yaml
de la siguiente forma para desplegar el contenedor de aplicaciones en Kubernetes. Cargue este archivo de manifiesto en el registro de artefactos creado.kind: Namespace apiVersion: v1 metadata: name: default apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment namespace: default spec: selector: matchLabels: app: node-app replicas: 2 template: metadata: labels: app: node-app spec: containers: - name: node-app image: iad.ocir.io/orasenatdpltintegration03/demo-registry:latest imagePullPolicy: Always ports: - name: containerport containerPort: 8080 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: myapp-service namespace: default annotations: oci.oraclecloud.com/load-balancer-type: "lb" spec: type: LoadBalancer ports: - name: nodejs-port port: 80 targetPort: 3000 protocol: TCP selector: app: node-app
-
Haga clic en Crear entorno. Proporcione el nombre y en la página de detalles de entorno, seleccione el cluster de OKE en el que se desplegará la aplicación.
-
Agregue este manifiesto a los artefactos. Haga clic en Agregar artefacto y seleccione el tipo como manifiesto de Kubernetes. Seleccione el repositorio de registro de artefactos creado anteriormente. Seleccione el archivo de manifiesto como artefacto. Rellene el formulario como se muestra en la siguiente imagen.
-
Haga clic en Crear pipeline de despliegue y proporcione un nombre. Agregue el tipo de etapa Aplicar manifiesto a su cluster de Kubernetes. Seleccione el entorno y el artefacto creados en pasos anteriores.
-
Agregue la tercera etapa al pipeline de compilación creado. Seleccione el tipo de etapa como Despliegue de disparador. Proporcione el nombre de la etapa y seleccione el pipeline de despliegue creado.
-
Haga clic en Logs para iniciar el pipeline de compilación. Proporcione el grupo de logs en el que se almacenarán los logs y haga clic en Activar log.
-
El pipeline de compilación se muestra en la siguiente imagen. Haga clic en Iniciar ejecución manual para ejecutar el pipeline.
El pipeline se ha ejecutado correctamente. Se creará un equilibrador de carga porque hemos utilizado el servicio de tipo equilibrador de carga para acceder a la aplicación. Para acceder a la aplicación, puede acceder a la dirección IP pública del equilibrador de carga creado.
Enlaces relacionados
- Servicio DevOps
- DevOps Documentación del servicio
- Visión general de Container Engine for Kubernetes
- Visión General de Container Registry
- Visión general del registro de artefactos
- Visión general de Logging
- Gestión de temas y suscripciones
Confirmaciones
- Autor: Nikhil Khandelwal (arquitecto de nube empresarial)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre los productos, visite Oracle Help Center.
Deploy your application using OCI DevOps CI/CD pipeline on Kubernetes
F77637-01
February 2023
Copyright © 2023, Oracle and/or its affiliates.