Rumah > Java > javaTutorial > teks badan

Sediakan JFrog Artifactory pada Kubernetes dan Sambungkan Aplikasi But Spring

王林
Lepaskan: 2024-08-22 06:37:32
asal
749 orang telah melayarinya

Dokumen ini menyediakan panduan tentang menyediakan JFrog Artifactory dalam gugusan Kubernetes. Ia berfungsi sebagai tutorial asas untuk pembangun memasang dan mengkonfigurasi JFrog pada persekitaran Kubernetes yang dijalankan pada mesin tempatan.

Sediakan persekitaran setempat untuk membina sumber DevOps

Saya menggunakan bekas Docker untuk menyediakan persekitaran kerja untuk berbilang aplikasi (Persekitaran Persediaan). Pendekatan ini memastikan persekitaran terpencil dan boleh diselenggara sepenuhnya untuk pembangunan aplikasi, membolehkan kami memulakan dan menamatkan persekitaran ini dengan mudah. Di bawah ialah arahan Docker untuk mencipta persekitaran.

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
Salin selepas log masuk

Bekas mengandungi Docker, Kubectl, Helm, Terraform, Kind, Git

Sediakan Jenkins pada Kluster Kubernetes

Saya telah mencipta semua skrip Terraform, yang tersedia dalam repositori GitHub. Anda boleh memuat turun dan menyediakan Jenkins pada gugusan Kubernetes, yang berjalan secara setempat dalam bekas Docker.

Klon repositori ke mesin Linux tempatan anda untuk bermula.

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

Sediakan kluster Kubernetes dalam bekas Docker menggunakan Kind, menamakan kluster "devops-jfrog-cluster-control-plane" Kluster ini menyokong kemasukan dan mendedahkan port 80 dan 443 untuk membenarkan akses kepada perkhidmatan dari luar kluster.

Kluster cipta skrip terraform tersedia di bawah folder jenis

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
Salin selepas log masuk

Mengikuti arahan sahkan kelompok

kubectl cluster-info
kubectl get nodes -o wide
Salin selepas log masuk

Sediakan pengawal kemasukan Nginx pada kelompok Kubernetes
Pengawal Ingress NGINX untuk mengurus akses luaran kepada perkhidmatan dalam gugusan Kubernetes. Ia bertindak sebagai titik masuk untuk aplikasi Kubernetes anda, menghalakan trafik HTTP dan HTTPS luaran ke perkhidmatan yang sesuai dalam kelompok.

Mengikuti arahan pasang pengawal kemasukan pada kelompok

Ingress create skrip tersedia di bawah folder "ingress"

cd ingress
kubectl apply -f ingress-nginx.yaml
Salin selepas log masuk

Mengikuti arahan sahkan pengawal kemasukan nginx

kubectl get -n ingress-nginx pod
Salin selepas log masuk

Output

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
Salin selepas log masuk

Sediakan JFrog Artifactory OSS (Sumber Terbuka)

Tambah Repositori Helm Komuniti JFrog Artifactory OSS: Untuk bermula, anda perlu menambah repositori Helm komuniti JFrog Artifactory OSS pada pelanggan Helm anda:

Nota: JFrog mencipta skrip tersedia di bawah folder “jfrog”

helm repo add jfrog https://charts.jfrog.io
helm repo update
Salin selepas log masuk

Arahan berikut boleh digunakan untuk mengesahkan versi apl dan versi carta perkhidmatan yang dipasang dalam kelompok:

helm search repo  artifactory-oss
Salin selepas log masuk

Dalam contoh ini, saya memasang versi troli ialah “107.90.8” dan Versi Apl ialah “7.90.8”

NAME                         CHART VERSION        APP VERSION        DESCRIPTION
jfrog/artifactory-oss        107.90.8             7.90.8             JFrog Artifactory OSS
Salin selepas log masuk

Buat fail YAML nilai Helm bernama helm-value.yaml, yang akan digunakan untuk mengkonfigurasi perkhidmatan JFrog Artifactory OSS. Fail konfigurasi ini akan digunakan oleh Helm untuk memasang perkhidmatan dalam kelompok.

artifactory:
    postgresql:
    postgresqlPassword: postgres_password
    nginx:
    enabled: false
    ingress:
    enabled: false
Salin selepas log masuk

Dalam konfigurasi di atas, saya telah mengkonfigurasi perkara berikut:

  • Helm menggunakan pangkalan data PostgreSQL lalai, di mana saya menyatakan kata laluan pangkalan data.
  • Sumber NGINX dan Ingress dilumpuhkan.

Arahan Helm berikut digunakan untuk memasang Artifactory dalam kelompok. Ia mencipta sumber yang diperlukan dalam gugusan, termasuk ruang nama yang dipanggil "artifactory-oss," dan memasang semua sumber dalam ruang nama ini.

helm install artifactory-oss -f helm-value.yaml jfrog/artifactory-oss --namespace artifactory-oss --create-namespace
Salin selepas log masuk

