Terway网络下所有节点默认使用命名空间kube-system
中名称为eni-config的ConfigMap,如果需要按节点维度配置所使用的虚拟交换机、安全组,则可以通过创建新的ConfigMap实现。Terway将会以MergePatch(rfc7396)的形式将新配置合并到默认配置上。
本文介绍Terway网络下如何实现节点级别的网络配置。
前提条件
场景图
给特定Pod独立的NAT出口IP和带宽:
使用限制
仅新建ENI时会使用您指定的虚拟交换机、安全组。如果ENI已经存在,则将使用原有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不在虚拟交换机网段中怎么办?