L7路由支持多种能力,例如URI路径匹配、请求头匹配等。本文介绍实现L7路由相关能力的准备工作。
前提条件
已创建ASM企业版实例,并选中启用Ambient Mesh模式。具体操作,请参见创建ASM实例。
已创建Kubernetes集群,且满足Kubernetes集群及配置要求。关于创建集群的具体操作,请参见创建ACK专有集群(已停止新建)或创建。
已按照实际操作系统及平台,下载Istioctl服务网格调试工具。详细信息,请参见Istio。
步骤一:将数据面模式设置为Ambient
将全局命名空间default的数据面模式设置为Ambient。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在全局命名空间页面的数据面模式列,单击default命名空间对应的切换为Ambient Mesh模式,在确认对话框,单击确定。
步骤二:为default命名空间启用Waypoint
Ambient模式下L7功能依赖Waypoint。本步骤为default命名空间下所有的服务启用Waypoint。
创建Gateway资源,ASM会根据该资源创建一个Waypoint代理。
kubectl apply -f - <<EOF apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: waypoint spec: gatewayClassName: istio-waypoint listeners: - name: mesh port: 15008 protocol: HBONE EOF
为default命名空间下所有的服务启用Waypoint。
kubectl label namespace default istio.io/use-waypoint=waypoint --overwrite
步骤三:在数据面集群中部署服务
请结合实际场景,按需部署helloworld、sleep、httpbin、nginx或mocka服务。
部署helloworld服务
使用以下内容,创建helloworld-application.yaml。
部署helloworld应用。
kubectl apply -f helloworld-application.yaml
部署sleep服务
创建sleep-application.yaml。
部署sleep应用。
kubectl apply -f sleep-application.yaml
部署httpbin服务
创建httpbin-application.yaml。
部署httpbin应用。
kubectl apply -f httpbin-application.yaml
部署nginx服务
创建nginx应用。
部署nginx应用。
kubectl apply -f nginx.yaml
部署mocka服务
创建mocka-application.yaml。
部署mocka应用。
kubectl apply -f mocka-application.yaml
该文章对您有帮助吗?