阿里云服务网格ASM公测来袭系列之六:在ASM中为应用定义路由规则-阿里云开发者社区

开发者社区> 阿里云容器服务 ACK> 正文
登录阅读全文

阿里云服务网格ASM公测来袭系列之六:在ASM中为应用定义路由规则

简介: 通过管理 Istio 资源定义,可以实现 ASM 服务网格的流量治理、鉴权以及安全保护等能力。本文介绍如何定义虚拟服务和目标规则这两种 Istio 资源。

通过管理 Istio 资源定义,可以实现 ASM 服务网格的流量治理、鉴权以及安全保护等能力。本文介绍如何定义虚拟服务和目标规则这两种 Istio 资源。

欢迎扫码入群进一步交流:
image

定义虚拟服务

  • 在控制平面区域,选择虚拟服务页签,然后单击新建。
  • 在新建页面,定义虚拟服务,单击确定。
  • 选择相应的命名空间。本例中选择的命名空间为 default。
  • 在文本框中,定义 Istio 虚拟服务。可参考如下 YAML 定义:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: bookinfo
spec:
  hosts:
  - "*"
  gateways:
  - bookinfo-gateway
  http:
  - match:
    - uri:
        exact: /productpage
    - uri:
        prefix: /static
    - uri:
        exact: /login
    - uri:
        exact: /logout
    - uri:
        prefix: /api/v1/products
    route:
    - destination:
        host: productpage
        port:
          number: 9080
  • 在虚拟服务页面可以看到新建的 bookinfo 服务。
    image.png

定义 Istio 网关

  • 在控制平面区域,选择Istio网关页签,然后单击新建。
  • 在新建页面中,定义虚拟服务,单击确定。
  • 选择相应的命名空间。本例中选择的命名空间为 default。
  • 在文本框中,定义 Istio 网关。可参考如下 YAML 定义:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: bookinfo-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
  • 在Istio服务网关页面可以看到新建的 bookinfo-gateway 网关。

image.png

执行结果

在浏览器地址栏输入 http://{入口网关服务的IP地址}/productpage,可以看到 Bookinfo 应用的页面。按照如下步骤查看入口网关服务的 IP 地址:

  • 登录容器服务控制台,选择路由与负载均衡 > 服务。
  • 在服务(Service)页面,在集群和命名空间下拉列表中分别选择部署入口网关的集群和 istio-system。
  • 查看名为 istio-ingressgateway 服务所对应的外部端点信息,即是入口网关服务的 IP 地址。
  • 也可以通过 kubectl 客户端查询入口网关服务的 IP 地址。在对应部署入口网关的集群的环境下,执行以下命令查询:
kubectl get service istio-ingressgateway -n istio-system -o jsonpath="{.status.loadBalancer.ingress[*].ip}"

image.png

由于 Reviews 微服务有 3 个版本,因此刷新页面可以看到 3 种不同的显示内容:

  • v1 版本不会调用 Ratings 服务。
  • v2 版本会调用 Ratings 服务,并使用 1 到 5 个黑色星形图标来显示评分信息。
  • v3 版本会调用 Ratings 服务,并使用 1 到 5 个红色星形图标来显示评分信息。

当然,可以继续定义目标规则或者修改虚拟服务,使用Istio的其他更多功能。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云容器服务 ACK
使用钉钉扫一扫加入圈子
+ 订阅

云端最佳容器应用运行环境,安全、稳定、极致弹性

官方博客
最新文章
相关文章
官网链接