Note:

Despliegue en OCI Container Engine for Kubernetes desde GitLab CI/CD

Introducción

En el panorama en rápida evolución de DevOps y el desarrollo nativo en la nube, la necesidad de una integración optimizada entre los sistemas de control de versiones y las plataformas de orquestación de contenedores puede ser fundamental. Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) ofrece una solución sólida y escalable para gestionar aplicaciones en contenedores. Sin embargo, algunos equipos pueden tener preferencias y requisitos específicos que les lleven a buscar alternativas a los servicios DevOps nativos de Oracle Cloud Infrastructure (OCI).

GitLab es una plataforma versátil y completa de control de versiones e integración continua y despliegue/entrega continuos (CI/CD) que no solo cumple estas preferencias, sino que también proporciona una alternativa atractiva a los servicios DevOps de OCI. En este tutorial, le guiaremos por el proceso de conexión perfecta de GitLab con Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE). La integración presentada en este tutorial no solo se alinea para utilizar una solución GitLab ya existente que puede tener en su lugar, sino que también capacita al equipo con una solución unificada para el control de versiones, la integración continua y la orquestación de Kubernetes.

En las secciones siguientes, este tutorial presenta dos enfoques distintos para realizar esta integración.

Objetivos

Requisitos

Enfoque 1: Despliegue en OKE desde GitLab CI/CD mediante un token generado de corta duración

Tarea 1: Preparación de la instancia informática de OCI

Necesitará una instancia de OCI Compute para el ejecutor GitLab, por ejemplo, una máquina virtual (VM).

Instancia informática de OCI

  1. Instale kubectl en la máquina virtual. Para obtener más información, consulte Install and Set Up kubectl on Linux.

  2. Instale la CLI de OCI y cree el archivo de configuración para la autenticación en el arrendamiento de OCI (o se le pedirá que lo cree al ejecutar los pasos de acceso al cluster). Para obtener más información, consulte Instalación de la CLI de OCI y Archivo de configuración de SDK y CLI.

  3. Configure el acceso al cluster de OKE. Vaya a Acceso al cluster y haga clic en las instrucciones de Acceso local de la consola de OCI.

    Cluster de acceso de OCI OKE

  4. Instale el ejecutor GitLab en la VM. Ejecute los siguientes comandos como raíz.

    sudo curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
    sudo yum install -y gitlab-runner
    

    Compruebe que el ejecutor GitLab funciona.

    gitlab-runner list
    

Tarea 2: Configuración de GitLab Runner y Project

  1. Inicie sesión en GitLab, vaya a Proyectos y cree un nuevo proyecto o utilice uno existente.

    GitLab Proyecto

  2. Cree un programa de ejecución o utilice uno existente. Para crear un nuevo programa de ejecución, vaya a Configuración, CI/CD, Ejecutores y Ampliar. Haga clic en Nuevo ejecutor de proyecto y seleccione Plataforma (por ejemplo: Linux), agregue una Etiqueta que utilizaremos más adelante en el archivo .gitlab-ci.yaml al configurar el pipeline de despliegue y, a continuación, haga clic en Crear ejecutor.

    GitLab Programa de ejecución

  3. Registre el programa de ejecución con VM.

    Nota: Anote el token de autenticación del ejecutor en caso de que lo necesite más tarde.

    Registrar el corredor

    • Ejecute el comando gitlab-runner register e introduzca la siguiente información.

      • URL de instancia GitLab: acepte el valor por defecto https://gitlab.com.
      • Nombre del ejecutor: válido localmente en el archivo config.toml. Por ejemplo: gitlab-oke-runner.
      • Introducir un ejecutor: shell, con este valor, puede elegir que las instrucciones de integración y despliegue continuos se ejecuten en la máquina local en la que están instalados kubectl y la CLI de OCI.

      Registrar el corredor

    • Puede revisar la configuración del programa de ejecución en el archivo $HOME/.gitlab-runner/config.toml.

Tarea 3: Configuración del pipeline de integración y despliegue continuos

  1. Clone el proyecto GitLab en la máquina local.

  2. Cree un archivo denominado .gitlab-ci.yaml en el directorio del proyecto, que contenga las instrucciones de creación y despliegue. En la sección Deploy, asegúrese de incluir la etiqueta runner que ha definido al crear el runner antes.

    $ cat ~/demo-oke/.gitlab-ci.yml
    stages:
      - build
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Building the ServiceAccount project..."
    
    deploy_job:
      stage: deploy
      script:
        - echo "Deploying an nginx pod to the OKE cluster"
        - kubectl run nginx --image=nginx
      tags:
        - shell-executor
    
  3. Transfiera los cambios al proyecto GitLab y vaya a Creación y Trabajos para comprobar que los pipelines de compilación y despliegue se disparan y ejecutan correctamente.

    Pipelines CICD

    Desplegar Trabajo

    El pipeline desplegó un pod nginx en el cluster de OKE.

    Notas: anote la etiqueta y la clave. Elegiremos el ejecutor de shell que utilizará los recursos de la máquina local. De lo contrario, si selecciona Docker, por ejemplo, debe proporcionar en sus instrucciones una imagen que instale kubectl (y la CLI de OCI para el enfoque 1) en el contenedor.

    $ kubectl get pods
    NAME    READY   STATUS    RESTARTS   AGE
    nginx   1/1     Running   0          47h
    

Enfoque 2: Despliegue en OKE desde GitLab CI/CD mediante una cuenta de servicio de Kubernetes

Repita las tareas 1,2 y 3 del enfoque 1 para configurar la máquina virtual local (instalar kubectl, la CLI de OCI, el ejecutor GitLab), registrar el ejecutor y crear el archivo de pipeline .gitlab-ci.yaml.

Tarea 1: Creación de una cuenta de servicio de Kubernetes y adición de su token

Al utilizar una cuenta de servicio de Kubernetes para desplegar en OKE desde GitLab, el proceso implica la autenticación de GitLab con el cluster de Kubernetes mediante las credenciales de la cuenta de servicio.

Pasos Siguientes

Con estas tareas puede utilizar el pipeline de integración y despliegue continuos GitLab para desplegarlo en OKE. Estas tareas se pueden tomar como referencia para otras herramientas de integración y despliegue continuos. La integración facilita la integración y entrega continuas, lo que permite una iteración y el despliegue rápidos de aplicaciones en OKE.

En este tutorial, las instrucciones emplean un ejecutor de shell para probar y manejar escenarios directos. También puede optar por un ejecutor diferente, por ejemplo, un ejecutor de Docker. En este caso, el pipeline se ejecuta en un contenedor de Docker en lugar de en la máquina local. Si se ejecuta con un ejecutor de Docker, deberá especificar una imagen de Docker que incluya las utilidades necesarias. Por lo tanto, la creación de una imagen personalizada puede ser esencial, ya que puede incorporar herramientas como kubectl y OCI CLI para cumplir requisitos de pipeline específicos.

Acuses de recibo

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 Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.