„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Richten Sie JFrog Artifactory auf Kubernetes ein und verbinden Sie die Spring Boot-Anwendung

Richten Sie JFrog Artifactory auf Kubernetes ein und verbinden Sie die Spring Boot-Anwendung

Veröffentlicht am 08.11.2024
Durchsuche:565

Dieses Dokument bietet Anleitungen zum Einrichten von JFrog Artifactory in einem Kubernetes-Cluster. Es dient Entwicklern als grundlegendes Tutorial zur Installation und Konfiguration von JFrog in einer Kubernetes-Umgebung, die auf einem lokalen Computer ausgeführt wird.

Richten Sie eine lokale Umgebung ein, um DevOps-Ressourcen aufzubauen

Ich verwende Docker-Container, um Arbeitsumgebungen für mehrere Anwendungen einzurichten (Setup-Umgebung). Dieser Ansatz gewährleistet vollständig isolierte und wartbare Umgebungen für die Anwendungsentwicklung, sodass wir diese Umgebungen einfach starten und beenden können. Unten finden Sie den Docker-Befehl zum Erstellen der Umgebung.

docker run -it --name test-jfrog-envornment-box -v ${HOME}/root/ -v ${PWD}/work -w /work --net host developerhelperhub/kub-terr-work-env-box sh

Der Container enthält Docker, Kubectl, Helm, Terraform, Kind, Git

Richten Sie Jenkins im Kubernetes-Cluster ein

Ich habe alle Terraform-Skripte erstellt, die im GitHub-Repository verfügbar sind. Sie können Jenkins herunterladen und auf einem Kubernetes-Cluster einrichten, der lokal in einem Docker-Container ausgeführt wird.

Klonen Sie das Repository auf Ihren lokalen Linux-Computer, um loszulegen.

git clone https://github.com/developerhelperhub/kuberentes-help.git
cd kuberentes-help/kubenretes/tutorials/sections/0009/

Richten Sie den Kubernetes-Cluster ein in einem Docker-Container mit Kind und nennen Sie den Cluster „devops-jfrog-cluster-control-plane“. Dieser Cluster unterstützt Eingang und stellt die Ports 80 und 443 bereit, um den Zugriff auf Dienste zu ermöglichen von außerhalb des Clusters.

Cluster-Create-Terraform-Skript verfügbar unter Art-Ordner

cd kind
terraform init #Install the required providers to set up the necessary resources.
terraform plan #Verify the resources that will be installed on the system.
terraform apply #Install resources on the system

Folgender Befehl überprüft den Cluster

kubectl cluster-info
kubectl get nodes -o wide

Nginx-Ingress-Controller auf Kubernetes-Cluster einrichten
Der NGINX Ingress Controller zur Verwaltung des externen Zugriffs auf Dienste in einem Kubernetes-Cluster. Es fungiert als Einstiegspunkt für Ihre Kubernetes-Anwendungen und leitet externen HTTP- und HTTPS-Verkehr an die entsprechenden Dienste innerhalb des Clusters weiter.

Folgender Befehl installiert den Ingress-Controller auf dem Cluster

Ingress-Erstellungsskript verfügbar im Ordner „ingress“

cd ingress
kubectl apply -f ingress-nginx.yaml

Folgender Befehl überprüft den Nginx-Ingress-Controller

kubectl get -n ingress-nginx pod

Ausgabe

NAME                                       READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-5mt2k       0/1     Completed   0          53s
ingress-nginx-admission-patch-w2rlk        0/1     Completed   0          53s
ingress-nginx-controller-d45d995d4-gl65h   1/1     Running     0          53s

JFrog Artifactory OSS einrichten (Open Source)

Fügen Sie das JFrog Artifactory OSS Community Helm-Repository hinzu: Zunächst müssen Sie das JFrog Artifactory OSS Community Helm-Repository zu Ihrem Helm-Client hinzufügen:

Hinweis: JFrog-Erstellungsskripte sind im Ordner „jfrog“ verfügbar

helm repo add jfrog https://charts.jfrog.io
helm repo update

Der folgende Befehl kann verwendet werden, um die App-Version und Diagrammversion der im Cluster installierten Dienste zu überprüfen:

