共用方式為


使用進階容器網路服務啟用 eBPF 主機路由 (預覽版)

這很重要

eBPF Host Routing with Advanced Container Networking Services 目前為預覽版。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

本文說明如何在 Azure Kubernetes Service (AKS) 叢集上使用進階容器網路服務 (ACNS) 啟用 eBPF 主機路由。

先決條件

  • 具有有效訂閱的 Azure 帳戶。 如果您沒有帳戶,請在開始之前建立 免費帳戶
  • 本文步驟所需的 Azure CLI 最低版本為 2.71.0。 若要尋找版本,請執行 az --version。 如果您需要安裝或升級,請參閱 安裝 Azure CLI

  • eBPF 主機路由僅支援由 Cilium 提供支援的 Azure CNI。 如需受控 Cilium 叢集的詳細資訊,請參閱 設定由 Cilium 提供支援的 Azure CNI

  • 檢閱 限制 區段,以瞭解節點需求以及與現有 iptable 規則的相容性。

安裝 Azure CLI aks-preview 擴充功能

這很重要

AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

使用 az extension addaz extension update 命令安裝或更新 Azure CLI 預覽延伸模組。

aks-preview Azure CLI 延伸模組的最低版本為 14.0.0b6

# Install the aks-preview extension
az extension add --name aks-preview
# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

註冊 AdvancedNetworkingPerformancePreview 功能旗標

使用 AdvancedNetworkingPerformancePreview 命令註冊 az feature register 功能旗標。

az feature register --namespace "Microsoft.ContainerService" --name "AdvancedNetworkingPerformancePreview"

使用命令 az feature show 驗證註冊成功。 註冊需要幾分鐘才能完成。

az feature show --namespace "Microsoft.ContainerService" --name "AdvancedNetworkingPerformancePreview"

一旦功能顯示Registered,請使用Microsoft.ContainerService命令刷新az provider register資源提供者的註冊。

啟用進階容器網路服務和 eBPF 主機路由

若要繼續,您必須有已啟用進階容器網路服務的 AKS 叢集。

具有 az aks create 進階容器網路服務旗標的 --enable-acns命令會建立具有所有進階容器網路服務功能的新 AKS 叢集。 這些功能包括:

  • 容器網路可檢視性: 提供網路流量的深入解析。 若要深入瞭解,請造訪 容器網路可觀察性

  • 容器網路安全性: 提供 FQDN 篩選等安全性功能。 若要深入瞭解,請造訪 容器網路安全性

  • 容器網路效能: 改善 Pod 網路流量的延遲和輸送量。 若要深入瞭解,請瀏覽 容器網路效能

備註

從 Kubernetes 1.33 版開始,具有 Cilium 資料平面的叢集支援具有 eBPF 主機路由的容器網路效能。

警告

只有具有 Ubuntu 24.04 或 Azure Linux 3.0 的節點才相容。 如果使用 Ubuntu 24.04,請參閱 預覽文件 以啟用功能旗標。

使用 az group create 命令建立叢集的 Azure 資源群組。

export LOCATION="<location>"

az group create --location $LOCATION --name <resourcegroup-name>

透過啟用 ACNS --enable-acns 並使用 --acns-datapath-acceleration-mode BpfVeth設定加速模式,以使用 eBPF 主機路由建立新的 AKS 叢集。

# Set environment variables for the AKS cluster name and resource group. Make sure to replace the placeholders with your own values.
export CLUSTER_NAME="<aks-cluster-name>"
export RESOURCE_GROUP="<resourcegroup-name>"
export LOCATION="<location>"
export OS_SKU="<os-sku>" # Use AzureLinux or Ubuntu2404
 
# Create an AKS cluster
az aks create \
    --name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --network-plugin azure \
    --network-plugin-mode overlay \
    --network-dataplane cilium \
    --kubernetes-version 1.33 \
    --os-sku $OS_SKU \
    --enable-acns \
    --acns-datapath-acceleration-mode BpfVeth \
    --generate-ssh-keys

在現有叢集上啟用具有進階容器網路服務的 eBPF 主機路由

az aks update具有進階容器網路服務旗標--enable-acns的命令會更新現有的 AKS 叢集,--acns-datapath-acceleration-mode BpfVeth以啟用進階容器網路服務功能,其中包括容器網路可觀察性容器網路安全性和容器網路效能

備註

在現有叢集上啟用 eBPF 主機路由可能會中斷現有連線。

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --enable-acns \
    --acns-datapath-acceleration-mode BpfVeth

在現有叢集上停用 eBPF 主機路由

eBPF 主機路由可以獨立停用,而不會影響其他 ACNS 功能。 若要停用它,請設定旗標 --acns-datapath-acceleration-mode=None

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --enable-acns \
    --acns-datapath-acceleration-mode None