使用 Kubernetes Gateway API 通过网关路由出口流量
本节介绍如何使用 Kubernetes Gateway API 通过出口网关路由出站 HTTP 流量。
前提条件
- 已安装 Alauda Service Mesh v2 Operator。
- 已部署 Istio 控制平面。
- 确认 Linux kernel 兼容性。
操作步骤
-
使用以下命令创建名为
egress-gateway的 namespace: -
创建一个名为
egress-gateway-cr.yaml的 YAML 文件,用于定义出口网关。出口网关 CR 文件示例
通过执行以下命令应用该 YAML 文件:
-
通过运行以下命令检查网关配置的状态:
当
PROGRAMMED列的值为True时,表示已达到预期输出。示例输出
-
可选:将网关部署到 基础设施节点:
点击展开
前提条件Alauda Container Platform 4.2.0 或更高版本,或者将 Gateway API CRD 升级到最新版本。
a. 在计划部署 Gateway 的同一 namespace 中创建名为
asm-kube-gateway-options的 ConfigMap:- 指定 configmap 的名称。
- 指定 configmap 的 namespace,与 gateway 相同。
- 设置 node selector 和 toleration,将 gateway pod 调度到基础设施节点。
b. 通过添加
infrastructure.parametersRef字段,在 Gateway 资源中引用该 ConfigMap:- 指定 gateway 的名称。
- 指定 gateway 的 namespace。
验证
-
使用以下命令创建名为
curl的 namespace: -
为该 namespace 启用 sidecar 注入。如果你的环境使用
InPlace升级策略,请运行以下命令:NOTE如果你使用的是
RevisionBased升级策略,请执行以下命令:-
要发现
<revision-name>,请运行:示例输出:
-
使用 revision 名称为 namespace 添加标签,以启用 sidecar 注入:
-
-
通过运行以下命令部署
curl应用: -
初始化并导出一个名为
CURL_POD的环境变量,其中包含 curl pod 的名称: -
使用
curl客户端,通过执行以下命令确认你可以经由出口网关访问httpbin.org:预期输出将显示来自
httpbin.org的响应,这表明出口流量正在通过已配置的网关进行路由。示例输出