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 を推進するトレンド

推薦する

Tencent Cloud IDC製品ファミリーが第7回データセンターシェアリングデーでデビュー

11月25日、第7回テンセントデータセンターシェアリングデーが、国立コンベンションセンター(CDCC...

Sharktech-67 USD サーバー/Xeon X3470/12g メモリ/2T ハードディスク/10T トラフィック/32IP

アメリカの老舗ブランドであるSharktechが、特別価格でサーバーを販売しています。シカゴとデンバ...

過剰なウェブサイト最適化の運用方法と影響の分析

ご存知のとおり、ウェブサイトの最適化は段階的なプロセスです。最適化プロセスでは、私たち自身の不完全な...

簡単な説明: ローカルフォーラムポータルとローカルウェブサイトのプロモーション手法

他の業界のウェブサイトと比較すると、ローカル ウェブサイトのプロモーションには、主にユーザー グルー...

40万件以上のYahooアカウントが盗まれ公開され、ハッカーはこれをセキュリティ警告と呼んだ

数十万のYahooアカウントがハッキングされる米メディアが12日報じたところによると、ヤフーは同日、...

ウェブサイト最適化への道は着実に勝つことだ

ウェブサイトを最適化する最善の方法は、着実に勝つことです。着実に勝つ方法は誰もが知っていますが、それ...

NetEase がコミュニティを閉鎖し、「ポータル」を削減、減算戦略継続

NetEaseの減算戦略は継続中。 NetEase Community は、業務調整のため、NetE...

ウェブマスターネットワークからの毎日のレポート:Yixunが家電市場に参入、Tencent Enterprise QQが復活

1. Googleの.searchなどのトップレベルドメインの申請は業界団体から反対された北京時間3...

Jieku.comのCEOが金を持ち逃げし、従業員全員を解雇したというネット上の噂は公式に否定された。

7月30日、O2O電子商取引の傑庫.comのCEOである潘秋慧氏がすべての投資を取り上げ、従業員全員...

企業が知っておくべきクラウド セキュリティのベスト プラクティス 10 選

あらゆる大規模なサイバー攻撃や、あまり知られていない障害の背後では、IT セキュリティ専門家、アプリ...

SEO の重要性を上司に伝える方法

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています検索エンジ...

本番環境でKubernetesのリソース割り当てを最適化する方法

[51CTO.com クイック翻訳] Kubernetes を使い始めた初日に、アプリケーションを ...

NetQin はさらなる打撃を受けました: 完全な詐欺行為の疑いで告発され、市場価値は一夜にしてほぼ半分に消えました - A5 Webmaster Network

本日の北京時間午前5時頃、東部標準時8帯ではまだ太陽は昇っていなかったが、地球の反対側にあるナスダッ...