Using xDS gRPC
このページでは、QuarkusアプリケーションでxDS gRPCの利用を有効にする方法について説明します。
| This Quarkus xDS gRPC integration currently doesn’t support building native executables due to the issues with shaded grpc-netty library while running native IT tests. |
プロジェクトの設定
Quarkus gRPC xDSエクステンションをビルドファイルに追加します:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-grpc-xds</artifactId>
</dependency>
implementation("io.quarkus:quarkus-grpc-xds")
This transitively adds io.quarkus:quarkus-grpc extension dependency.
|
サーバーの設定
ビルド時に固定される設定プロパティ - それ以外の設定プロパティは実行時に上書き可能
Configuration property |
タイプ |
デフォルト |
|---|---|---|
Explicitly enable use of XDS. Environment variable: Show more |
boolean |
|
Use secure credentials. Environment variable: Show more |
boolean |
|
サーバー設定例
サーバーxDSを有効にするには、次の設定を使用します。
xDSはサーバー上で明示的に有効にする必要があり、その後、正しいxDSサーバーポート(デフォルトは9000)でそれを使用することを確認します。もし、 XdsServerCredentials を使用したい場合は、 xds.secure を true にセットしてください。
quarkus.grpc.server.xds.enabled=true
#quarkus.grpc.server.xds.secure=true
quarkus.grpc.server.port=30051
When xDS is configured, plain-text is automatically disabled.
|
クライアント設定
ビルド時に固定される設定プロパティ - それ以外の設定プロパティは実行時に上書き可能
Configuration property |
タイプ |
デフォルト |
|---|---|---|
Explicitly enable use of XDS. Environment variable: Show more |
boolean |
|
Use secure credentials. Environment variable: Show more |
boolean |
|
Optional explicit target. Environment variable: Show more |
string |
| When xDS target property is used, name resolver, host, and port are not used |
クライアント設定例
クライアントxDSを有効にするには、次の設定を使用します。
xDSを明示的に有効にするか、 xds ネームリゾルバを使用し、正しいxDSサーバーポート(デフォルトは9000)を指定することを確認してください。もし、 XdsChannelCredentials を使用したい場合は、 xds.secure を true にセットしてください。
#quarkus.grpc.clients.<client-name>.xds.enabled=true
#quarkus.grpc.clients.<client-name>.xds.secure=true
quarkus.grpc.clients.<client-name>.name-resolver=xds
quarkus.grpc.clients.<client-name>.port=30051
When xDS is configured, plain-text is automatically disabled.
|
Kubernetes設定例
以下は、KubernetesのIstio Service MeshでxDS gRPCを使用する場合の(必須)追加設定例です。
quarkus.kubernetes.ports.grpc.container-port=30051
quarkus.kubernetes.annotations."inject.istio.io/templates"=grpc-agent
quarkus.kubernetes.annotations."proxy.istio.io/config"={"holdApplicationUntilProxyStarts": true}