通过MSE Ingress访问容器服务和容器计算服务

MSE Ingress作为Higress企业版,兼容Nginx Ingress,比开源自建性能提升一倍,获得信通院行业领先安全成熟度评级,具备低成本、安全、高集成和高可用的产品优势。本文介绍如何通过MSE Ingress访问容器服务和容器计算服务。

重要

为了安全考虑,MSE Ingress禁止暴露kube-system命名空间下的服务。

前提条件

MSE Ingress Controller 支持在ACK 托管版,ACK Serverless和ACS 容器计算服务产品中安装。

视频教程

步骤一:安装MSE Ingress Controller

  1. ACK 托管版/ACK Serverless

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

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

    ACS

    1. 登录容器计算服务控制台,在左侧导航栏选择集群

    2. 集群页面,单击目标集群ID,然后在左侧导航栏,选择运维管理组件管理

  2. 组件管理页面的搜索框中输入mse搜索,然后在MSE Ingress Controller组件卡片中单击安装

    image.png

  3. 安装组件 MSE Ingress Controller对话框中进行参数配置,然后单击确定

    ACK 托管版/ACK Serverless

    将自动创建一个节点规格为 2c4g * 2 的按量付费专业版MSE云原生网关实例,并按照指定的网络类型创建一个标准型I(slb.s2.small)的CLB负载均衡实例。以上默认规格在创建完成后均可修改。参数配置.png

    ACS

    将自动创建一个Serverless版 MSE 云原生网关实例,并按照指定的网络类型创建一个NLB 负载均衡实例。

    image

  4. 如果在安装组件的过程中出现前置检查失败,若是ACK 托管版/ACK Serverless产品请点击此处为MSE Ingress Controller授权。若是ACS产品,请单击此处为MSE Ingress Controller授权

    查看报告.png

  5. 组件安装成功之后,会默认为您创建名称为mse-ingress-pro/serverless-{clusterid}的MseIngressConfig资源和名称为mse的IngressClass资源。

    您可以在工作负载 > 自定义资源 >资源对象浏览器 >API组中搜索mse并查询MseIngressConfig的状态。等待3~5分钟后状态为Listening表示云原生网关创建成功,处于运行状态,并自动监听集群中IngressClass为mse的Ingress资源。image.png

    说明

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

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

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

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

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

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

    • 在安装MSE Ingress Controller之前,如果集群中已经存在了名称为mse的IngressClass资源,则安装MSE Ingress Controller不会自动创建MseIngressConfig资源和MSE云原生网关实例。

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

步骤二:部署后端服务

  1. ACK 托管版/ACK Serverless

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

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

    ACS

    1. 登录容器计算服务控制台,在左侧导航栏选择集群

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

  2. 无状态页面,单击使用YAML创建资源。使用如下YAML部署一个名为httpbin的Deployment,以及一个名为httpbin的Service。

    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

步骤三:配置MSE Ingress

  1. ACK 托管版/ACK Serverless

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

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

    ACS

    1. 登录容器计算服务控制台,在左侧导航栏选择集群

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

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

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

    其中Ingress Class为mse,配置路由为前缀匹配路径/,转发请求到服务httpbin。image.png

  4. 登录MSE网关管理控制台。您可以在对应的云原生网关实例中看到一个名称中包含httpbin的路由。

    image.png

步骤四:访问服务

  1. 您可以通过以下两种方式获取网关IP地址。

    • ACK 托管版/ACK Serverless

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

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

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

        image.png

      ACS

      1. 登录容器计算服务控制台,在左侧导航栏选择集群

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

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

        image

    • 登录MSE网关管理控制台。在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。在您的MSE云原生网关实例的基本概览中查看SLB地址。

      查看地址.png

  2. 通过浏览器、cmd或者其他命令行工具访问SLB地址/version测试服务。

    image.png

相关文档

关于MSE Ingress的介绍和工作原理请参阅MSE Ingress概览