يوفر هذا المستند إرشادات حول إعداد JFrog Artifactory في مجموعة Kubernetes. إنه بمثابة برنامج تعليمي أساسي للمطورين لتثبيت JFrog وتكوينه على بيئة Kubernetes التي تعمل على جهاز محلي.
أستخدم حاويات 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
لقد قمت بإنشاء جميع نصوص 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 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 التالي لتثبيت 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.638082/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/"
يمكنك تسجيل الدخول باستخدام اسم المستخدم الافتراضي "admin" وكلمة المرور "password". عند تسجيل الدخول لأول مرة، سيطالبك Artifactory بتغيير كلمة المرور الافتراضية. تأكد من تحديث كلمة المرور، وقم بتعيين عنوان URL الأساسي على http://jfrog.artifactory.devops.myapp.com (المجال الذي تم تكوينه في مورد Artifactory Ingress)، وتخطي أي خطوات تكوين أولية أخرى.
يمكننا إنشاء تكوينات المستودعات الأولية لدفع التبعيات والثنائيات في المصنع.
انتقل إلى "Artifactory → Artifacts → Manage Repositories → Create Repository" وقم بإنشاء المستودعات التالية:
أنا أستخدم مستودع maven للحفاظ على المستودع. بعد التكوين، يتعين علينا توفير المستودع المحلي "my-app-snapshot"
بعد التكوين، يتعين علينا توفير المستودع المحلي "my-app-central-snapshot"
بعد التكوين، يتعين علينا توفير مستودع محلي "my-app-virtual-snapshot"
أضف المستودعات المحلية والبعيدة إلى المستودع الافتراضي وحدد المستودع المحلي في "مستودع النشر الافتراضي".
بمجرد إنشاء جميع المستودعات، يمكنك عرضها في القسم الرئيسي ضمن "Artifactory → Artifacts". سيتم استخدام عنوان URL الافتراضي http://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/ لتطبيق Maven الخاص بك.
نحتاج إلى تكوين تفاصيل المصادقة في ملف تكوين إعدادات 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
يمكننا إخراج المخضرم التالي:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3