helm search repo  artifactory-oss

In diesem Beispiel installiere ich die Warenkorbversion „107.90.8“ und die App-Version „7.90.8“

NAME                         CHART VERSION        APP VERSION        DESCRIPTION
jfrog/artifactory-oss        107.90.8             7.90.8             JFrog Artifactory OSS

Erstellen Sie eine Helm-Werte-YAML-Datei mit dem Namen helm-value.yaml, die zum Konfigurieren des JFrog Artifactory OSS-Dienstes verwendet wird. Diese Konfigurationsdatei wird von Helm verwendet, um den Dienst im Cluster zu installieren.

artifactory:
    postgresql:
    postgresqlPassword: postgres_password
    nginx:
    enabled: false
    ingress:
    enabled: false

In der obigen Konfiguration habe ich die folgenden Punkte konfiguriert:

  • Helm verwendet die Standard-PostgreSQL-Datenbank, in der ich das Datenbankkennwort angegeben habe.
  • NGINX- und Ingress-Ressourcen sind deaktiviert.

Der folgende Helm-Befehl wird verwendet, um Artifactory im Cluster zu installieren. Es erstellt die erforderlichen Ressourcen im Cluster, einschließlich eines Namespace namens „artifactory-oss“, und installiert alle Ressourcen in diesem Namespace.

helm install artifactory-oss -f helm-value.yaml jfrog/artifactory-oss --namespace artifactory-oss --create-namespace

Helm-Diagrammwerte: https://github.com/jfrog/charts/blob/master/stable/artifactory-oss/values.yaml

Wir können überprüfen, ob alle Ressourcen im Namespace „artifactory-oss“ installiert wurden. Die Benutzeroberfläche des Artifactory-Dienstes wird auf Port 8082 ausgeführt, während Artifactory selbst auf Port 8081 ausgeführt wird.

kubectl get -n artifactory-oss all

NAME                               READY   STATUS    RESTARTS   AGE
pod/artifactory-oss-0              0/7     Running   0          3m19s
pod/artifactory-oss-postgresql-0   1/1     Running   0          3m19s

NAME                                          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
service/artifactory-oss                       ClusterIP   10.96.170.63           8082/TCP,8025/TCP,8081/TCP   3m19s
service/artifactory-oss-postgresql            ClusterIP   10.96.95.36            5432/TCP                     3m19s
service/artifactory-oss-postgresql-headless   ClusterIP   None                   5432/TCP                     3m19s

NAME                                          READY   AGE
statefulset.apps/artifactory-oss              0/1     3m19s
statefulset.apps/artifactory-oss-postgresql   1/1     3m19s

Wir müssen eine Ingress-Ressource erstellen, um Anfragen an den Artifactory-Dienst weiterzuleiten. Fügen Sie die folgende Konfiguration zur Datei ingress-resource.yaml hinzu.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
    name: jfrog-ingress
    namespace: artifactory-oss
    annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
spec:
    ingressClassName: nginx
    rules:
    - host: jfrog.artifactory.devops.myapp.com
        http:
        paths:
            - path: /
            pathType: ImplementationSpecific
            backend:
                service:
                name: artifactory-oss
                port:
                    number: 8082

Wir müssen Proxy-Body-Size=0 konfigurieren. Diese Einstellung weist Ingress an, beim Hochladen von Dateien auf Artifactory keine Begrenzung der Dateigröße festzulegen.

Führen Sie den folgenden Befehl aus, um den Ingress im Cluster anzuwenden

kubectl apply -f ingress-resource.yaml

Überprüfen Sie, ob die IP-Adresse festgelegt ist:

kubectl -n artifactory-oss get ingress

NAME            CLASS   HOSTS                                ADDRESS     PORTS   AGE
jfrog-ingress   nginx   jfrog.artifactory.devops.myapp.com   localhost   80      2m53s

Fügen Sie unsere Domain am Ende der Datei /etc/hosts auf Ihrem lokalen Computer hinzu. Diese Konfiguration sollte sich nicht in unserer funktionierenden Linux-Box „test-jfrog-envornment-box“ befinden; Es sollte auf die Datei /etc/hosts Ihres persönlichen Computers angewendet werden.
(Sie benötigen Administratorzugriff):

