1.6. namespace からのサービスネットワーク上のサービスの公開
サービスネットワークを作成した後、公開されたサービスはそのネットワーク全体で通信できます。
skupper CLI には、namespace に存在するサービスを公開するための 2 つのオプションがあります。
-
exposeは、単一サービスを使用するデプロイメントなど、単純なユースケースをサポートします。手順は 「サービスネットワーク上での簡単なサービスの公開」 を参照してください。 -
service createとservice bindは、複数のサービスでデプロイメントする場合など、より柔軟にサービスを公開する方法です。手順は 「サービスネットワーク上での複雑なサービスの公開」 を参照してください。
1.6.1. サービスネットワーク上での簡単なサービスの公開 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、簡単なユースケースのサービスネットワークでサービスを有効にする方法を説明します。
手順
たとえば、サイトの 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 このステップは Application Interconnect 固有のものではありません。つまり、このプロセスはお使いのクラスターの標準プロセスと変わりません。
サービスネットワーク上で通信可能なサービスを作成します。
skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]
$ skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
<name>- デプロイメントの名前。 -
<selector>- Pod セレクター。 -
<statefulsetname>- ステートフルセットの名前。
手順 1 のデプロイメント例では、次のコマンドを使用してサービスを作成します。
skupper expose deployment/hello-world-backend --port 8080
$ skupper expose deployment/hello-world-backend --port 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドのオプションは以下の通りです。
-
--port <port-number>: このサービスがサービスネットワーク上で利用可能なポート番号を指定します。注記: このオプションを繰り返すことで、複数のポートを指定できます。 -
--target-port <port-number>: 公開したい Pod のポート番号を指定します。 -
--protocol <protocol>を使用すると、使用するプロトコル、tcp、http、またはhttp2を指定できます。
-
ポートを指定しないと、skupper はデプロイメントの containerPort 値を使用します。
1.6.2. サービスネットワーク上での複雑なサービスの公開 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、より複雑なユースケースのサービスネットワークでサービスを有効にする方法を説明します。
手順
たとえば、サイトの 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 このステップは Application Interconnect 固有のものではありません。つまり、このプロセスはお使いのクラスターの標準プロセスと変わりません。
サービスネットワーク上で通信可能なサービスを作成します。
skupper service create <name> <port>
$ skupper service create <name> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
<name>- 作成するサービスの名前。 -
<port>- サービスが使用するポート。
手順 1 のデプロイメント例では、次のコマンドを使用してサービスを作成します。
skupper service create hello-world-backend 8080
$ skupper service create hello-world-backend 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
サービスをクラスターサービスにバインドします。
skupper service bind <service-name> <target-type> <target-name>
$ skupper service bind <service-name> <target-type> <target-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
-
<service-name>- サービスネットワーク上のサービスの名前。 -
<target-type>は、公開するオブジェクト (deployment、statefulset、pods、またはservice) です。 -
<target-name>- クラスターサービスの名前。 -
--protocol <protocol>を使用すると、使用するプロトコル、tcp、http、またはhttp2を指定できます。
手順 1 のデプロイメント例では、次のコマンドを使用してサービスをバインドします。
skupper service bind hello-world-backend deployment hello-world-backend
$ skupper service bind hello-world-backend deployment hello-world-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
1.6.3. 別の namespace からサービスネットワークへのサービスの公開 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Application Interconnect がデプロイされていない namespace からサービスを公開する方法を示します。
前提条件
- Application Interconnect がデプロイされている namespace。
- 別の namespace で実行されているサービス。
namespace 間の通信を許可するネットワークポリシー。
- クラスターにログインし、実際のサイトの namespace に移動します。
サービスネットワーク上でサービスを公開します。
skupper expose service <service>.<namespace> --address <service>
$ skupper expose service <service>.<namespace> --address <service>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - <service> - サービスネットワーク上のサービスの名前。
- <namespace> - 公開するサービスが実行される namespace の名前。
たとえば、Application Interconnect を
eastnamespace にデプロイし、backendサービスをeast-backendnamespace に作成した場合は、コンテキストをeastnamespace に設定し、以下を使用してサービスネットワーク上でサービスをbackendとして公開します。skupper expose service backend.east-backend --port 8080 --address backend
$ skupper expose service backend.east-backend --port 8080 --address backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記別の namespace からのサービスのみを公開できます。別の namespace からデプロイメントを公開する場合は、公開する前にデプロイメントからサービスを作成してください。