部署Nginx Ingress Controller

云边协同的场景中,边缘单元下的服务呈现本单元访问闭环的特性。您可以通过在云端节点池和边缘节点池部署Nginx Ingress Controller,为边缘单元下的服务提供负载均衡等功能。本文介绍如何在ACK Edge集群的云端节点池和边缘节点池部署Nginx Ingress Controller。

背景信息

阿里云容器服务 Edge 版采用非侵入方式增强,提供边缘自治、边缘单元、边缘流量管理、原生运维API支持等能力,以原生方式支持边缘计算场景下的应用统一生命周期管理和统一资源调度。您可以方便快速的将自己的边缘节点接入到集群中。

注意事项

在云端节点池和边缘节点池部署ack-ingress-nginx-v1时注意事项如下:

  • 要求ACK Edge集群版本大于等于1.19。

  • 支持在一个ACK Edge集群上多次部署, 每次部署需要唯一的发布名称。

  • 支持在一个ACK Edge集群的同一命名空间下多次部署,但为了管理方便,建议每次部署选择独立的命名空间。

  • 首次部署时若不修改参数配置值,则ack-ingress-nginx-v1默认部署到ACK Edge集群的默认节点池。

操作步骤

  1. 登录容器服务管理控制台

  2. 在控制台左侧导航栏,选择市场 > 应用市场

  3. 应用市场应用目录页签,搜索并选中ack-ingress-nginx-v1。

  4. 在ack-ingress-nginx-v1组件页面,单击右上角的一键部署

  5. 在弹出面板中,选择集群命名空间,并填写发布名称

    说明

    在节点池部署ack-ingress-nginx-v1时,建议发布名称以ack-ingress-nginx-v1-{节点池名称}格式命名。例如:ack-ingress-nginx-v1-edge-hangzhou

  6. 单击下一步进入参数配置页面,设置参数信息。

    您可以在容器服务管理控制台集群管理页左侧导航栏中,选择节点管理 > 节点池,查看节点池列表,找到对应的云端节点池ID和边缘节点池ID。

    • 在云端节点池部署时需设置如下参数:

      • service. nodeSelector配置项中加入云端节点池的Label:alibabacloud.com/nodepool-id: {节点池ID}

        说明

        service. nodeSelector字段只需保留alibabacloud.com/nodepool-id: {节点池ID}信息。

        label

      • ingressClassResource配置项中设置namecontrollerValue

        说明

        在同一个ACK Edge集群中多次部署ack-ingress-nginx-v1时,每次部署的namecontrollerValue要确保唯一。命名规范建议如下:

        • nameack-nginx-{节点池名称}, 例如:ack-nginx-edge-hangzhou

        • controllerValue"k8s.io/ack-ingress-nginx-{节点池名称}",例如:"k8s.io/ack-ingress-nginx-edge-hangzhou"

        para

    • 在边缘节点池部署时需设置如下参数:

      • service. nodeSelector配置项中加入边缘端节点池的Label:alibabacloud.com/nodepool-id: {节点池ID}

        说明

        service. nodeSelector字段只需保留alibabacloud.com/nodepool-id: {节点池ID}信息。

        label

      • global. edgeNodePool设置为true。ack-ingress-nginx-v1会自动进行如下操作:

        • 自动将边缘节点侧部署的Nginx Ingress Controller的Service的Type类型由LoadBalancer改为NodePort模式。若您需要将自己边缘侧的服务对公网进行访问,则需要单独配置带有公网IP的负载均衡器。

        • Nginx Ingress Controller使用的镜像,会自动变为公网地址的镜像,避免边缘侧节点无法拉取内网镜像。

        shezhi

      • ingressClassResource配置项中设置namecontrollerValue

        说明

        在同一个ACK Edge集群中多次部署ack-ingress-nginx-v1时,每次部署的namecontrollerValue要确保唯一。命名规范建议如下:

        • nameack-nginx-{节点池名称}, 例如:ack-nginx-edge-hangzhou

        • controllerValue"k8s.io/ack-ingress-nginx-{节点池名称}",例如:"k8s.io/ack-ingress-nginx-edge-hangzhou"

        para

  7. 单击确定完成安装。

  8. 在集群管理页左侧导航栏中,选择应用 > Helm

    在Helm页面可以看到Nginx Ingress Controller服务已经部署成功。