Using xDS gRPC
此页面阐述了如何在 Quarkus 应用程序中启用 xDS gRPC 使用。
This page explains how to enable xDS gRPC usage in your Quarkus application.
由于运行原生 IT 测试时,经过 shaded 的 grpc-netty 库有问题,因此,该 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.
Configuring your project
将 Quarkus gRPC xDS 扩展添加到您的构建文件中:
Add the Quarkus gRPC xDS extension to your build file:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-grpc-xds</artifactId>
</dependency>
implementation("io.quarkus:quarkus-grpc-xds")
这会传递添加 |
This transitively adds |
Server configuration
Unresolved directive in grpc-xds.adoc - include::{generated-dir}/config/quarkus-grpc_quarkus.grpc.server.xds.adoc[]
Server configuration example
若要启用服务器 xDS,请使用以下配置。
To enable server xDS, use the following configuration.
必须在服务器上显式启用 xDS,然后验证你在正确的 xDS 服务器端口(默认值为 9000)上使用它。如果你想使用 XdsServerCredentials`将 `xds.secure`设置为 `true
。
xDS must be explicitly enabled on the server, then verify you use it on the right xDS server port (default is 9000).
If you want to use XdsServerCredentials
set xds.secure
to true
.
quarkus.grpc.server.xds.enabled=true
#quarkus.grpc.server.xds.secure=true
quarkus.grpc.server.port=30051
配置 xDS 时,`plain-text`会被自动禁用。 |
When xDS is configured, |
Client configuration
Unresolved directive in grpc-xds.adoc - include::{generated-dir}/config/quarkus-grpc_quarkus.grpc.clients.-client-name-.xds.adoc[]
当使用 xDS 目标属性时,名称解析器、主机和端口未使用 |
When xDS target property is used, name resolver, host, and port are not used |
Client configuration example
若要启用客户端 xDS,请使用以下配置。
To enable client xDS, use the following configuration.
你可以显式启用 xDS,也可以使用 xds`名称解析器,并确保将其指向正确的 xDS 服务器端口(默认值为 9000)。如果你想使用 `XdsChannelCredentials`将 `xds.secure`设置为 `true
。
You can either explicitly enable xDS or you use xds
name resolver,
and make sure you point it to the right xDS server port (default is 9000).
If you want to use XdsChannelCredentials
set xds.secure
to 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`会被自动禁用。 |
When xDS is configured, |
Kubernetes configuration example
以下是使用 Kubernetes 中的 Istio 服务网格与 xDS gRPC 时,(所需)附加配置的一个示例。
Below is an example of (required) additional configuration when using xDS gRPC with the Istio Service Mesh in Kubernetes.
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}