Terway网络下所有节点默认使用命名空间kube-system中名称为eni-config的ConfigMap,如果需要按节点维度配置所使用的虚拟交换机、安全组,则可以通过创建新的ConfigMap实现。Terway将会以MergePatch(rfc7396)的形式将新配置合并到默认配置上。
本文介绍Terway网络下如何实现节点级别的网络配置。
前提条件
场景图
给特定Pod独立的NAT出口IP和带宽:
使用限制
仅新建ENI时会使用您指定的虚拟交换机、安全组。如果ENI已经存在,则将使用原有ENI配置。建议您为新节点配置。
共享 ENI 模式(默认):terway-eniip 版本 >= v1.0.10.237。
独占 ENI 模式: terway-eniip 版本 >= v1.14.5。如果需配置请参考为节点池配置独占ENI网络模式。
操作步骤
- 在命名空间 - kube-system中创建名称为- foo的ConfigMap。- 登录容器服务管理控制台,在左侧导航栏选择集群列表。 
- 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。 
- 在配置项页面,命名空间选择kube-system,然后单击页面右上角的创建。 
- 在创建页面,配置项名称设置为foo。单击添加,名称设置为eni_conf,值中填入以下内容并将虚拟交换机和安全组参数替换为实际值。 - { "vswitches": { "cn-hangzhou-g": [ "vsw-10000" ], "cn-hangzhou-i": [ "vsw-10001" ] }, "security_group": "sg-10000", "security_groups": [ "sg-10000", "sg-10001" ] }- 参数名称 - 说明 - vswitches - 配置虚拟交换机的可用区和实例ID。 - 您可以登录专有网络管理控制台,在控制台左侧导航栏选择交换机,在交换机列表中查看虚拟交换机所在的可用区和实例ID。配置虚拟交换机的可用区和实例ID时注意以下事项: - 请确保填写的虚拟交换机包含需使用的节点所在的可用区,如果节点可用区和您填写的虚拟交换机可用区不一致,则不生效。 
- 如无需修改,则无需配置 - vswitches相关的键值。
 - security_group - 当您只需要新增一个安全组时,可用 - security_group,并设置- security_groups: null。
- 当您需要新增一个或多个安全组时,可用 - security_groups,并设置- security_group: null。
- 系统将使用重新指定后的 - security_group和- security_groups中的所有安全组,请确保所有安全组在相同的VPC下,且安全组类型相同,并且总数量不超过5个。更多配置多安全组的信息,请参见为弹性网卡(ENI)配置多个安全组。
- 如无需修改,则无需配置安全组相关的键值。 
 - security_groups 
- 单击确定。 
 
- 为节点配置标签。 - 为已有节点配置标签。 - 配置标签。 - 在集群管理页左侧导航栏中,选择,然后单击页面右上角标签与污点管理。 
- 在标签页签中,选择目标节点,单击添加标签。 
- 在添加页面中,名称设置为terway-config,值设置为foo,单击确定。 
 
- 重启Terway容器组以使配置生效。 - 在集群管理页左侧导航栏中,选择。 
- 在容器组页面顶部设置命名空间为kube-system,在搜索框中搜索 - terway-eniip。选中所有搜索到的结果后,单击批量删除。
- 在对话框中,单击确定。删除后,系统会自动重新创建Terway容器组。 - 在容器组页面以 - terway-eniip开头的容器组,其状态列显示Running,说明重启Terway容器组成功。新配置的虚拟交换机和安全组,也会在新建Terway容器组时生效。
 
 
- 为新建节点配置标签。 - 请在创建节点池时添加节点标签,键设置为terway-config,值设置为foo。新建节点池,请参见创建节点池。 
 
- 检查Terway容器组分配的ENI是否使用了指定的虚拟交换机、安全组。 - 登录ECS管理控制台,在左侧导航栏中选择。 
- 单击目标实例。在实例页面单击弹性网卡页签,在此页面下查看Pod分配的ENI是否使用了指定的虚拟交换机、安全组。 
 说明- 如果配置不生效,请参见Terway网络模式下,Pod分配的IP不在虚拟交换机网段中怎么办?