自定义Terway配置参数

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

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

参数说明

主要参数

参数

说明

是否允许修改

是否支持通过控制台进行配置

10-terway.conf

Terway CNI配置文件参数,其中配置会转换并下发到 /etc/cni/net.d/

10-terway.conflist

Terway CNI配置自定义文件参数。更多信息,请参见配置自定义CNI Chain

disable_network_policy

是否关闭NetworkPolicy功能。

  • false:开启NetworkPolicy功能。

  • true:关闭NetworkPolicy功能。

eni_conf

Terway主要配置参数,例如使用的交换机、安全组配置等。

部分允许

in_cluster_loadbalance

是否启用集群内负载均衡,只在DataPathV2或IPvlan模式下生效。更多信息,请参见如何为Terway IPvlan集群开启集群内负载均衡?

10-terway.conf参数

参数

类型

说明

是否允许修改

是否支持通过控制台进行配置

cniVersion

string

CNI配置版本。

name

string

CNI插件名称。

type

string

CNI插件类型。

capabilities

string

CNI capabilities。

eniip_virtual_type

string

网卡虚拟化方式。

cilium_args

string

Cilium配置参数。

eni_conf参数

参数

类型

说明

是否允许修改

是否支持通过控制台进行配置

credential_path

string

用于访问OpenAPI的STS Token,仅适用于ACK托管集群

service_cidr

string

集群Service网段。

vswitches

map[string][]string

弹性网卡使用的交换机列表。

eni_tags

map[string]string

设置创建弹性网卡时配置的标签。

eni_tag_filter

map[string]string

过滤Terway管理的弹性网卡。更多详情,请参见为弹性网卡(ENI)配置白名单

max_pool_size

int

IP资源池,最大保留空闲IP数量。默认值为5。

min_pool_size

int

IP资源池,最少保留空闲IP数量。默认值为0。

security_group

string

设置创建弹性网卡时使用的安全组。

security_groups

[]string

设置创建弹性网卡时使用的安全组。最多5个,且安全组类型需一致。若配置则取和security_group的并集。

vswitch_selection_policy

string

创建弹性网卡时选择交换机的策略。

  • ordered:选择剩余IP多的交换机。默认值。

  • random:随机选择交换机。

enable_eip_migrate

bool

启用EIP迁移功能。更多详情,请参见将EIP从Terway迁移至ack-extend-network-controller

ip_stack

string

集群IP Family模式。不可修改。

enable_eni_trunking

bool

启用Trunk功能。更多详情,请参见为Pod配置固定IP及独立虚拟交换机、安全组

kube_client_qps

float32

Kubernetes client QPS配置。需要与kube_client_burst同时配置。

kube_client_burst

int

Kubernetes client Burst配置。需要与kube_client_qps同时配置,且需要大于kube_client_qps

配置方法

通过控制台配置

对于部分常用参数,您可通过控制台进行配置。控制台会对内容进行校验,并拦截格式不匹配的参数。

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

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

  3. 单击网络页签,然后单击terway-eniip卡片的配置

  4. 在弹出的面板,对参数进行配置,然后单击右下方的确定

使用kubectl配置

部分参数不会显示在控制台上,您可通过kubectl对这些参数进行配置。

警告

使用kubectl对Terway进行配置是高危操作,kubectl无法对输入内容进行校验,输入不正确的参数可能会导致Terway运行中止等错误。请您确保对配置有充分理解后再进行修改。

  1. 通过获取集群KubeConfig并通过kubectl工具连接集群,执行如下命令配置高级参数。

    kubectl edit cm -n kube-system  eni-config 
  2. 完成配置后,请保存并退出。然后,执行如下命令更新配置。

     kubectl rollout restart -n kube-system daemonset.apps/terway-eniip

相关文档

在ACK集群中配置ConfigMap的更多操作,请参见管理配置项