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