通过HTTP API访问容器服务中的应用

当您的容器服务中的应用需要通过外部访问时,可以通过创建HTTP API并配置路由,实现应用的互联网访问。本文以容器服务ACK为例,介绍如何通过云原生API网关实现微服务的外部访问。

前提条件

  1. 已创建容器集群,关于创建集群的具体操作,请参见创建ACK托管集群创建ACS集群

  2. 部署微服务demo至容器服务ACK。

    部署微服务demo

    登录容器服务管理控制台,在左侧导航栏选择集群

    集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态

    在无状态页面右上角单击使用YAML创建资源。使用如下YAML部署一个名为httpbinDeployment,以及一个名为httpbinService

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: httpbin
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: httpbin
      template:
        metadata:
          labels:
            app: httpbin
            version: v1
        spec:
          containers:
            - image: registry.cn-hangzhou.aliyuncs.com/mse-ingress/go-httpbin
              args:
                - "--version=v1"
              imagePullPolicy: Always
              name: httpbin
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: httpbin
      namespace: default
    spec:
      ports:
        - port: 8080
          protocol: TCP
      selector:
        app: httpbin

    在无状态页面单击所创建的httpbin,如下图所示的状态表示应用部署成功。

    image

方案概览

通过创建云原生API网关实例,将云原生API网关与需要暴露的容器服务进行关联,在网关中设置API的路由规则,确保请求能够正确地路由到对应的容器服务,配置完成后,客户端即可通过API网关访问容器中的应用。

  1. 新建云原生API网关实例

    根据已有微服务环境,创建云原生API网关实例。

  2. 创建HTTP API

    为网关实例创建HTTP API。

  3. 创建路由

    为该服务添加路由策略并发布。

    1. 创建服务来源。

      在云原生API网关中添加服务来源,根据实际情况选择容器服务ACK。

    2. 添加服务。

      云原生API网关能够根据容器服务ACK来源获取服务的命名空间,将已有的服务添加到云原生API网关,作为备选服务。

  4. 路由调试

    测试微服务路由功能。

步骤一:新建云原生API网关实例

  1. 登录云原生API网关控制台。如果您是首次使用云原生API网关,您需要进行如下操作:

    说明

    首次访问云原生API网关时,系统将自动提示授权创建服务关联角色。

    1. 在页面中单击立即授权,并在弹出的提示框中单击确定完成创建。

    2. 单击立即体验云原生API网关进入控制台。

  2. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域,单击创建实例

    重要

    云原生API网关的地域与容器服务ACK所在地域保持一致。

  3. 在云原生API网关购买页面中选择相关配置,然后单击立即购买

    image

  4. 确认订单页面中,勾选服务协议我已阅读并同意云原生API网关(按量付费)服务协议,单击立即开通

    说明

    网关实例创建过程可能需要2~3分钟时间,请您耐心等待。

  5. 单击管理控制台,并选择返回实例页面,查看创建的网关信息和状态。

    当网关信息和创建时一致,且状态运行中,则表示网关创建成功。image

步骤二:创建HTTP API

  1. 在左侧导航栏的API页面中,单击创建API

  2. 单击HTTP API卡片中的创建按钮,在创建HTTP API面板中配置API名称进行创建。

步骤三:创建路由

  1. 在左侧导航栏的API页面中,单击目标API名称。

    单击创建路由,在创建路由面板,配置相关参数。

配置路由基本信息

image

  • 域名:您可以直接单击右侧的添加域名,在添加域名面板中创建。

  • 路径(Path):匹配Path参数以/开头的HTTP请求。

关联环境/网关/VPC。

说明

在创建网关实例时,系统将自动创建默认环境关联相关实例,此处也可使用默认环境进行关联。

  1. 从环境/网关/VPC列表中选择步骤一中创建的网关实例及系统自动为您创建的默认环境。

  2. (可选)如果您不想使用默认环境,可单击环境/网关/VPC配置项后方的创建环境,自定义环境创建:所属实例请选择步骤一创建好的实例。

    image

  3. 使用场景:使用场景列表中选择单服务。

关联服务

  1. 后端服务配置项中的服务名称列表中单击关联服务image

  2. 创建服务来源与服务。

    1. 选择来源类型容器服务

    2. 单击添加来源,选择前提条件中创建的集群。

    3. 服务列表中选择服务httpbin,单击确定

      image

    4. 在后端服务配置项中的服务名称下拉列表中选择上一步中创建的服务。

      image

  3. 单击保存并发布

步骤四:路由调试

  1. 在左侧导航栏的API页面中,单击目标API名称。

  2. 在路由列表中,单击目标路由httpbin-demo操作列下的调试,进入调试页面。

  3. 接口参数输入version,单击发送,可看到服务接口的返回结果如下所示。

    image

相关文档