10.2. Configuring services using annotations
サイトを作成し、リンクした後に、Kubernetes アノテーションを使用して、サービスネットワークで利用可能なサービスを制御できます。
10.2.1. アノテーションを使用したサービスネットワーク上での簡単なサービスの公開 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、skupper expose コマンドの代替手段を説明します。これにより、既存のリソースにアノテーションを付けて、サービスネットワーク上で単純なサービスを公開できます。
前提条件
- 公開するサービスが含まれるサイト
手順
- サイトとして設定されたクラスターの namespace にログインします。
たとえば、サイトの 1 つにデプロイメント、いくつかの Pod、またはサービスを作成します。
kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
$ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow この手順は Skupper 固有のものではありません。つまり、このプロセスはクラスターの標準プロセスから変更されていません。
kubernetes リソースにアノテーションを付け、サービスネットワーク上で通信できるサービスを作成します。以下に例を示します。
kubectl annotate deployment backend "skupper.io/address=backend" "skupper.io/port=8080" "skupper.io/proxy=tcp"
$ kubectl annotate deployment backend "skupper.io/address=backend" "skupper.io/port=8080" "skupper.io/proxy=tcp"Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーションには以下が含まれます。
-
skupper.io/proxy- 使用するプロトコル (tcp、http、または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"
$ kubectl annotate service backend "skupper.io/address=van-backend" "skupper.io/port=8080" \ "skupper.io/proxy=tcp" "skupper.io/target=backend"Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、アノテーションを再度適用しなくても
backendサービスを削除して再作成することができます。-
サービスを公開していることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サービスの関連ターゲットは、ターゲットが現在のクラスターで使用可能な場合にのみ表示されます。
10.2.2. Skupper アノテーションについて リンクのコピーリンクがクリップボードにコピーされました!
アノテーションを使用すると、サービスネットワーク上でサービスを公開できます。このセクションでは、これらのアノテーション範囲の詳細を説明します。
- skupper.io/address
サービスネットワーク上のサービスの名前。以下に適用されます。
- デプロイメント
- StatefulSets
- DaemonSets
- サービス
- skupper.io/port
サービスネットワーク上のサービスのポート。以下に適用されます。
- デプロイメント
- StatefulSets
- DaemonSets
- skupper.io/proxy
使用するプロトコル (
tcp、http、またはhttp2)。以下に適用されます。- デプロイメント
- StatefulSets
- DaemonSets
- サービス
- skupper.io/target
公開するターゲットサービスの名前。以下に適用されます。
- サービス
- skupper.io/service-labels
公開されるサービスのラベルキーと値のコンマ区切りリスト。このアノテーションを使用して、公開されたサービスを監視するラベルを設定できます。以下に適用されます。
- デプロイメント
- DaemonSets
- サービス