访问 Bookinfo

本指南将引导您通过 Istio Ingress Gateway 访问 Bookinfo 并验证其功能。本指南中的 Ingress Gateway 使用经典的 Istio VirtualService API。

在开始之前,请确保:

为了简化设置过程,本教程使用 NodePort 方法访问 Ingress Gateway,免去对 LoadBalancer 的需求。访问 Bookinfo 应用将通过节点 IP 和节点端口进行。

第 1 步:部署 Ingress Gateway

  1. 创建项目和命名空间 导航到 项目管理 页面,点击 创建项目,命名为 platform,并选择 Bookinfo 应用所在的集群。 在项目详情中,左侧导航面板下,点击 命名空间 创建名为 platform-gateway 的命名空间。

  2. 部署 Ingress Gateway 前往 平台管理,导航至 服务网格 > 网关,点击 部署网关。填写网关参数:

    • 基本信息:命名为 public-ingressgw,网关类型为 Ingress Gateway,选择网关类型为 Shared,其余参数保持默认。

    • 部署配置:选择命名空间 platform-gateway,节点标签选择 ingress:true,其余参数保持默认。

    • 网络配置:选择 NodePort,将 HTTP 协议主机端口设置为 30665,HTTPS 主机端口设置为 30666

    • 检查端口可用性:执行以下命令以确保端口未被占用:

      kubectl get svc --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,TYPE:.spec.type,NODEPORT:.spec.ports[*].nodePort' | grep NodePort
      

第 2 步:创建网关配置

  1. 导航至网关详情页面,切换到 网关配置 选项卡,点击 创建网关配置
  2. 命名为 public-ingressgw-gateway,选择 HTTP 端口 80,将主机设置为 *,然后点击创建。

第 3 步:创建虚拟服务

  1. 切换到 虚拟服务 选项卡,点击 创建路由配置
  2. 命名为 public-ingressgw-vs,选择命名空间 platform-gateway,路由目标选择 命名空间:demo-dev服务:productpage端口:9080

测试 Ingress 流量

  1. 获取 GATEWAY_IP_PORT

    • 首先,通过执行以下命令找到 Ingress Gateway 所在节点的 IP 地址:

      kubectl get nodes -o wide
      
    • 将节点 IP 与端口 30665 组合形成 GATEWAY_IP_PORT,例如 192.168.130.0:30665

  2. 执行以下命令以验证 Ingress Gateway 是否正常工作:

    export GATEWAY_IP_PORT=<node_IP>:30665
    curl -k -s http://$GATEWAY_IP_PORT/productpage | grep -o "<title>.*</title>"
    
  3. 预期输出应类似于:

    <title>Simple Bookstore App</title>