Nilai carta helm: https://github.com/jfrog/charts/blob/master/stable/artifactory-oss/values.yaml

Kami boleh mengesahkan bahawa semua sumber telah dipasang dalam ruang nama "artifactory-oss". UI perkhidmatan Artifactory berjalan pada port 8082, manakala Artifactory sendiri beroperasi pada port 8081.

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   <none>        8082/TCP,8025/TCP,8081/TCP   3m19s
service/artifactory-oss-postgresql            ClusterIP   10.96.95.36    <none>        5432/TCP                     3m19s
service/artifactory-oss-postgresql-headless   ClusterIP   None           <none>        5432/TCP                     3m19s

NAME                                          READY   AGE
statefulset.apps/artifactory-oss              0/1     3m19s
statefulset.apps/artifactory-oss-postgresql   1/1     3m19s
Salin selepas log masuk

Kami perlu mencipta sumber Ingress untuk menghalakan permintaan ke perkhidmatan Artifactory. Tambahkan konfigurasi berikut pada fail ingress-resource.yaml.

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
Salin selepas log masuk

Kami perlu mengkonfigurasi proxy-body-size=0. Tetapan ini mengarahkan Ingress untuk tidak mengenakan had pada saiz fail apabila memuat naik fail ke Artifactory.

Laksanakan arahan berikut untuk menggunakan kemasukan dalam kelompok

kubectl apply -f ingress-resource.yaml
Salin selepas log masuk

Sahkan alamat IP ditetapkan:

kubectl -n artifactory-oss get ingress

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

Tambahkan domain kami ke bahagian bawah fail /etc/hosts pada mesin tempatan anda. Konfigurasi ini tidak sepatutnya berada di dalam kotak Linux kami yang berfungsi "test-jfrog-envornment-box"; ia harus digunakan pada fail /etc/hosts mesin peribadi anda.
(anda memerlukan akses pentadbir):

127.0.0.1 jfrog.artifactory.devops.myapp.com
Salin selepas log masuk

Kami boleh membuka UI artifactory dalam penyemak imbas “http://jfrog.artifactory.devops.myapp.com/”

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

You can log in using the default username "admin" and password "password." Upon your first login, Artifactory will prompt you to change the default password. Be sure to update the password, set the base URL to http://jfrog.artifactory.devops.myapp.com (the domain configured in the Artifactory Ingress resource), and skip any other initial configuration steps.

We can create the initial repositories configurations to push the dependencies and binary in the artifactory.

Navigate to “Artifactory → Artifacts → Manage Repositories → Create Repository” and create the following repositories:

  • Local: This repository manages your application binaries. For example “my-app-snapshot”
  • Remote: This repository stores all dependencies used in your application, which will be downloaded from central repositories and stored in repository. For example “my-app-central-snapshot”
  • Virtual: This virtual repository provides a common endpoint that aggregates the “Local” and “Remote” repositories. This endpoint will be configured in your application. “my-app-virtual-snapshot”

I am using maven repository to maintain the repository. Following configuration we have to give “my-app-snapshot” local repository

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Following configuration we have to give “my-app-central-snapshot” local repository

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Following configuration we have to give “my-app-virtual-snapshot” local repository

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Add the local and remote repositories to the virtual repository and select the local repository in the “Default Deployment Repository”.

Once all the repositories are created, you can view them in the main section under “Artifactory → Artifacts.” The virtual URL http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/ will be used for your Maven application.

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

We need to configure the authentication details in the Maven settings configuration file “~/.m2/settings.xml” to enable your Maven application to authenticate with Artifactory.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>my-app-virtual-snapshot</id>
            <username>admin</username>
            <password>Give your artifactory admin passoword</password>
        </server>
    </servers>
</settings>
Salin selepas log masuk

Note: The admin user should not be used for UI and Artifactory access. Instead, create a custom user with appropriate permissions for reading and writing in Artifactory.

We have configure the maven repository and distribution management tags inside our maven application POM XML file

<distributionManagement>
    <repository>
        <uniqueVersion>false</uniqueVersion>
        <id>my-app-virtual-snapshot</id>
        <name>my-app-virtual-snapshot</name>
        <url>http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/</url>
        <layout>default</layout>
    </repository>
</distributionManagement>

<repositories>
    <repository>
        <id>my-app-virtual-snapshot</id>
        <name>my-app-virtual-snapshot</name>
        <url>http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/</url>
        <layout>default</layout>
    </repository>
</repositories>
Salin selepas log masuk

The we can deploy the maven application with following command

mvn clean deploy
Salin selepas log masuk

We can the following output of maven :

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Refernece Git Repo

  • https://github.com/developerhelperhub/spring-boot-jfrog-artifact-app
  • https://github.com/developerhelperhub/kuberentes-help/tree/main/kubenretes/tutorials/sections/0009

Atas ialah kandungan terperinci Sediakan JFrog Artifactory pada Kubernetes dan Sambungkan Aplikasi But Spring. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan