通过APIG Ingress访问ACK托管集群

APIG Ingress作为Higress企业版,兼容Nginx Ingress,具备低成本、安全、高集成和高可用的产品优势。可通过APIG Ingress访问容器服务和容器计算服务集群。

重要

出于安全考量,APIG Ingress禁止暴露kube-system命名空间下的服务。

准备工作

APIG Controller 支持在ACK 托管版集群中安装。

步骤一:安装APIG Controller

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

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理

  3. 组件管理页面的搜索框中输入APIG搜索,在APIG Controller组件卡片中单击安装

    image

  4. 安装组件 APIG Controller对话框中进行参数配置,然后单击确认

    • 新建:

      将自动创建一个规格为 apig.small.x1 的按量付费的云原生 API 网关实例。

      image

    • 使用已有:

      选择展示列表中,与容器集群处于同一VPC下,且未被其他集群关联的按量付费的云原生API网关实例。

    如果组件安装出现前置检查失败,请APIG Controller授权
  5. 检查组件安装是否成功。

    组件安装后,默认创建名为apig-controller-pro-{clusterid}ApigConfig资源和名称为apig-controller-pro-{clusterid}的网关实例。

    可在工作负载 > 自定义资源 中,选择资源对象浏览器页签,在API中搜索apig。单击ApigConfig操作列的YAML编辑,查询ApigConfig的状态。等待3~5分钟后确保phase状态为Listening则表示云原生API网关创建成功,处于运行状态,并自动监听集群中IngressClassapigIngress资源。

    image

    ApigConfig会按照Pending > Running > Listening的状态依次变化。各状态说明如下:

    • Pending:表示云原生API网关正在创建中,需等待3min左右。

    • Running:表示云原生API网关创建成功,并处于运行状态。

    • Listening:表示云原生API网关处于运行状态,并监听集群中Ingress资源。

    • Failed:表示云原生API网关处于非法状态,可以查看Status字段中Message进一步明确原因。

    重要
    • 新建模式下,安装APIG Controller会默认创建一个ApigConfig资源,该资源的生命周期与云原生API网关实例是绑定的。删除ApigConfig资源会级联删除对应的云原生API网关实例,请勿随意删除ApigConfig资源。

    • 在安装APIG Controller之前,如果集群中已经存在了名称为apigIngressClass资源,则安装APIG Controller不会自动创建ApigConfig资源和云原生API网关实例。

  6. 登录云原生API网关管理控制台,在对应的地域下可以看到名称为apig-controller-pro-{clusterid}的云原生网关实例。

    image

步骤二:部署后端服务

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

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

  3. 无状态页面,单击使用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
  4. 验证已部署DeploymentService。

    1. 在左侧导航栏的工作负载 > 无状态中,已创建名称为httpbinDeployment,且容器组数量更新为1/1表示Deployment部署完成。

      image

    2. 在左侧导航栏的网络 > 服务中,已创建名称为httpbin的服务,表示Service部署完成。

      image

步骤三:配置APIG Ingress

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

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 路由

  3. 路由页面,单击创建 Ingress

  4. 创建 Ingress对话框中,选择网关类型APIG Ingress并配置后端关联的服务和Annotation等信息,然后单击确定

    说明

    其中Ingress Classapig,配置路由为前缀匹配路径/,转发请求到服务httpbin

  5. 登录云原生API网关控制台,在对应的云原生API网关实例中看到一个名称中包含{gwid}-ingressAPI。

    image

步骤四:访问服务

  1. 通过Ingress端点获取NLB域名,或者通过网关获取公网IP。

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

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 路由

    3. 路由页面查看Ingress的端点信息。

      image

  2. 通过浏览器、CMD命令或者其他命令行工具访问接入点域名/version网关公网IP/version测试服务。例如,在浏览器中输入env-******-cn-hangzhou.alicloudapi.com/version成功访问。

    image

相关文档

关于APIG Ingress的介绍和工作原理请参阅APIG Ingress管理