MSE Ingress 兼容 Nginx Ingress,比开源自建性能提升一倍,获得信通院行业领先安全成熟度评级,具备低成本、安全、高集成和高可用的产品优势。本文介绍如何通过 MSE Ingress 访问容器服务和容器计算服务。
为了安全考虑,MSE Ingress禁止暴露kube-system命名空间下的服务。
前提条件
MSE Ingress Controller 支持在ACK 托管版,ACK Serverless和ACS 容器计算服务产品中安装。
步骤一:安装MSE Ingress Controller
-
ACK 托管版/ACK Serverless
-
登录容器服务管理控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理。
ACS
-
登录容器计算服务控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。
-
-
在组件管理页面的搜索框中输入
mse搜索,在MSE Ingress Controller组件卡片中单击安装。 -
在安装组件 MSE Ingress Controller对话框中进行参数配置,然后单击确认。
ACK 托管版/ACK Serverless
支持新建或者使用已有MSE云原生网关实例。
-
新建:将自动创建一个节点规格为2c4g * 2的按量付费专业版 MSE 云原生网关实例。以上默认规格在创建完成后均可修改。
在网络类型下拉框中选择公网,然后单击确认。
-
使用已有:选择展示列表中,与容器集群处于同一VPC下,且未被其他集群关联的按量付费专业版网关实例。
ACS
支持新建或者使用已有MSE云原生网关实例。
-
新建:将自动创建一个节点规格为2c4g * 2的按量付费专业版 MSE 云原生网关实例,并按照指定的网络类型创建一个NLB 负载均衡实例。
网络类型选择公网,单击确定完成组件安装。
-
选择展示列表中,与容器集群处于同一VPC下,且未被其他集群关联的按量付费专业版网关实例。
如果在安装组件的过程中出现前置检查失败。若是ACK 托管版/ACK Serverless产品请点击此处为MSE Ingress Controller授权;若是ACS产品,请单击此处为MSE Ingress Controller授权。
单击 组件管理 页面中 网络 区域右侧的 查看检查报告 链接,可查看前置检查的详细报告。
-
-
组件安装成功之后,会默认为您创建名称为
mse-ingress-premium-{clusterid}的MseIngressConfig资源和名称为mse-ingress-premium-{clusterid}的网关实例。您可以在工作负载> 自定义资源 中,选择资源对象浏览器页签,在API 组中搜索
mse。单击MseIngressConfig操作列的YAML 编辑,查询MseIngressConfig的状态。等待3~5分钟后确保phase状态为Listening,则表示云原生网关创建成功,处于运行状态,并自动监听集群中IngressClass为mse的Ingress资源。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云原生网关实例。
-
-
登录MSE网关管理控制台,在对应的地域下可以看到名称为
mse-ingress-premium-{clusterid}的云原生网关实例。
步骤二:部署后端服务
-
ACK 托管版/ACK Serverless
-
登录容器服务管理控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。
ACS
-
登录容器计算服务控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态。
-
-
在无状态页面,单击使用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 -
验证已部署Deployment和Service。
-
在左侧导航栏的中,已创建名称为
httpbin的Deployment,且容器组数量更新为1/1表示Deployment部署完成。 -
在左侧导航栏的中,已创建名称为
httpbin的服务,表示Service部署完成。
-
步骤三:配置MSE Ingress
-
ACK 托管版/ACK Serverless
-
登录容器服务管理控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。
ACS
-
登录容器计算服务控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 路由。
-
-
在路由页面,单击创建 Ingress。
-
在创建 Ingress对话框中,选择网关类型为MSE Ingress并配置后端关联的服务和注解等信息,然后单击确定。
其中Ingress Class为mse,配置路由为前缀匹配,路径为
/,转发请求到服务httpbin。 -
登录MSE网关管理控制台。您可以在对应的云原生网关实例中看到一个名称中包含httpbin的路由。
该路由名称包含 httpbin,发布状态为已发布,路由规则为路径
/转发至 httpbin 服务,来源类型为 Ingress。
步骤四:访问服务
-
您可以通过Ingress端点获取NLB域名,或者通过网关获取公网IP。
-
方式一:在集群路由页面查看Ingress的端点信息。
ACK 托管版/ACK Serverless
-
登录容器服务管理控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。
-
在路由页面查看Ingress的端点信息。
端点列显示自动分配的 NLB 负载均衡地址,即为 MSE Ingress 的访问入口。
ACS
-
登录容器计算服务控制台,在左侧导航栏选择集群列表。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 路由。
-
在路由页面查看Ingress的端点信息。
在 Ingress 列表的端点列中,可查看对应的 NLB 负载均衡地址,例如
nlb-lfcq037h1h89ubvq6w.cn-hangzh...。
-
-
方式二:在MSE网关控制台,查看网关中的公网IP地址。
登录MSE网关管理控制台。在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。在您的MSE云原生网关实例的基本概览页面中的接入点页签查看公网IP地址。
-
-
通过浏览器、CMD命令或者其他命令行工具访问
NLB域名/version或网关公网IP/version测试服务。例如,在浏览器中输入nlb-b4ewsj2******.cn-hangzhou.nlb.aliyuncsslb.com/version成功访问。version: v1 hostname: httpbin-897xxx-q7vcg
相关文档
关于MSE Ingress的介绍和工作原理请参阅MSE Ingress管理。