Kubernetes Gitopsを段階的に実装する方法を説明します

Kubernetes Gitopsを段階的に実装する方法を説明します

導入

コンテナ化は、アプリケーションの管理と展開に対する一般的なアプローチとなり、さまざまな環境にわたってアプリケーションを一貫してパッケージ化、配布、実行する簡単な方法を提供します。このブログ記事では、Docker を使用して Spring Boot アプリケーションをコンテナ化し、Kubernetes クラスターにデプロイするプロセスについて説明します。プロセスを簡素化するために、コード サンプルとステップバイステップの説明も提供されます。

前提条件

  1. Java 開発キット (JDK) 8 以上
  2. Maven または Gradle
  3. ドッカー
  4. Kubernetes クラスター (Minikube、EKS、GKE など)

ステップ1: Spring Bootアプリケーションを作成する

まず、Spring Initializr Web サービスを使用して、シンプルな Spring Boot アプリケーションを作成します。これを行うには、https://start.spring.io/ にアクセスして必要なオプションを選択するか、Spring Boot CLI で次のコマンドを使用します。

 $ spring init --dependencies=web my-spring-boot-app

このコマンドは、Spring Boot アプリケーションを作成します。 Web アプリケーションは、my-spring-boot-app というディレクトリにあります。

ステップ2: アプリケーションを構築する

アプリケーション ディレクトリに変更し、Maven または Gradle を使用してアプリケーションをビルドします。

メイヴン:

 $ cd my-spring-boot-app $ ./mvnw clean install

グレード:

 $ cd my-spring-boot-app $ ./gradlew clean build

ステップ3: Dockerfileを作成する

アプリケーション ディレクトリのルートに、次の内容を含む Dockerfile というファイルを作成します。

 FROM openjdk:8-jdk-alpine EXPOSE 8080 ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java", "-jar", "/app.jar"]

この Dockerfile は、ベースイメージを指定し、アプリケーション ポートを公開し、ビルドされた JAR ファイルをコンテナーにコピーし、アプリケーションを実行するためのエントリ ポイントを定義します。

ステップ4: Dockerイメージを構築する

次のコマンドを使用して Docker イメージをビルドします。

 $ docker build -t my-spring-boot-app:latest

ステップ5: Dockerイメージをレジストリにプッシュする

Docker イメージを Docker Hub、Google Container Registry、Amazon Elastic Container Registry などのレジストリにプッシュします。 <your-dockerhub-username> を Docker Hub のユーザー名に置き換えます。

 $ docker tag my-spring-boot-app:latest <your-dockerhub-username>/my-spring-boot-app:latest $ docker push <your-dockerhub-username>/my-spring-boot-app:latest

ステップ6: Kubernetesデプロイメントを作成する

次の内容を含む、deployment.yaml というファイルを作成します。

 apiVersion: apps/v1 kind: Deployment metadata: name: my-spring-boot-app spec: replicas: 3 selector: matchLabels: app: my-spring-boot-app template: metadata: labels: app: my-spring-boot-app spec: containers: - name: my-spring-boot-app image: <your-dockerhub-username>/my-spring-boot-app:latest ports: - containerPort: 8080

この構成は、Spring Boot アプリケーションのレプリカ 3 つを含む Kubernetes デプロイメントを定義します。

ステップ7: Kubernetesサービスを作成する

次の内容を含む service.yaml というファイルを作成します。

 apiVersion: v1 kind: Service metadata: name: my-spring-boot-app spec: selector: app: my-spring-boot-app ports: - protocol: TCP port: 80 targetPort: 8080 type: LoadBalancer

この構成は、ポート 80 で Spring Boot アプリケーションを公開し、レプリカ間のトラフィックを負荷分散する Kubernetes サービスを定義します。

ステップ8: Kubernetesにデプロイする

次のコマンドを使用して、Kubernetes 構成をクラスターに適用します。

 $ kubectl apply -f deployment.yaml $ kubectl apply -f service.yaml

