为已有集群开启公网访问能力

SNAT可以为VPC内无公网IP的ECS实例或集群提供访问互联网的代理服务。如果您在创建集群时未开启SNAT功能,可以通过ACK控制台为已有集群开启SNAT功能。本文介绍如何在ACK控制台为未开启公网访问的集群开启SNAT,以实现集群的公网访问能力。

背景信息

ACK暂不支持通过API方式为已有集群开启SNAT功能。关于SNAT相关的说明,请参见什么是NAT网关

操作步骤

为已有集群开启SNAT公网访问能力的流程图及对应操作步骤如下。

创建SNAT

  1. 创建NAT网关。

    1. 登录NAT网关管理控制台

    2. 在左侧导航栏,单击NAT网关 > 公网NAT网关

    3. 公网NAT网关页面,单击创建公网NAT网关

      创建NAT网关的参数说明,请参见创建和管理公网NAT网关实例

      说明

      创建NAT网关时,地域和VPC的配置需要和集群的保持一致。

    成功创建NAT网关后,系统会在VPC的路由表中自动添加一条目标网段为0.0.0.0/0,下一跳为NAT网关的路由条目,用于将流量路由到NAT网关。

    重要

    默认只有VPC的第一个NAT网关,才会自动创建路由条目。对于多个NAT网关,您需手动为其配置路由。具体操作,请参见创建和管理路由表

  2. 创建弹性公网IP。

    在左侧导航栏,选择公网访问 > 弹性公网IP,然后在弹性公网IP页面,单击创建弹性公网IP

    如果您已经有弹性公网IP,可以跳过这一步。

  3. 绑定弹性公网IP到对应的NAT网关。

    1. 在左侧导航栏,单击NAT网关 > 公网NAT网关

    2. 公网NAT网关页面,找到目标NAT网关,然后在操作列下选择1 > 绑定弹性公网IP

    3. 绑定弹性公网IP对话框中,在所在资源组下拉列表中设置资源组,然后在从已有弹性公网IP中选择下拉列表中,选择创建的弹性公网IP。然后单击确定

  4. 为NAT网关创建SNAT条目。

    1. 公网NAT网关页面,找到目标NAT网关,然后在其右侧,单击管理

    2. 单击SNAT管理页签,然后单击创建SNAT条目

    3. 创建SNAT条目页面,配置以下参数,然后单击确定创建

      关于更多创建SNAT条目的参数配置说明,请参见创建SNAT条目

      配置

      说明

      SNAT条目粒度

      选中交换机粒度,然后选择相应的集群网络所使用的虚拟交换机。

      • Terway网络:需要选中节点虚拟交换机和Pod虚拟交换机所对应ID。

      • Flannel网络:只需选中节点虚拟交换机所对应的ID。

      若网络插件为Terway或Flannel网络,请执行以下步骤查询集群网络所使用的节点虚拟交换机ID。

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

      2. 在控制台左侧导航栏中,单击集群

      3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情

      4. 在集群管理页左侧导航栏中,选择节点管理 > 节点池

      5. 在目标节点池右侧操作列单击详情

        基本信息页签的节点配置区域查看节点虚拟交换机ID。Flannel网络

      若网络插件为Terway,请执行以下步骤查询集群网络所使用的Pod虚拟交换机ID。

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

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

      3. 配置项页面顶部,设置命名空间kube-system,单击eni-config

        eni-config页面,vswitches对应的值,即为Pod虚拟交换机ID。

        Pod虚拟交换机ID

      选择公网IP地址

      选择用来提供互联网访问的公网IP。

    创建SNAT条目并配置SNAT规则之后,集群就开启了SNAT。您可以在NAT网关管理控制台看到NAT网关的详细信息,包括SNAT使用的弹性公网IP。下图为Terway网络模式下开启了SNAT公网访问的NAT网关实例。NAT

    单击NAT网关名称,在对应NAT网关实例的SNAT管理页签中,查看并确认已绑定了正确的集群所用虚拟交换机。下图为Terway网络模式下创建的SNAT条目信息。snat

执行结果

登录到集群的节点上,然后访问公网,可以查看网络正常,数据包无丢失。

SNAT 2