「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Kubernetes で JFrog Artifactory をセットアップし、Spring Boot アプリケーションを接続する

Kubernetes で JFrog Artifactory をセットアップし、Spring Boot アプリケーションを接続する

2024 年 11 月 8 日に公開
ブラウズ:946

このドキュメントでは、Kubernetes クラスターでの JFrog Artifactory のセットアップに関するガイダンスを提供します。これは、開発者がローカル マシンで実行されている Kubernetes 環境に JFrog をインストールして構成するための基本的なチュートリアルとして機能します。

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が含まれています

Kubernetes クラスターでの Jenkins のセットアップ

すべての Terraform スクリプトを作成しました。これらは GitHub リポジトリで入手できます。 Docker コンテナ内でローカルに実行される Kubernetes クラスター上に Jenkins をダウンロードしてセットアップできます。

ローカル Linux マシンにリポジトリのクローンを作成しますを開始します。

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

Kind を使用して Docker コンテナに Kubernetes クラスタをセットアップします。クラスタに「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

Kubernetes クラスターで Nginx Ingress コントローラーをセットアップする
Kubernetes クラスター内のサービスへの外部アクセスを管理する NGINX Ingress コントローラー。これは、Kubernetes アプリケーションのエントリ ポイントとして機能し、外部 HTTP および HTTPS トラフィックをクラスター内の適切なサービスにルーティングします。

次のコマンドは、クラスターにイングレス コントローラーをインストールします

Ingress 作成スクリプトは「ingress」フォルダーで利用可能

cd ingress
kubectl apply -f ingress-nginx.yaml

次のコマンドは nginx Ingress コントローラーを確認します

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 コミュニティ Helm リポジトリを追加します: まず、JFrog Artifactory OSS コミュニティ Helm リポジトリを 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

helm-value.yaml という名前の Helm 値 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

Helm チャートの値: https://github.com/jfrog/charts/blob/master/stable/artifactory-oss/values.yaml

すべてのリソースが「artifactory-oss」名前空間にインストールされていることを確認できます。 Artifactory サービス UI はポート 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

リクエストを Artifactory サービスにルーティングするための Ingress リソースを作成する必要があります。次の構成を 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 を設定する必要があります。この設定は、ファイルを Artifactory にアップロードするときにファイル サイズに制限を課さないように Ingress に指示します。

次のコマンドを実行してクラスタにイングレスを適用します

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/」で Artifactory UI を開くことができます

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」に移動し、次のリポジトリを作成します。

  • ローカル: このリポジトリはアプリケーション バイナリを管理します。例: 「my-app-snapshot」
  • リモート: このリポジトリには、アプリケーションで使用されるすべての依存関係が保存されます。依存関係は中央リポジトリからダウンロードされ、リポジトリに保存されます。例: 「my-app-central-snapshot」
  • 仮想: この仮想リポジトリは、「ローカル」リポジトリと「リモート」リポジトリを集約する共通のエンドポイントを提供します。このエンドポイントはアプリケーションで構成されます。 「my-app-virtual-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 アプリケーションが Artifactory で認証できるようにするには、Maven 設定構成ファイル「~/.m2/settings.xml」で認証の詳細を構成する必要があります。

my-app-virtual-snapshotadminGive your artifactory admin passoword

注: 管理者ユーザーは UI および Artifactory へのアクセスに使用しないでください。代わりに、Artifactory での読み取りと書き込みのための適切な権限を持つカスタム ユーザーを作成します。

Maven アプリケーションの POM XML ファイル内に Maven リポジトリと配布管理タグを設定しました

falsemy-app-virtual-snapshotmy-app-virtual-snapshothttp://jfrog.artifactory.devops.myapp.com/artifactory/my-app-virtual-snapshot/defaultmy-app-virtual-snapshotmy-app-virtual-snapshothttp://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