Nota

Distribuisci in OCI Container Engine for Kubernetes da GitLab CI/CD

Introduzione

Nello scenario in rapida evoluzione di DevOps e dello sviluppo cloud nativo, può essere fondamentale semplificare l'integrazione tra i sistemi di controllo delle versioni e le piattaforme di orchestrazione dei container. Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) offre una soluzione solida e scalabile per la gestione delle applicazioni containerizzate. Tuttavia, alcuni team possono avere preferenze e requisiti specifici che li portano a cercare alternative ai servizi DevOps nativi di Oracle Cloud Infrastructure (OCI).

GitLab è una piattaforma versatile e completa di controllo delle versioni e integrazione continua e distribuzione/distribuzione continua (CI/CD) che non solo soddisfa queste preferenze, ma fornisce anche un'alternativa convincente ai servizi DevOps OCI. In questa esercitazione ti guideremo attraverso il processo di connessione trasparente di GitLab a Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE). L'integrazione presentata in questa esercitazione non solo si allinea all'utilizzo di una soluzione GitLab già esistente che potrebbe essere disponibile, ma fornisce anche al team una soluzione unificata per il controllo delle versioni, l'integrazione continua e l'orchestrazione Kubernetes.

Nelle sezioni successive, questo tutorial introduce due approcci distinti volti a fare questa integrazione.

Obiettivi

Prerequisiti

Approccio 1: distribuzione in OKE da GitLab CI/CD utilizzando il token generato di breve durata

Task 1: Prepara istanza di OCI Compute

Avrai bisogno di un'istanza di OCI Compute per il canale di esecuzione GitLab, ad esempio una virtual machine (VM).

istanza di OCI Compute

  1. Installare kubectl sulla VM. Per maggiori informazioni, vedere Install and Set Up kubectl on Linux.

  2. Installare l'interfaccia CLI OCI e creare il file di configurazione per l'autenticazione nella tenancy OCI. In alternativa, verrà richiesto di crearlo durante l'esecuzione dei passi di accesso al cluster. Per ulteriori informazioni, vedere Installazione dell'interfaccia CLI OCI e File di configurazione SDK e CLI.

  3. Impostare l'accesso al cluster OKE. Andare a Accedi al cluster e fare clic sulle istruzioni Accesso locale dalla console OCI.

    Cluster di accesso OKE OCI

  4. Installare GitLab Runner sulla VM. Eseguire i seguenti comandi come utente root.

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

    Controllare il funzionamento del canale GitLab.

    gitlab-runner list
    

Task 2: configurare il programma di esecuzione e il progetto GitLab

  1. Eseguire il login a GitLab, andare a Progetti e creare un nuovo progetto oppure utilizzarne uno esistente.

    GitLab Progetto

  2. Creare un canale di alimentazione o usarne uno esistente. Per creare un nuovo canale di alimentazione, andare a Impostazioni, CI/CD, Eseguimenti ed Espandi. Fare clic su Nuovo motore di esecuzione progetto e selezionare Piattaforma (ad esempio: Linux), aggiungere un tag che verrà utilizzato in seguito nel file .gitlab-ci.yaml durante la configurazione della pipeline di distribuzione, quindi fare clic su Crea canale di esecuzione.

    GitLab Runner

  3. Registrare il canale di esecuzione con VM.

    Nota: prendere nota del token di autenticazione del corridore nel caso in cui sia necessario in un secondo momento.

    Registra il corridore

    • Eseguire il comando gitlab-runner register e immettere le informazioni riportate di seguito.

      • GitLab URL istanza: accettare il valore predefinito https://gitlab.com.
      • Nome corridore: valido in locale nel file config.toml. Ad esempio: gitlab-oke-runner.
      • Immettere un esecutore: shell, con questo valore, si sceglie che le istruzioni CI/CD vengano eseguite sul computer locale in cui sono installati kubectl e CLI OCI.

      Registra il corridore

    • È possibile rivedere la configurazione del canale di esecuzione nel file $HOME/.gitlab-runner/config.toml.

Task 3: Impostazione della pipeline CI/CD

  1. Duplicare il progetto GitLab nel computer locale.

  2. Creare un file denominato .gitlab-ci.yaml nella directory del progetto, contenente le istruzioni di build e distribuzione. Nella sezione Distribuzione, assicurarsi di includere la tag del canale di alimentazione impostata durante la creazione del canale di alimentazione in precedenza.

    $ 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. Eseguire il PUSH delle modifiche al progetto GitLab e passare a Crea e Job per verificare che le pipeline di build e distribuzione vengano attivate e eseguite correttamente.

    Pipeline CICD

    Distribuisci job

    La pipeline ha distribuito un pod nginx nel cluster OKE.

    Note: prendere nota della tag e della chiave. Sceglieremo l'esecutore shell che utilizzerà le risorse del computer locale. In caso contrario, se scegli Docker, ad esempio, devi fornire nelle istruzioni un'immagine che installa kubectl (e l'interfaccia CLI OCI per l'approccio 1) nel container.

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

Approccio 2: eseguire la distribuzione in OKE da GitLab CI/CD utilizzando un account di servizio Kubernetes

Ripetere i task 1,2 e 3 dall'approccio 1 per impostare la VM locale (installare kubectl, CLI OCI, GitLab Runner), registrare il canale di esecuzione, creare il file della pipeline .gitlab-ci.yaml.

Task 1: creare un account di servizio Kubernetes e aggiungerne il token

Quando si utilizza un account di servizio Kubernetes per la distribuzione in OKE da GitLab, il processo prevede l'autenticazione di GitLab con il cluster Kubernetes utilizzando le credenziali dell'account di servizio.

Passi successivi

Utilizzando questi task è possibile utilizzare la pipeline CI/CD GitLab per la distribuzione in OKE. Queste attività possono essere prese come riferimento per altri strumenti CI/CD. L'integrazione facilita l'integrazione e la distribuzione continue, consentendo l'iterazione e la distribuzione rapide delle applicazioni in OKE.

In questa esercitazione le istruzioni utilizzano un esecutore shell per il test e la gestione di scenari immediati. In alternativa, è possibile scegliere un esecutore diverso, ad esempio un esecutore Docker. In tal caso, la pipeline viene eseguita all'interno di un container Docker anziché sul computer locale. L'esecuzione con un esecutore Docker richiederà di specificare un'immagine Docker che includa le utility necessarie. Di conseguenza, la creazione di un'immagine personalizzata può essere essenziale, incorporando strumenti come kubectl e l'interfaccia CLI OCI per soddisfare requisiti specifici della pipeline.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.