"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم بإعداد JFrog Artifactory على Kubernetes وتطبيق Connect Spring Boot

قم بإعداد JFrog Artifactory على Kubernetes وتطبيق Connect Spring Boot

تم النشر بتاريخ 2024-11-08
تصفح:347

يوفر هذا المستند إرشادات حول إعداد JFrog Artifactory في مجموعة Kubernetes. إنه بمثابة برنامج تعليمي أساسي للمطورين لتثبيت JFrog وتكوينه على بيئة Kubernetes التي تعمل على جهاز محلي.

قم بإعداد البيئة المحلية لبناء موارد DevOps

أستخدم حاويات Docker لإعداد بيئات عمل لتطبيقات متعددة (بيئة الإعداد). يضمن هذا النهج بيئات معزولة تمامًا وقابلة للصيانة لتطوير التطبيقات، مما يسمح لنا ببدء هذه البيئات وإنهائها بسهولة. يوجد أدناه أمر Docker لإنشاء البيئة.

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

تحتوي الحاوية على Docker وKubectl وHelm وTerraform وKind وGit

قم بإعداد Jenkins على مجموعة Kubernetes

لقد قمت بإنشاء جميع نصوص Terraform النصية المتوفرة في مستودع GitHub. يمكنك تنزيل Jenkins وإعداده على مجموعة Kubernetes، التي تعمل محليًا في حاوية Docker.

قم بنسخ المستودع على جهاز Linux المحلي الخاص بك للبدء.

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

قم بإعداد مجموعة Kubernetes في حاوية Docker باستخدام Kind، مع تسمية المجموعة "devops-jfrog-cluster-control-plane" تدعم هذه المجموعة الدخول وتكشف عن المنفذين 80 و443 للسماح بالوصول إلى الخدمات من خارج الكتلة.

يتوفر البرنامج النصي لإنشاء مجموعة Terraform ضمن مجلد النوع

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

الأمر التالي التحقق من المجموعة

kubectl cluster-info
kubectl get nodes -o wide

إعداد وحدة تحكم الدخول Nginx على مجموعة Kubernetes
وحدة تحكم الدخول NGINX لإدارة الوصول الخارجي إلى الخدمات في مجموعة Kubernetes. وهو بمثابة نقطة دخول لتطبيقات Kubernetes الخاصة بك، حيث يقوم بتوجيه حركة مرور HTTP وHTTPS الخارجية إلى الخدمات المناسبة داخل المجموعة.

الأمر التالي تثبيت وحدة التحكم في الدخول على المجموعة

Ingress لإنشاء برنامج نصي متاح ضمن مجلد "ingress"

cd ingress
kubectl apply -f ingress-nginx.yaml

الأمر التالي يتحقق من وحدة التحكم في دخول nginx

kubectl get -n ingress-nginx pod

الإخراج

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 (مفتوح المصدر)

أضف مستودع JFrog Artifactory OSS Community Helm: للبدء، تحتاج إلى إضافة مستودع Helm لمجتمع JFrog Artifactory OSS إلى عميل Helm الخاص بك:

ملاحظة: يقوم JFrog بإنشاء البرامج النصية المتاحة ضمن مجلد "jfrog"

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

يمكن استخدام الأمر التالي للتحقق من إصدار التطبيق وإصدار المخطط للخدمات المثبتة في المجموعة:

helm search repo  artifactory-oss

في هذا المثال، أقوم بتثبيت إصدار سلة التسوق هو "107.90.8" وإصدار التطبيق هو "7.90.8"

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

قم بإنشاء ملف YAML لقيم Helm باسم helm-value.yaml، والذي سيتم استخدامه لتكوين خدمة JFrog Artifactory OSS. سيتم استخدام ملف التكوين هذا بواسطة Helm لتثبيت الخدمة في المجموعة.

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

في التكوين أعلاه، قمت بتكوين النقاط التالية:

  • يستخدم Helm قاعدة بيانات PostgreSQL الافتراضية، حيث قمت بتحديد كلمة مرور قاعدة البيانات.
  • تم تعطيل موارد NGINX وIngress.

يتم استخدام أمر Helm التالي لتثبيت Artifactory في المجموعة. يقوم بإنشاء الموارد الضرورية في المجموعة، بما في ذلك مساحة اسم تسمى "artifactory-oss"، ويقوم بتثبيت كافة الموارد داخل مساحة الاسم هذه.

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

قيم مخطط الخوذة: https://github.com/jfrog/charts/blob/master/stable/artifactory-oss/values.yaml

يمكننا التحقق من تثبيت جميع الموارد في مساحة الاسم "artifactory-oss". تعمل واجهة مستخدم خدمة Artifactory على المنفذ 8082، بينما تعمل Artifactory نفسها على المنفذ 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           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