ステップ9: アプリケーションにアクセスする

外部 IP アドレスがサービスに割り当てられるまで待ちます。次のコマンドでサービスの外部 IP を確認します。

 $ kubectl get svc my-spring-boot-app

外部 IP が利用可能になったら、ブラウザまたは任意の HTTP クライアントで IP アドレスとポート 80 を使用してアプリケーションにアクセスします。

結論は

このブログ記事では、Docker を使用して Spring Boot アプリケーションをコンテナ化し、Kubernetes クラスターにデプロイするプロセスを説明しました。このアプローチは、アプリケーションのライフサイクルの管理、展開の簡素化、さまざまな環境間での一貫した動作の保証に役立ちます。 Docker や Kubernetes などのコンテナ化およびオーケストレーション テクノロジは、最新のアプリケーションの開発と展開にとって重要なツールになっています。

<<:  アリババクラウド史上最大の値下げ:コア製品の価格が全面的に引き下げられ、最大値下げは50%に達する

>>:  エッジコンピューティングと IoT を推進するトレンド

推薦する

SEO ブログがなぜ人気がないのかご存知ですか?

なぜこのようなタイトルを思いついたのか不思議に思うかもしれません。あなたのブログは SEO ブログで...

ウェブ SEO 最適化: 8 つの実用的なウェブ SEO テクニック

検索トラフィックの 95% が検索結果の最初のページに行くことをご存知ですか?検索結果であなたのビジ...

Kubernetes プローブから DevOps へ

今日、グループ内で、Kubernetes プローブの設定方法を尋ねる人がいました。付け加えるべきこと...

シーメンスがデジタルツインSaaSを構築して2年間で25%の成長を達成した方法

クラウド コンピューティングによって実現されるイノベーションを活用するために、製品の販売からすべてを...

安定したウェブサイトスペースはSEO最適化の基礎です

最近、Guangxian Technology の Xiao Ming は、企業 Web サイトの構...

推奨 - vultr vps、14 データセンター: ネットワーク + I/O 固有の状況

夜、暇だったので、Vultr.com の VPS のネットワークと I/O ステータスをチェックしま...

ZK (ZooKeeper) 分散ロック実装

[[430832]]準備するこの記事では、事前にセットアップできる 3 つの独立したサーバーを使用し...

愛情あふれる動物コミュニティを築くために、エミュー動物園の混乱、変革、そしてビジョン

【要点】2008年、Emu ZooはWordPressで構築されたペットをテーマにした独立したブログ...

プロメテウス - 特別プロモーションの新波/50% オフ/OVZ/XEN/KVM/ダラス/ミラノ

プロメテウスは再び取り組みを始めました。今回は、openvz、KVM、XEN、ダラス、ミラノのデータ...

Kafka のアーキテクチャと動作原理の図解

[[438966]] 1. Kafkaを理解するインタビュアーが質問しました: Kafka とは何で...

分散オブジェクトストレージOzoneはApache Foundationを卒業し、正式にApacheのトップレベルプロジェクトになりました

Apache Foundation の取締役会が、分散ファイル オブジェクト ストレージ Ozone...

ウェブマスターがお金を稼ぐための一般的な方法をいくつか紹介します

インターネットの誕生から、ナビゲーションサイト、検索エンジン、コミュニティ、ポータル、フォーラム、ニ...

Baidu: 当社のセマンティック検索はGoogleより優れています

Google は最近、「ナレッジ グラフ」と呼ばれる新しい検索機能を開始しました。Google はこ...

Baidu アルゴリズムは継続的に更新されます。Web サイトを最適化するにはどうすればよいでしょうか?

数日前、SEO 最適化の終焉に関する記事をオンラインで目にし、とても感動しました。最近では、「百度緑...

IDC: 今年の世界のパブリッククラウドサービス支出は160億ドルに達すると予想

IDC の最新版「ワールドワイド セミアニュアル パブリック クラウド サービス支出ガイド」によると...