127.0.0.1 jfrog.artifactory.devops.myapp.com

Wir können die künstliche Benutzeroberfläche im Browser „http://jfrog.artifactory.devops.myapp.com/“ öffnen

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Sie können sich mit dem Standardbenutzernamen „admin“ und dem Passwort „password“ anmelden. Bei Ihrer ersten Anmeldung werden Sie von Artifactory aufgefordert, das Standardkennwort zu ändern. Stellen Sie sicher, dass Sie das Passwort aktualisieren, die Basis-URL auf http://jfrog.artifactory.devops.myapp.com (die in der Artifactory-Ingress-Ressource konfigurierte Domäne) festlegen und alle anderen anfänglichen Konfigurationsschritte überspringen.

Wir können die anfänglichen Repository-Konfigurationen erstellen, um die Abhängigkeiten und Binärdateien im Artefakt zu pushen.

Navigieren Sie zu „Artifactory → Artefakte → Repositorys verwalten → Repository erstellen“ und erstellen Sie die folgenden Repositorys:

  • Lokal: Dieses Repository verwaltet Ihre Anwendungsbinärdateien. Zum Beispiel „my-app-snapshot“
  • Remote: Dieses Repository speichert alle in Ihrer Anwendung verwendeten Abhängigkeiten, die von zentralen Repositorys heruntergeladen und im Repository gespeichert werden. Zum Beispiel „my-app-central-snapshot“
  • Virtuell: Dieses virtuelle Repository bietet einen gemeinsamen Endpunkt, der die „Lokalen“ und „Remote“-Repositorys zusammenfasst. Dieser Endpunkt wird in Ihrer Anwendung konfiguriert. „my-app-virtual-snapshot“

Ich verwende das Maven-Repository, um das Repository zu verwalten. Nach der Konfiguration müssen wir „my-app-snapshot“ ein lokales Repository geben

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Nach der Konfiguration müssen wir das lokale Repository „my-app-central-snapshot“ angeben

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Nach der Konfiguration müssen wir das lokale Repository „my-app-virtual-snapshot“ angeben

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Fügen Sie die lokalen und Remote-Repositorys zum virtuellen Repository hinzu und wählen Sie das lokale Repository im „Standardbereitstellungs-Repository“ aus.

Sobald alle Repositories erstellt sind, können Sie sie im Hauptabschnitt unter „Artifactory → Artefakte“ anzeigen. Die virtuelle URL http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/ wird für Ihre Maven-Anwendung verwendet.

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Wir müssen die Authentifizierungsdetails in der Konfigurationsdatei „~/.m2/settings.xml“ der Maven-Einstellungen konfigurieren, damit sich Ihre Maven-Anwendung bei Artifactory authentifizieren kann.


    
        
            my-app-virtual-snapshot
            admin
            Give your artifactory admin passoword
        
    

Hinweis: Der Admin-Benutzer sollte nicht für den UI- und Artifactory-Zugriff verwendet werden. Erstellen Sie stattdessen einen benutzerdefinierten Benutzer mit den entsprechenden Berechtigungen zum Lesen und Schreiben in Artifactory.

Wir haben die Maven-Repository- und Distributionsverwaltungs-Tags in unserer Maven-Anwendungs-POM-XML-Datei konfiguriert


    
        false
        my-app-virtual-snapshot
        my-app-virtual-snapshot
        http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/
        default
    



    
        my-app-virtual-snapshot
        my-app-virtual-snapshot
        http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/
        default
    

Wir können die Maven-Anwendung mit dem folgenden Befehl bereitstellen

mvn clean deploy

Wir können die folgende Ausgabe von Maven erhalten:

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Siehe Git Repo

  • https://github.com/developerhelperhub/spring-boot-jfrog-artifact-app
  • https://github.com/developerhelperhub/kuberentes-help/tree/main/kubenretes/tutorials/sections/0009
Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/binoy_59380e698d318/setup-jfrog-artifactory-on-kubernetes-and-connect-spring-boot-application-1n4c?1 Bei Verstößen wenden Sie sich bitte an Study_golang@163 .com, um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3