Terway的預設配置已經能夠滿足絕大多數情境的需求。對Terway進行配置修改是高危操作,可能會導致Terway運行中止等錯誤。如果您對Terway配置有特殊需求,例如增加Terway預留IP資源集區以最佳化Pod IP分配速度等,您可參照本文對Terway進行自訂配置。
使用限制
Terway 配置參數較多,本文僅對參數功能進行說明,不保證所有參數組合在所有情境下均適用,請充分驗證後配置。
部分參數支援通過控制台配置,若在控制台找不到該配置,則當前組件版本不支援,請升級 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無法啟動,請刪除配置後重試。 | 是 | 是 |
| bool | terway-eniip版本需為1.15.0及以上。 是否開啟對稱路由配置功能。開啟後將設定策略路由規則,用於控制網卡流量的源進源出。
| 是 | 否 |
| map[string]any | terway-eniip版本需為1.15.0及以上。 對稱路由配置參數,以下為預設值和參數樣本,一般情況下無需配置。 重要 配置錯誤可能影響存量網路設定,請在測試環境充分驗證後使用。 | 是 | 否 |
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 | 設定建立彈性網卡時使用的安全性群組。最多10個,且安全性群組類型需一致。若配置則取和 | 是 | 是 |
| string | 建立彈性網卡時選擇交換器的策略。
| 是 | 是 |
| bool | 啟用EIP遷移功能。更多詳情,請參見將EIP從Terway遷移至ack-extend-network-controller。 | 是 | 否 |
| string | 叢集IP Family模式。不可修改。 | 否 | 否 |
| bool | 啟用 | 是 | 否 |
| float32 | Kubernetes client QPS配置。需要與 | 是 | 是 |
| int | Kubernetes client Burst配置。需要與 | 是 | 是 |
| string | 建立彈性網卡時設定的資源群組。修改配置對存量網卡不生效。 | 是 | 是 |
| string | terway-eniip版本需為1.15.0及以上。 IP 資源集區同步周期。預設 120 秒。 樣本 | 是 | 否 |
| string | terway-eniip版本需為1.16.0及以上。 IP 位址在被回收前,必須保持閒置時間長度。 樣本: 說明 在回收前,如果有Pod建立或者刪除,時間將重新計算。 | 是 | 否 |
| string | terway-eniip版本需為1.16.0及以上。 兩次回收檢查之間的時間間隔。 樣本: | 是 | 否 |
| int | terway-eniip版本需為1.16.0及以上。 單次批量回收的最大 IP 數量。取值範圍[1, 10]。 樣本: | 是 | 否 |
| string | terway-eniip版本需為1.16.0及以上。 用於隨機化回收時間的抖動因子。取值範圍[0.0, 1.0]。 樣本: | 是 | 否 |
配置方法
通過控制台配置
對於部分常用參數,您可通過控制台進行配置。控制台會對內容進行校正,並攔截格式不匹配的參數。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。
單擊網路頁簽,然後單擊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