本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
Terway的默认配置已经能够满足绝大多数场景的需求。对Terway进行配置修改是高危操作,可能会导致Terway运行中止等错误。如果您对Terway配置有特殊需求,例如增加Terway预留IP资源池以优化Pod IP分配速度等,您可参照本文对Terway进行自定义配置。
Terway配置示例
集群中Terway组件的配置项ConfigMap文件格式如下。
apiVersion: v1
data:
10-terway.conf: | # Terway CNI配置文件参数,其中配置会转换并下发到 /etc/cni/net.d/。请勿修改。
{
"cniVersion": "0.4.0",
"name": "terway",
"capabilities": {"bandwidth": true},
"eniip_virtual_type": "datapathv2",
"host_stack_cidrs": ["169.254.20.10/32"],
"cilium_args": "",
"type": "terway"
}
disable_network_policy: "false" # 是否关闭NetworkPolicy功能开关。
eni_conf: | # Terway主要配置参数,例如使用的交换机、安全组配置等。
{
"version": "1",
"max_pool_size": 5,
"min_pool_size": 0,
"credential_path": "/var/addon/token-config",
"enable_eni_trunking": true,
"vswitches": {"cn-hangzhou-j":["vsw-foo"],"cn-hangzhou-k":["vsw-foo"]},
"eni_tags": {"ack.aliyun.com":"c7c3cfoo"},
"service_cidr": "192.168.0.0/16",
"security_group": "sg-foo",
"ip_stack": "ipv4",
"vswitch_selection_policy": "ordered"
}
in_cluster_loadbalance: "true" # 集群内负载均衡,DataPathV2或IPvlan模式下生效,
kind: ConfigMap
metadata:
name: eni-config
namespace: kube-system
参数说明
主要参数
参数 | 说明 | 是否允许修改 | 是否支持通过控制台进行配置 |
| Terway CNI配置文件参数,其中配置会转换并下发到 | 否 | 否 |
| Terway CNI配置自定义文件参数。更多信息,请参见配置自定义CNI Chain。 | 是 | 否 |
| 是否关闭NetworkPolicy功能。
| 是 | 是 |
| Terway主要配置参数,例如使用的交换机、安全组配置等。 | 是 | 部分允许 |
| 是否启用集群内负载均衡,只在DataPathV2或IPvlan模式下生效。更多信息,请参见如何为Terway IPvlan集群开启集群内负载均衡?。 | 是 | 是 |
10-terway.conf参数
参数 | 类型 | 说明 | 是否允许修改 | 是否支持通过控制台进行配置 |
| string | CNI配置版本。 | 否 | 否 |
| string | CNI插件名称。 | 否 | 否 |
| string | CNI插件类型。 | 否 | 否 |
| string | CNI capabilities。 | 是 | 否 |
| string | 网卡虚拟化方式。 | 否 | 否 |
| string | Cilium配置参数。例如 重要 参数支持情况随社区版本变化,不支持向后兼容能力。如需在实际环境中使用这些参数,请确保充分验证后再使用。如升级时Terway Pod无法启动,请删除配置后重试。 | 是 | 否 |
eni_conf参数
参数 | 类型 | 说明 | 是否允许修改 | 是否支持通过控制台进行配置 |
| string | 用于访问OpenAPI的STS Token,仅适用于ACK托管集群。 | 否 | 否 |
| string | 集群Service网段。 | 否 | 否 |
| map[string][]string | 弹性网卡使用的交换机列表。 | 是 | 是 |
| map[string]string | 设置创建弹性网卡时配置的标签。 | 否 | 否 |
| map[string]string | 过滤Terway管理的弹性网卡。更多详情,请参见为弹性网卡(ENI)配置白名单。 | 是 | 否 |
| int | IP资源池,最大保留空闲IP数量。默认值为5。 | 是 | 是 |
| int | IP资源池,最少保留空闲IP数量。默认值为0。 | 是 | 是 |
| string | 设置创建弹性网卡时使用的安全组。 | 是 | 否 |
| []string | 设置创建弹性网卡时使用的安全组。最多5个,且安全组类型需一致。若配置则取和 | 是 | 否 |
| string | 创建弹性网卡时选择交换机的策略。
| 是 | 否 |
| bool | 启用EIP迁移功能。更多详情,请参见将EIP从Terway迁移至ack-extend-network-controller。 | 是 | 否 |
| string | 集群IP Family模式。不可修改。 | 否 | 否 |
| bool | 启用 | 是 | 否 |
| float32 | Kubernetes client QPS配置。需要与 | 是 | 否 |
| int | Kubernetes client Burst配置。需要与 | 是 | 否 |
配置方法
通过控制台配置
对于部分常用参数,您可通过控制台进行配置。控制台会对内容进行校验,并拦截格式不匹配的参数。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择
。单击网络页签,然后单击terway-eniip卡片的配置。
在弹出的面板,对参数进行配置,然后单击右下方的确定。
使用kubectl配置
部分参数不会显示在控制台上,您可通过kubectl对这些参数进行配置。
使用kubectl对Terway进行配置是高危操作,kubectl无法对输入内容进行校验,输入不正确的参数可能会导致Terway运行中止等错误。请您确保对配置有充分理解后再进行修改。
通过获取集群KubeConfig并通过kubectl工具连接集群,执行如下命令配置高级参数。
kubectl edit cm -n kube-system eni-config
完成配置后,请保存并退出。然后,执行如下命令更新配置。
kubectl rollout restart -n kube-system daemonset.apps/terway-eniip
相关文档
在ACK集群中配置ConfigMap的更多操作,请参见管理配置项。