Lernen Sie 7 Schritte, um schnell eine kontinuierliche GitLab-Integrationsumgebung zu erstellen

Kopf picture.jpg

Autor | Cuncheng Alibaba Cloud Elastic Computing Team
Quelle | Serverloses offizielles Konto, zusammengestellt aus "Serverless Technology Open Course"

Einführung : In diesem Abschnitt des Kurses erfahren Sie, wie Sie schnell eine kontinuierliche GitLab-Integrationsumgebung erstellen, die auf ASK-Diensten (Alibaba Cloud Serverless Kubernetes) basiert.

Fragen Sie nach Einführung

1.PNG

Was ist ASK? ASK ist ein serverloser Kubernetes-Containerservice, der von Alibaba Cloud gestartet wird. Im Vergleich zum herkömmlichen Kubernetes-Dienst besteht das größte Merkmal von ASK darin, dass über virtuelle Knoten eine Verbindung zum Kubernetes-Cluster hergestellt wird und der Kubernetes-Masterknoten auch vollständig vom Alibaba Cloud Container Service gehostet wird. Daher müssen Benutzer im gesamten ASK-Cluster keine realen Knoten verwalten und betreiben, sondern müssen sich nur um die Pod-Ressourcen kümmern. Der Pod in ASK wird von Alibaba Cloud Elastic Container Instance ECI gehostet.

Die Hauptvorteile von ASK sind folgende:

  • Verringern Sie den Schwellenwert für Benutzer, die Kubernetes verwenden möchten, ohne Knotenknoten zu verwalten.
  • Keine Notwendigkeit, die Planung der Knotenkapazität in Betracht zu ziehen.
  • On-Demand-Abrechnung basierend auf Pod;
  • Ausfallzeiten haben nur geringe Auswirkungen und sind auf Pod-Ebene.

Gleichzeitig sind die wichtigsten anwendbaren Szenarien von ASK:

  • Flexibilität des Online-Geschäfts (Video-Live-Übertragung, Online-Bildung);
  • Big Data Computing (Spark);
  • Zeitgesteuerte Aufgabe
  • CI / CD kontinuierliche Integration.

Vorteile von GitLab CI auf ASK

Apropos CI / CD: Die beiden bekanntesten Tools sind Jenkins und GitLab CI. Mit der Popularität der Devops-Rolle setzen immer mehr Unternehmen GitLab CI als kontinuierliches Integrationstool ein. Lassen Sie mich Ihnen vorstellen Laden Sie GitLab CI auf ASK herunter. gitlab-running ist im ASK-Cluster als Pod registriert und jede CI / CD-Stufe entspricht einem Pod.

2.png

Dies hat folgende Vorteile:

  • Hohe Serviceverfügbarkeit (Bereitstellung + PVC);
  • K8s Master- und Node-Knoten müssen nicht gewartet werden. Ohne Konstruktionsaufgaben muss nur ein Pod (Gitlab-Runner) ausgeführt werden.
  • Lösen Sie eine Build-Aufgabe aus, starten Sie einen Pod und laden Sie ihn bei Bedarf auf.
  • Ausfallzeiten wirken sich nur auf den Pod als Einheit aus.

Praktische Demonstration

Als Nächstes werde ich Ihnen zeigen, wie Sie Gitlab-Runner im ASK-Cluster der Alibaba Cloud bereitstellen und Java-Anwendungen über die Gitlab-CICD-Pipeline im ASK-Cluster bereitstellen.

Die wichtigsten Wissenspunkte sind:

  • Speichern Sie die Konfiguration von Gitlab Runner und Executor über configMap.
  • Speichern Sie die Zugriffsdaten des ASK-Clusters und den Schlüssel des Mirror Warehouse über das Geheimnis.
  • Cache Runner Cache und Maven Warehouse über PVC;
  • Cache-Container-Bilder über imageCache.

Alle in dieser Lektion enthaltenen Konfigurationsdateien (yaml) wurden auf github hochgeladen, damit jeder sie herunterladen kann [ Download-Link ].

Beginnen wir mit der Demonstration. Für die Videodemonstration klicken Sie bitte auf [ Link ansehen ].

1. Bereiten Sie den ASK-Cluster vor

3.png

  • Nach dem Erstellen des Clusters befindet sich in den Basisinformationen die öffentliche Netzwerkverbindungsadresse des API-Servers

4.png

  • Die Verbindungsinformationen enthalten Anmeldeinformationen für den ASK-Clusterzugriff

5.png

2. Bereiten Sie PV / PVC vor

Bereiten Sie zwei nas-Festplatten vor, eine für den Gitlab-Runner-Cache und eine für das Maven-Warehouse. Ersetzen Sie die Adresse und den Pfad des nas-Servers selbst

kubectl apply -f mvn-pv.yaml
kubectl apply -f mvn-pvc.yaml
kubectl apply -f nas-pv.yaml
kubectl apply -f nas-pvc.yaml

3. Bereite das Geheimnis vor

  • Kopieren Sie die öffentlichen und privaten Schlüssel des Zertifikats in kubeconfig nach secret, secret.yaml
kubectl apply -f secret.yaml
  • Die Authentifizierungsinformationen der Docker-Registrierung, ECI, unterstützen das kennwortfreie Ziehen, aber das Push-Docker-Image muss noch verwendet werden
kubectl create secret docker-registry registry-auth-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=${xxx} --docker-password=${xxx}
  • Um das generierte Geheimnis anzuzeigen, können Sie den folgenden Befehl verwenden
kubectl get secret registry-auth-secret --output=yaml

4. Bereiten Sie ConfigMap vor

Kopieren Sie die URL und das Token des Gitlab-Läufers und die API-Serveradresse des ASK-Clusters in config.yaml

kubectl apply -f config-map.yaml

5. Bereiten Sie imageCache vor (optional, speichern Sie die Bildabrufzeit).

Derzeit installiert AS K standardmäßig imagecache-crd. Sie können den folgenden Befehl verwenden, um abzufragen. Wenn nicht, können Sie es selbst installieren

# 查看image cache crd 是否安转
kubectl get crd
# 安装image cache crd
kubectl apply -f imagecache-crd.yaml
# 制作imagecache
kubectl apply -f imagecache.yaml

6. Stellen Sie den Gitlab Runner bereit

kubectl apply -f gitlab-runner-deployment.yaml

6.png

7. Führen Sie eine einfache CI-Aufgabe aus

7.png

Die .gitlab-ci.yml in git repo ähnelt Jenkinsfile und definiert den Workflow der Build-Task. Wir ändern die Datei src / main / webapp / index.jsp im Demo-Projekt und geben dann git commit -m "Änderungsindexinformationen" zum Senden ein. Die Pipeline-Aufgabe in gitlab wird ausgelöst, und der gesamte Prozess umfasst das Kompilieren, Packen und Bereitstellen.

8.png

9.png

Kostenvergleich

Der Kostenvergleich zwischen der Verwendung von ASK und einem Prepaid-ECS:

10.png

Aus der obigen Kostenberechnung geht hervor, dass die Verwendung von ASK + ECI bei weniger als 126 CI / CD-Aufgaben pro Tag kostengünstiger ist als der Kauf eines ECS mit einem monatlichen Abonnement. Sie zahlen zwar gerne auf Abruf, senken aber auch die Betriebs- und Wartungskosten. Noch wichtiger ist, dass Sie sich keine Sorgen über die Erweiterung von Knotenknoten machen müssen, wenn der Geschäftsumfang wächst und die Anzahl der CI / CD-Aufgaben stark zunimmt. Die ASK + ECI-Lösung kann als maßgeschneiderter Standard für kontinuierliche CI / CD-Integrationsszenarien betrachtet werden.

Das offizielle Konto ohne Server veröffentlicht die neuesten Informationen zur Technologie ohne Server, sammelt den umfassendsten Inhalt der Technologie ohne Server, achtet auf den Trend ohne Server und berücksichtigt mehr die Verwirrung und Probleme, auf die Sie in Ihrer Praxis stoßen.

Ich denke du magst

Origin blog.51cto.com/14902238/2562256
Empfohlen
Rangfolge