«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Настройте JFrog Artifactory в Kubernetes и подключите приложение Spring Boot

Настройте JFrog Artifactory в Kubernetes и подключите приложение Spring Boot

Опубликовано 8 ноября 2024 г.
Просматривать:483

Этот документ содержит рекомендации по настройке 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 для разрешения доступа к сервисам. из-за пределов кластера.

Скрипт создания терраформа кластера доступен в папке kind

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 (с открытым исходным кодом)

Добавьте репозиторий Helm сообщества JFrog Artifactory OSS: для начала вам необходимо добавить репозиторий 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 → Артефакты → Управление репозиториями → Создать репозиторий» и создайте следующие репозитории:

  • Локальный: этот репозиторий управляет двоичными файлами вашего приложения. Например, «моё-приложение-снимок»
  • Удаленный: в этом репозитории хранятся все зависимости, используемые в вашем приложении, которые будут загружены из центральных репозиториев и сохранены в репозитории. Например, «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 → Артефакты». Виртуальный 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. Вместо этого создайте специального пользователя с соответствующими разрешениями на чтение и запись в Artifactory.

Мы настроили теги управления репозиторием и распространением maven внутри XML-файла POM нашего приложения maven


    
        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
    

Мы можем развернуть приложение maven с помощью следующей команды

mvn clean deploy

Мы можем получить следующий вывод maven:

Setup JFrog Artifactory on Kubernetes and Connect Spring Boot Application

Ссылка на Git-репо

  • 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-application-1n4c?1 Если есть какие-либо нарушения, свяжитесь с Study_golang@163. .com, чтобы удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3