Using xDS gRPC

此页面阐述了如何在 Quarkus 应用程序中启用 xDS gRPC 使用。

由于运行原生 IT 测试时,经过 shaded 的 grpc-netty 库有问题,因此,该 Quarkus xDS gRPC 集成目前不支持构建原生执行文件。

Configuring your project

将 Quarkus gRPC xDS 扩展添加到您的构建文件中:

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-grpc-xds</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-grpc-xds")

这会传递添加 io.quarkus:quarkus-grpc 扩展依赖项。

Server configuration

Unresolved include directive in modules/ROOT/pages/grpc-xds.adoc - include::../../../target/quarkus-generated-doc/config/quarkus-grpc_quarkus.grpc.server.xds.adoc[]

Server configuration example

若要启用服务器 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

配置 xDS 时,`plain-text`会被自动禁用。

Client configuration

Unresolved include directive in modules/ROOT/pages/grpc-xds.adoc - include::../../../target/quarkus-generated-doc/config/quarkus-grpc_quarkus.grpc.clients.-client-name-.xds.adoc[]

当使用 xDS 目标属性时,名称解析器、主机和端口未使用

Client configuration example

若要启用客户端 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

配置 xDS 时,`plain-text`会被自动禁用。

Kubernetes configuration example

以下是使用 Kubernetes 中的 Istio 服务网格与 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}