13.2. Configuring services using annotations


サイトを作成し、リンクした後に、Kubernetes アノテーションを使用して、サービスネットワークで利用可能なサービスを制御できます。

13.2.1. アノテーションを使用したサービスネットワーク上での簡単なサービスの公開

このセクションでは、skupper expose コマンドの代替手段を説明します。これにより、既存のリソースにアノテーションを付けて、サービスネットワーク上で単純なサービスを公開できます。

前提条件

  • 公開するサービスが含まれるサイト

手順

  1. サイトとして設定されたクラスターの namespace にログインします。
  2. たとえば、サイトの 1 つにデプロイメント、いくつかの Pod、またはサービスを作成します。

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

    この手順は Skupper 固有のものではありません。つまり、このプロセスはクラスターの標準プロセスから変更されていません。

  3. kubernetes リソースにアノテーションを付け、サービスネットワーク上で通信できるサービスを作成します。以下に例を示します。

    $ kubectl annotate deployment backend "skupper.io/address=backend" "skupper.io/port=8080" "skupper.io/proxy=tcp"

    アノテーションには以下が含まれます。

    • skupper.io/proxy - 使用するプロトコル (tcphttp、または http2)。これは、唯一必要なアノテーションです。たとえば、backend という名前の単純なデプロイメントに skupper.io/proxy=tcp のアノテーションを付けると、サービスは backend として公開され、デプロイメントの containerPort 値がポート番号として使用されます。
    • skupper.io/address - サービスネットワーク上のサービスの名前。
    • skupper.io/port - サービスネットワーク上のサービス用の 1 つ以上のポート。
    注記

    デプロイメントなどの他のリソースではなく、サービスを公開する際には、skupper.io/targetアノテーションを使用して、元のサービスが変更されないようにすることができます。たとえば、backend サービスを公開する場合は、以下のコマンドを実行します。

    $ kubectl annotate service backend "skupper.io/address=van-backend" "skupper.io/port=8080" \
    "skupper.io/proxy=tcp" "skupper.io/target=backend"

    これにより、アノテーションを再度適用しなくても backend サービスを削除して再作成することができます。

  4. サービスを公開していることを確認します。

    $ skupper service status -v
    Services exposed through Skupper:
    ╰─ backend:8080 (tcp)
       ╰─ Sites:
          ├─ 4d80f485-52fb-4d84-b10b-326b96e723b2(west)
          │  policy: disabled
          ╰─ 316fbe31-299b-490b-9391-7b46507d76f1(east)
             │ policy: disabled
             ╰─ Targets:
                ╰─ backend:8080 name=backend-9d84544df-rbzjx
    注記

    サービスの関連ターゲットは、ターゲットが現在のクラスターで使用可能な場合にのみ表示されます。

13.2.2. Skupper アノテーションについて

アノテーションを使用すると、サービスネットワーク上でサービスを公開できます。このセクションでは、これらのアノテーション範囲の詳細を説明します。

skupper.io/address

サービスネットワーク上のサービスの名前。以下に適用されます。

  • デプロイメント
  • StatefulSets
  • DaemonSets
  • サービス
skupper.io/port

サービスネットワーク上のサービスのポート。以下に適用されます。

  • デプロイメント
  • StatefulSets
  • DaemonSets
skupper.io/proxy

使用するプロトコル (tcphttp、または http2)。以下に適用されます。

  • デプロイメント
  • StatefulSets
  • DaemonSets
  • サービス
skupper.io/target

公開するターゲットサービスの名前。以下に適用されます。

  • サービス
skupper.io/service-labels

公開されるサービスのラベルキーと値のコンマ区切りリスト。このアノテーションを使用して、公開されたサービスを監視するラベルを設定できます。以下に適用されます。

  • デプロイメント
  • DaemonSets
  • サービス
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.