在 sidecar 模式下使用 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 相同。
- 设置节点选择器和容忍度,以将 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的响应,这表明出口流量正在通过已配置的网关进行路由。示例输出
清理
删除在本操作步骤中创建的资源: