开发者社区> 问答> 正文

如何定义 Istio 资源?

如何定义 Istio 资源?

展开
收起
小天使爱美 2020-03-20 19:42:27 1007 0
1 条回答
写回答
取消 提交回答
  • 通过定义 Istio 资源,可以实现服务网格 ASM 的流量治理、鉴权以及安全保护等功能。本文介绍如何定义虚拟服务和 Istio 网关这两种 Istio 资源,以实现相应的流量路由策略。

    前提条件 创建至少一个 ASM 实例,并添加至少一个 ACK 集群到该实例中。详情请参见创建 ASM 实例和添加集群到 ASM 实例。 部署应用到 ASM 实例的集群中,详情请参见部署应用到 ASM 实例。 定义虚拟服务 登录 ASM 控制台。 在左侧导航栏中,选择网格实例,在右侧打开的页面中,选择要配置的 ASM 实例。 在控制平面区域,单击虚拟服务页签,然后单击新建。 在新建页面,按以下步骤定义虚拟服务,然后单击确定。 选择相应的命名空间。 本文以选择default命名空间为例。 在文本框中,定义 Istio 虚拟服务。可参考以下 YAML 定义,详情请参见 Istio 官方示例。 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 服务。 定义 Istio 网关 在控制平面区域,单击 Istio网关页签,然后单击新建。 在新建页面中,按以下步骤定义 Istio 网关,然后单击确定。 选择相应的命名空间。 本文以选择default命名空间为例。 在文本框中,定义 Istio 网关。可参考以下 YAML 定义,详情请参见Istio 官方示例。 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 网关。 执行结果 在浏览器地址栏输入 http://{入口网关服务的IP地址}/productpage,可以看到 Bookinfo 应用的页面。按照以下步骤查看入口网关服务的 IP 地址:

    登录容器服务控制台,选择路由与负载均衡 > 服务。 在服务(Service)页面,在集群下拉列表中选择部署入口网关的集群,然后在命名空间下拉列表中选择 istio-system。 查看名为 istio-ingressgateway 服务所对应的外部端点信息,即是入口网关服务的 IP 地址。 说明 您也可以通过 kubectl 客户端查询入口网关服务的 IP 地址。关于如何连接集群,请参见通过kubectl连接Kubernetes集群。在对应部署入口网关的集群的环境下,执行以下命令查询: kubectl get service istio-ingressgateway -n istio-system -o jsonpath="{.status.loadBalancer.ingress[*].ip}" 在浏览器地址栏输入 http://{入口网关服务的IP地址}/productpage,可以看到 Bookinfo 应用的页面。

    2020-03-20 19:43:09
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Kubernetes上基于Istio体验云原生应用实践 立即下载
基于Kubernetes的互联网Ingress实践 立即下载
基于kubernetes的互联网ingress实践 立即下载