有奖捉虫:行业应用 & 管理与支持文档专题 HOT

场景介绍

在边缘节点区分多个地域的情况下,每个地域都有独立的网络架构,需要在本地域对外提供 Ingress 服务能力,腾讯云边缘容器服务基于 NodeUnit的相关概念,在产品上支持在不同地域创建Nginx-Ingress-Controller的能力,同时通过application-grid-wrapper组件,可以将 Ingress-Controller 对 pod 的访问限制在本地域(NodeUnit 范围)之内,具体架构如下图:




操作步骤

Nginx-Ingress-Controller 组件安装

2. 单击目标边缘集群 ID,进入集群详情页。
3. 选择页面左侧组件管理,进入组件列表页面,点击新建,添加 Ingress-Controller 边缘组件。如下图所示:



4. 单击完成
5. 等待边缘组件安装完成。如下图所示:n


6. 单击已经部署的组件名称,进入组件详情页面。如下图所示:


7. 单击新增Nginx Ingress 实例,在指定的地域(NodeUnit)创建 Nginx-Ingress-Controller 实例。如下图所示:n


NginxIngress 名称:指定相应部署的 Ingress-Ingress-Controller 实例的名称,会创建相应的 daemonset。
命名空间:现在默认监听所有命名空间下的 Ingress 资源。
部署选项:现在默认使用 DaemonSet 模式部署,需要用户自行选择 NodeUnit 下的一个或者多个节点提供 Ingress Controller 服务。
节点池:选择您需要部署的节点池(NodeUnit)进行部署,然后选择需要的节点来部署 Nginx-Ingress-Controller 服务。
注意:
选择的节点需要保证 80/443端口未被占用,否则会导致 Nginx-Ingress-Controller 启动失败。
Nginx 配置:配置 Nginx-Ingress-Controller 的资源占用,请根据您业务压力需求合理配置。
8. 单击完成后,即可查看创建的 Ingress-Controller 实例。如下图所示:



9. 查看组件详情,可以确认当前controller 的部署状态,当运行的 Pod 数达到期望后,就表示已经部署成功。如下图所示:




部署服务并使用 Ingress 访问

1. 这里以 Ningx 服务为例,创建一个 Deployment,这些 Pod 分别会部署到 beijing地域和 guangzhou 地域。如下图所示:



然后使用同一个 svc 提供内部访问服务:



这里我们期望从 beijing 地域访问 Ingress 的时候,只会访问到beijing 下的 Pod,即nginx-deployment-7c97977fd8-2zv87,而不会访问到 guangzhou 地域的 pod。
2. 创建 Ingress,进入集群详情页->服务->Ingress,单击新建。如下图所示:



3. 输入所需的 Ingress 信息。如下图所示:n


Ingress 名称:输入需要创建的 Ingress 的名称。
描述:备注描述信息。
Ingress类型:当前默认只支持Nginx Ingress Controller 类型。
命名空间:指定命名空间创建此 Ingress。
节点池:选择此 Ingress 需要绑定的 Ingress-Controller,也就是上面部署的 Nginx-Ingress-Controller 实例。
转发配置:这里按照服务的具体配置输入。例如这里输入自定义域名test.k8s.io,路径为echo,后端服务指定为上面创建的 svc-nginx
4. 在相应的地域内访问 ingress 服务。例如在beijing地域内,访问http://test.k8s.io/echo,如下图所示:



可以进行多次访问测试,会发现所有的访问都会被限制在 beijing 地域的 Pod 中,不会访问到 guangzhou 地域中。