使用 Istio API 通过网关路由出口流量
本节介绍如何使用 Istio API 通过已安装网关注入的网关路由出站 HTTP 流量。
前提条件
- 已使用网关注入安装 Istio 网关。
操作步骤
-
通过执行以下命令创建一个名为
curl的命名空间: -
为该命名空间启用 sidecar 注入。如果您的环境使用
InPlace升级策略,请运行以下命令:NOTE如果您使用的是
RevisionBased升级策略,请执行以下命令:-
运行以下命令以查询您的
<revision-name>:示例输出:
-
使用查询到的 revision 名称为命名空间打标签以启用 sidecar 注入:
-
-
运行以下命令部署
curl应用: -
初始化并导出包含 curl pod 名称的环境变量
CURL_POD: -
创建一个名为
http-se.yaml的 YAML 文件,用于将流量从网格引导到外部服务。以下示例定义了一个针对特定 URL 的ServiceEntry。示例配置
-
通过执行以下命令应用该 YAML 文件:
-
确认
ServiceEntry配置已成功应用。通过运行以下命令向上一步中指定的主机发送 HTTP 请求:该命令应返回类似
302(重定向)或200(成功)的 HTTP 状态码,确认连接正常。 -
创建一个名为
http-egress-gw.yaml的 YAML 文件,定义一个出口Gateway并将流量从网格路由到为外部服务定义的主机。示例配置
-
通过执行以下命令应用该 YAML 文件:
-
创建一个名为
http-egress-vs.yaml的 YAML 文件,用于配置VirtualService,管理应用 sidecar 通过出口网关到外部主机的流量。示例配置
-
通过运行以下命令应用该 YAML 文件:
-
重新向该 URL 发送 HTTP 请求:
终端输出应类似如下所示:
示例输出
-
通过运行以下命令确认请求是否通过网关路由:
启用访问日志访问日志必须启用,此验证步骤才能正常工作。您可以通过创建以下
Telemetry资源来启用访问日志。终端应显示类似如下信息:
示例输出