第2章 Skupper Hello World


Skupper を使用して Kubernetes クラスター全体にデプロイされた最小限の HTTP アプリケーション

この例は、Skupper を使用してクラウドプロバイダー、データセンター、エッジサイト間でサービスを接続できるさまざまな方法を紹介する 一連の例 の一部です。

概要

この例は、Skupper を使用して Kubernetes クラスター全体にデプロイされた非常にシンプルなマルチサービス HTTP アプリケーションです。

これには 2 つのサービスが含まれます。

  • /api/hello エンドポイントを公開するバックエンドサービス。これは、Hi, <your-name>.I am <my-name> (<pod-name>) という形式のあいさつを返します。
  • フロントエンドサービス。バックエンドにあいさつを送信し、応答として新しい挨拶を取得します。

Skupper を使用すると、バックエンドを 1 つのクラスターに配置し、フロントエンドを別のクラスターに配置して、バックエンドをパブリックインターネットに公開することなく、2 つのサービス間の接続を維持できます。

前提条件

手順

  • この例のリポジトリーのクローンを作成する
  • Skupper コマンドラインツールをインストールする
  • クラスターを設定する
  • フロントエンドとバックエンドをデプロイする
  • サイトを作成する
  • サイトをリンクする
  • バックエンドを公開する
  • フロントエンドにアクセスする

    1. この例のリポジトリーをクローンします。https://skupper.io/examples/index.html から適切な GitHub リポジトリーに移動し、リポジトリーをクローンします。
    2. Skupper コマンドラインツールをインストールします。

      この例では、Skupper コマンドラインツールを使用して Skupper をデプロイします。開発環境ごとに skupper コマンドを 1 回だけインストールする必要があります。

      CLI のインストールの詳細は、インストール を参照してください。設定されたシステムの場合は、次のコマンドを使用します。

      sudo dnf install skupper-cli
    3. クラスターを設定します。

      Skupper は複数の Kubernetes クラスターで使用するように設計されています。skupper コマンドと kubectl コマンドは、kubeconfig と現在のコンテキストを使用して、動作するクラスターと名前空間を選択します。

      kubeconfig はホームディレクトリーのファイルに保存されます。skupper および kubectl コマンドは、KUBECONFIG 環境変数を使用してこれを検索します。

      1 つの kubeconfig は、ユーザーごとにアクティブコンテキストを 1 つだけサポートします。この演習では複数のコンテキストを一度に使用するため、個別の kubeconfig を作成する必要があります。

      名前空間ごとに、新しいターミナルウィンドウを開きます。各ターミナルで、KUBECONFIG 環境変数を別のパスに設定し、クラスターにログインします。次に、使用する名前空間を作成し、現在のコンテキストに名前空間を設定します。

      注記

      ログイン手順はプロバイダーによって異なります。以下のドキュメントを参照してください。

      West:

      export KUBECONFIG=~/.kube/config-west
      # Enter your provider-specific login command
      kubectl create namespace west
      kubectl config set-context --current --namespace west

      East:

      export KUBECONFIG=~/.kube/config-east
      # Enter your provider-specific login command
      kubectl create namespace east
      kubectl config set-context --current --namespace east
    4. フロントエンドとバックエンドをデプロイします。

      この例では、フロントエンドとバックエンドを異なるクラスター上の別々の Kubernetes 名前空間で実行します。

      kubectl create deployment を使用して、フロントエンドを West に、バックエンドを East にデプロイします。

      West:

      kubectl create deployment frontend --image quay.io/skupper/hello-world-frontend

      East:

      kubectl create deployment backend --image quay.io/skupper/hello-world-backend --replicas 3
    5. サイトを作成します。

      Skupper サイトは、アプリケーションのコンポーネントが実行される場所です。サイトは相互にリンクされ、アプリケーションのネットワークを形成します。Kubernetes では、サイトは名前空間に関連付けられます。

      名前空間ごとに、skupper init を使用してサイトを作成します。これにより、Skupper ルーターとコントローラーがデプロイされます。次に、skupper status を使用して結果を確認します。

      West:

      skupper init
      skupper status

      出力サンプル

      $ skupper init
      Waiting for LoadBalancer IP or hostname...
      Waiting for status...
      Skupper is now installed in namespace 'west'.  Use 'skupper status' to get more information.
      
      $ skupper status
      Skupper is enabled for namespace "west". It is not connected to any other sites. It has no exposed services.

      East:

      skupper init
      skupper status

      出力サンプル

      $ skupper init
      Waiting for LoadBalancer IP or hostname...
      Waiting for status...
      Skupper is now installed in namespace 'east'.  Use 'skupper status' to get more information.
      
      $ skupper status
      Skupper is enabled for namespace "east". It is not connected to any other sites. It has no exposed services.

      以下の手順を実行する場合は、いつでも skupper status を使用して進捗状況を確認できます。

    6. サイトをリンクします。

      Skupper リンクは、2 つのサイト間の通信チャネルです。リンクは、アプリケーションの接続と要求のトランスポートとして機能します。

      リンクを作成するには、skupper token createskupper link create の 2 つの skupper コマンドを組み合わせて使用する必要があります。

      skupper token create コマンドは、リンクを作成する権限を示す秘密トークンを生成します。トークンにはリンクの詳細も含まれます。次に、リモートサイトで、skupper link create コマンドを実行すると、トークンを使用して、トークンを生成したサイトへのリンクを作成します。

      注記

      リンクトークンは実際にはシークレットです。トークンがある場合は、サイトにリンクできます。信頼できる人だけがアクセスできるようにしてください。

      まず、West で skupper token create を使用してトークンを生成します。次に、East で skupper link create を使用して、サイトをリンクします。

      West:

      skupper token create ~/secret.token

      出力サンプル

      $ skupper token create ~/secret.token
      Token written to ~/secret.token

      East:

      skupper link create ~/secret.token

      出力サンプル

      $ skupper link create ~/secret.token
      Site configured to link to https://10.105.193.154:8081/ed9c37f6-d78a-11ec-a8c7-04421a4c5042 (name=link1)
      Check the status of the link using 'skupper link status'.

      ターミナルセッションが異なるマシン上にある場合は、トークンを安全に転送するために scp または同様のツールを使用する必要がある場合があります。デフォルトでは、トークンは 1 回の使用後、または作成後 15 分後に期限切れになります。

    7. バックエンドを公開します。

      現在、サイトはリンクされて Skupper ネットワークを形成していますが、そのネットワーク上でサービスは公開されていません。Skupper は、skupper expose コマンドを使用して、リンクされたすべてのサイトで公開するサービスを 1 つのサイトから選択します。

      skupper expose を使用して、East のバックエンドサービスを West のフロントエンドに公開します。

      East:

      skupper expose deployment/backend --port 8080

      出力サンプル

      $ skupper expose deployment/backend --port 8080
      deployment backend exposed as backend
    8. フロントエンドにします。

      アプリケーションを使用およびテストするには、フロントエンドへの外部アクセスが必要です。

      kubectl port-forward を使用して、フロントエンドを localhost:8080 で利用できるようにします。

      West:

      kubectl port-forward deployment/frontend 8080:8080

      ブラウザーで http://localhost:8080 に移動すると、Web インターフェイスにアクセスできるようになります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.