全部產品
Search
文件中心

Container Service for Kubernetes:自訂Terway配置參數

更新時間:Nov 21, 2024

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. 登入Container Service管理主控台,在左側導覽列選擇叢集

  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的更多操作,請參見管理配置項