نحتاج إلى إنشاء مورد Ingress لتوجيه الطلبات إلى خدمة Artifactory. أضف التكوين التالي إلى ملف 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

نحن بحاجة إلى تكوين proxy-body-size=0. يوجه هذا الإعداد Ingress إلى عدم فرض حد على حجم الملف عند تحميل الملفات إلى Artifactory.

نفذ الأمر التالي لتطبيق الدخول في المجموعة

kubectl apply -f ingress-resource.yaml

تحقق من تعيين عنوان IP:

kubectl -n artifactory-oss get ingress

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

أضف المجال الخاص بنا إلى أسفل الملف /etc/hosts على جهازك المحلي. لا ينبغي أن يكون هذا التكوين داخل صندوق Linux العامل لدينا "test-jfrog-envornment-box"؛ يجب أن يتم تطبيقه على ملف /etc/hosts الخاص بجهازك الشخصي.
(ستحتاج إلى وصول المسؤول):

127.0.0.1 jfrog.artifactory.devops.myapp.com

يمكننا فتح واجهة المستخدم الاصطناعية في المتصفح "http://jfrog.artifactory.devops.myapp.com/"

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

يمكنك تسجيل الدخول باستخدام اسم المستخدم الافتراضي "admin" وكلمة المرور "password". عند تسجيل الدخول لأول مرة، سيطالبك Artifactory بتغيير كلمة المرور الافتراضية. تأكد من تحديث كلمة المرور، وقم بتعيين عنوان URL الأساسي على http://jfrog.artifactory.devops.myapp.com (المجال الذي تم تكوينه في مورد Artifactory Ingress)، وتخطي أي خطوات تكوين أولية أخرى.

يمكننا إنشاء تكوينات المستودعات الأولية لدفع التبعيات والثنائيات في المصنع.

انتقل إلى "Artifactory → Artifacts → Manage Repositories → Create Repository" وقم بإنشاء المستودعات التالية:

  • محلي: يقوم هذا المستودع بإدارة ثنائيات التطبيق الخاصة بك. على سبيل المثال "لقطة تطبيقي"
  • Remote: يخزن هذا المستودع جميع التبعيات المستخدمة في تطبيقك، والتي سيتم تنزيلها من المستودعات المركزية وتخزينها في المستودع. على سبيل المثال "my-app-central-snapshot"
  • افتراضي: يوفر هذا المستودع الافتراضي نقطة نهاية مشتركة تجمع المستودعات "المحلية" و"البعيدة". سيتم تكوين نقطة النهاية هذه في التطبيق الخاص بك. "لقطة افتراضية لتطبيقي"

أنا أستخدم مستودع maven للحفاظ على المستودع. بعد التكوين، يتعين علينا توفير المستودع المحلي "my-app-snapshot"

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

بعد التكوين، يتعين علينا توفير المستودع المحلي "my-app-central-snapshot"

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

بعد التكوين، يتعين علينا توفير مستودع محلي "my-app-virtual-snapshot"

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

أضف المستودعات المحلية والبعيدة إلى المستودع الافتراضي وحدد المستودع المحلي في "مستودع النشر الافتراضي".

بمجرد إنشاء جميع المستودعات، يمكنك عرضها في القسم الرئيسي ضمن "Artifactory → Artifacts". سيتم استخدام عنوان URL الافتراضي http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/ لتطبيق Maven الخاص بك.

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

نحتاج إلى تكوين تفاصيل المصادقة في ملف تكوين إعدادات Maven "~/.m2/settings.xml" لتمكين تطبيق Maven الخاص بك من المصادقة مع Artifactory.


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

ملاحظة: لا ينبغي استخدام المستخدم المسؤول لواجهة المستخدم والوصول الاصطناعي. بدلاً من ذلك، أنشئ مستخدمًا مخصصًا يتمتع بالأذونات المناسبة للقراءة والكتابة في Artifactory.

لقد قمنا بتكوين علامات إدارة التوزيع والمستودع المخضرم داخل ملف POM XML لتطبيقنا المخضرم


    
        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
    

يمكننا نشر التطبيق المخضرم بالأمر التالي

mvn clean deploy

يمكننا إخراج المخضرم التالي:

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

المرجع جيت الريبو

  • https://github.com/developerhelperhub/spring-boot-jfrog-artifact-app
  • https://github.com/developerhelperhub/kuberentes-help/tree/main/kubenretes/tutorials/sections/0009
بيان الافراج تم استنساخ هذه المقالة على: https://dev.to/binoy_59380e698d318/setup-jfrog-artifactory-on-kubernetes-and-connect-spring-boot-boot-application-1n4c؟ .com لحذفها.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3