Hinweis:

Bereitstellung in OCI Container Engine for Kubernetes über GitLab CI/CD

Einführung

In der sich schnell entwickelnden Landschaft von DevOps und der cloudnativen Entwicklung kann die Notwendigkeit einer optimierten Integration zwischen Versionskontrollsystemen und Containerorchestrierungsplattformen von entscheidender Bedeutung sein. Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) bietet eine robuste und skalierbare Lösung für die Verwaltung containerisierter Anwendungen. Einige Teams haben jedoch möglicherweise bestimmte Voreinstellungen und Anforderungen, die sie dazu bringen, nach Alternativen zu nativen DevOps-Services von Oracle Cloud Infrastructure (OCI) zu suchen.

GitLab ist eine vielseitige und umfassende Versionskontroll- und Continuous Integration- und Continuous Delivery/Deployment-(CI/CD-)Plattform, die nicht nur diese Voreinstellungen erfüllt, sondern auch eine überzeugende Alternative zu OCI DevOps-Services bietet. In diesem Tutorial werden Sie durch den Prozess der nahtlosen Verbindung von GitLab mit Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) geführt. Die in diesem Tutorial vorgestellte Integration ist nicht nur auf die Verwendung einer bereits vorhandenen GitLab-Lösung ausgerichtet, die möglicherweise vorhanden ist, sondern ermöglicht dem Team auch eine einheitliche Lösung für Versionskontrolle, kontinuierliche Integration und Kubernetes-Orchestrierung.

In den folgenden Abschnitten werden in diesem Tutorial zwei unterschiedliche Ansätze zur Durchführung dieser Integration vorgestellt.

Ziele

Voraussetzungen

Ansatz 1: Deployment in OKE aus GitLab CI/CD mit kurzlebigem generiertem Token

Aufgabe 1: OCI Compute-Instanz vorbereiten

Sie benötigen eine OCI Compute-Instanz für den GitLab-Runner, z.B. eine virtuelle Maschine (VM).

OCI-Compute-Instanz

  1. Installieren Sie kubectl auf der VM. Weitere Informationen finden Sie unter kubectl unter Linux installieren und einrichten.

  2. Installieren Sie die OCI-CLI, und erstellen Sie die Konfigurationsdatei für die Authentifizierung beim OCI-Mandanten (oder Sie werden bei der Ausführung der Clusterzugriffsschritte aufgefordert, sie zu erstellen). Weitere Informationen finden Sie unter OCI-CLI installieren und SDK- und CLI-Konfigurationsdatei.

  3. Zugriff auf das OKE-Cluster einrichten. Gehen Sie zu Auf das Cluster zugreifen, und klicken Sie in der OCI-Konsole auf Anweisungen für den lokalen Zugriff.

    OCI OKE-Zugriffscluster

  4. Installieren Sie den GitLab-Runner auf der VM. Führen Sie die folgenden Befehle als Root aus.

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

    Prüfen Sie, ob der GitLab-Runner funktioniert.

    gitlab-runner list
    

Aufgabe 2: GitLab Runner und Project konfigurieren

  1. Melden Sie sich bei GitLab an, gehen Sie zu Projekte, und erstellen Sie ein neues Projekt, oder verwenden Sie ein vorhandenes.

    GitLab Projekt

  2. Erstellen Sie einen Runner, oder verwenden Sie einen vorhandenen Runner. Um einen neuen Läufer zu erstellen, navigieren Sie zu Einstellungen, CI/CD, Läufer und Einblenden. Klicken Sie auf Neuer Projektläufer, und wählen Sie Plattform (z.B. Linux) aus. Fügen Sie ein Tag hinzu, das Sie später in der Datei .gitlab-ci.yaml verwenden werden, wenn Sie die Deployment-Pipeline konfigurieren, und klicken Sie dann auf Runner erstellen.

    GitLab-Runner

  3. Registrieren Sie den Runner bei der VM.

    Hinweis: Notieren Sie sich das Runner Authenticaton-Token, falls Sie es später benötigen.

    Läufer registrieren

    • Führen Sie den Befehl gitlab-runner register aus, und geben Sie die folgenden Informationen ein.

      • GitLab-Instanz-URL: Übernehmen Sie den Standardwert https://gitlab.com.
      • Runner-Name: Lokal in der Datei config.toml gültig. Beispiel: gitlab-oke-runner.
      • Eingabe eines Executors: shell. Mit diesem Wert wählen Sie, dass die CI/CD-Anweisungen auf dem lokalen Rechner ausgeführt werden, auf dem kubectl und die OCI-CLI installiert sind.

      Läufer registrieren

    • Sie können die Runner-Konfiguration in der Datei $HOME/.gitlab-runner/config.toml prüfen.

Aufgabe 3: CI/CD-Pipeline einrichten

  1. Klonen Sie das Projekt GitLab auf dem lokalen Rechner.

  2. Erstellen Sie eine Datei mit dem Namen .gitlab-ci.yaml im Projektverzeichnis, die Build- und Deployment-Anweisungen enthält. Stellen Sie sicher, dass Sie im Abschnitt "Bereitstellen" das Runner-Tag einschließen, das Sie beim Erstellen des Runners zuvor festgelegt haben.

    $ 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. Übertragen Sie die Änderungen an Ihr GitLab-Projekt, und gehen Sie zu Erstellen und Jobs, um zu prüfen, ob die Build- und Deployment-Pipelines ausgelöst wurden und erfolgreich ausgeführt wurden.

    CICD-Pipelines

    Job bereitstellen

    Die Pipeline stellte einen nginx-Pod im OKE-Cluster bereit.

    Hinweise: Notieren Sie sich Tag und Schlüssel. Wir wählen den Shell-Executor, der die lokalen Maschinenressourcen nutzt. Wenn Sie beispielsweise Docker auswählen, müssen Sie in Ihren Anweisungen ein Image angeben, das kubectl (und OCI-CLI für Ansatz 1) im Container installiert.

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

Ansatz 2: Bereitstellung in OKE über GitLab CI/CD mit einem Kubernetes-Serviceaccount

Wiederholen Sie die Aufgaben 1, 2 und 3 aus Ansatz 1, um die lokale VM einzurichten (Installieren Sie kubectl, OCI-CLI, GitLab Runner), registrieren Sie den Runner, und erstellen Sie die Pipelinedatei .gitlab-ci.yaml.

Aufgabe 1: Kubernetes-Serviceaccount erstellen und Token hinzufügen

Wenn Sie einen Kubernetes-Serviceaccount für das Deployment in OKE über GitLab verwenden, umfasst der Prozess die Authentifizierung von GitLab mit dem Kubernetes-Cluster mit den Zugangsdaten des Serviceaccounts.

Nächste Schritte

Mit diesen Aufgaben können Sie die CI/CD-Pipeline GitLab für das Deployment in OKE verwenden. Diese Aufgaben können als Referenz für andere CI/CD-Tools verwendet werden. Die Integration erleichtert die kontinuierliche Integration und Bereitstellung und ermöglicht eine schnelle Iteration und Bereitstellung von Anwendungen in OKE.

In diesem Tutorial verwenden die Anweisungen einen Shell-Executor zum Testen und Bearbeiten von direkten Szenarien. Alternativ können Sie sich für einen anderen Executor entscheiden, z.B. einen Docker-Executor. In diesem Fall wird die Pipeline in einem Docker-Container und nicht auf dem lokalen Rechner ausgeführt. Wenn Sie mit einem Docker-Executor ausgeführt werden, müssen Sie ein Docker-Image angeben, das die erforderlichen Utilitys enthält. Daher ist das Erstellen eines benutzerdefinierten Images möglicherweise von wesentlicher Bedeutung, da Tools wie kubectl und OCI-CLI verwendet werden, um bestimmte Pipelineanforderungen zu erfüllen.

Bestätigungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Außerdem können Sie education.oracle.com/learning-explorer besuchen, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.