在Terway网络模式下,Terway会使用弹性网卡ENI为容器分配IP地址。在Terway创建ENI资源时,您可以为ENI指定最多5个安全组,从而实现更灵活的Pod网络防火墙策略。本文介绍如何在Terway模式下,为ENI配置多安全组。
前提条件
目前仅v1.1.1及以上版本的Terway组件支持ENI多安全组功能。关于升级Terway组件的具体步骤,请参见管理组件。
背景信息
默认情况下,Terway在创建ENI时会使用一个安全组。您可以指定多个安全组配置,Terway将使用您指定的安全组来创建ENI。
为ENI配置多安全组
执行以下命令,修改Terway的配置ConfigMap。
kubectl edit cm eni-config -n kube-system
在eni_conf中增加以下内容。
"security_groups": ["sg-foo","sg-bar"]
示例如下:
"security_group": "sg-bp19k3sj8dk3dcd7****", "security_groups": ["sg-bp1b39sjf3v49c33****","sg-bp1bpdfg35tg****"],
说明Terway将使用
security_group
和security_groups
中定义的所有安全组,请确保所有安全组在相同的VPC下,且安全组类型相同,并且总数量不超过5个。执行以下命令,重建Terway Pod使安全组配置生效。
kubectl delete pod -n kube-system -l app=terway-eniip
验证配置
登录ECS控制台,在左侧导航栏选择 。
在实例列表,单击目标实例。
在实例详情页面,单击弹性网卡页签。
在弹性网卡页签中,您可以查看到辅助网卡使用的安全组配置为您配置文件中定义的多个安全组配置。
创建集群时为ENI配置多安全组
您可通过API接口,在创建集群时为ENI配置多安全组,配置字段为SecurityGroupIDs
,示例如下:
{
"name": "your_cluster_name",
"cluster_type": "ManagedKubernetes",
"addons": [
{
"name": "terway-eniip",
"config": "{\"IPVlan\":\"true\",\"NetworkPolicy\":\"false\",\"ENITrunking\":\"true\",\"SecurityGroupIDs\": \"[\\\"sg-foo\\\"]\" }"
}
],
....
}