Kubernetes 架構是以兩個層級為基礎:控制平面和節點集區中的一或多個節點。 本文說明和比較 Amazon Elastic Kubernetes Service (Amazon EKS) 和 Azure Kubernetes Service (AKS) 如何管理代理程式或背景工作節點。
注意
本文是一系列文章的一部分,可協助熟悉 Amazon EKS 的專業人員瞭解 Azure Kubernetes Service (AKS)。
在 Amazon EKS 和 AKS 中,雲端平臺會提供和管理控制平面層,而客戶會管理節點層。 下圖顯示 AKS Kubernetes 架構中控制平面與節點之間的關聯性。
Amazon EKS 受控節點群組
Amazon EKS 受控節點群組會將 Amazon EKS 叢集的 Amazon Elastic Compute Cloud (EC2) 背景工作節點布建和生命週期管理自動化。 Amazon Web Services (AWS) 使用者可以使用 eksctl 命令行公用程式,為其 EKS 叢集建立、更新或終止節點。 節點更新和終止會自動封鎖和清空節點,以確保應用程式保持可用狀態。
每個受控節點都會布建為 Amazon EKS 運作和控制的 Amazon EC2 自動調整群組的一部分。 Kubernetes 叢集自動調整程式會在 Pod 失敗或重新排程到其他節點時,自動調整叢集中的背景工作節點數目。 每個節點群組都可以設定為跨區域內的多個 可用性區域 執行。
如需 Amazon EKS 受控節點的詳細資訊,請參閱 建立受控節點群組 和 更新受控節點群組。
您也可以在 AWS Fargate 上執行 Kubernetes Pod。 Fargate 為容器提供隨選、大小正確的計算容量。 如需如何搭配 Amazon EKS 使用 Fargate 的詳細資訊,請參閱 AWS Fargate。
AKS節點和節點集區
建立 AKS 叢集會自動建立及設定控制平面,以提供 核心 Kubernetes 服務和 應用程式工作負載協調流程。 Azure 平台會以受控 Azure 資源的形式提供 AKS 控制平面。 控制平面及其資源只會存在於您建立叢集的區域。
節點,也稱為代理程序節點或背景工作節點,裝載工作負載和應用程式。 在 AKS 中,客戶會完全管理並支付連結至 AKS 叢集的代理程式節點費用。
若要執行應用程式並支援服務,AKS 叢集至少需要一個節點:可執行 Kubernetes 節點元件和容器執行階段的 Azure 虛擬機器 (VM)。 每個 AKS 叢集都必須包含至少一個具有一個 節點的系統節點集 區。
AKS 會將設定相同的節點分組至執行 AKS 工作負載的 VM 節點集區。 系統節點集區是裝載核心系統 Pod 的主要用途,例如 CoreDNS。 使用者節點集區主要用來裝載工作負載 Pod。 如果您只想在 AKS 叢集中具備一個節點集區 (例如在開發環境中),則可在系統節點集區上排程應用程式 Pod。
您也可以建立多個用戶節點集區來隔離不同節點上的不同工作負載,以避免 吵雜的鄰近問題,或支援具有不同計算或記憶體需求的應用程式。
系統或用戶節點集區的每個代理程序節點都是布建為 Azure 虛擬機器擴展集 並由 AKS 叢集管理的 VM。 如需詳細資訊,請參閱 節點和節點集區。
您可以在建立 AKS 叢集時,或將新的節點和節點集區新增至現有的 AKS 叢集時,定義背景工作節點的初始數目 和大小 。 如果您未指定 VM 大小,則 Windows 節點集區的預設大小會Standard_D2s_v3,而 Linux 節點集區則Standard_DS2_v2。
重要
若要為節點內部呼叫和與平臺服務的通訊提供更好的延遲,請選取支援 加速網路的 VM 系列。
節點集區建立
您可以使用 Azure 入口網站、Azure CLI、AKS REST API 或基礎結構即程序代碼 (IaC) 工具,例如 Bicep、Azure Resource Manager 範本或 Terraform,將節點集區新增至新的或現有的 AKS 叢集。 如需如何將節點集區新增至現有 AKS 叢集的詳細資訊,請參閱在 Azure Kubernetes Service 中建立和管理叢集的多個節點集區。
當您建立新的節點集區時,相關聯的虛擬機擴展集會在節點資源群組中建立,這是一個 Azure 資源群組,其中包含 AKS 叢集的所有基礎結構資源。 這些資源包括 Kubernetes 節點、虛擬網路資源、受控識別和記憶體。
根據預設,節點資源群組的名稱類似 MC_<resourcegroupname>_<clustername>_<location>
。 AKS 會在刪除叢集時自動刪除節點資源群組,因此您應該只針對共用叢集生命週期的資源使用此資源群組。
新增節點集區
下列程式代碼範例使用 Azure CLI az aks nodepool add 命令,將名為 mynodepool
的節點集區新增至資源群組中myResourceGroup
名為 myAKSCluster
的現有 AKS 叢集。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--node-vm-size Standard_D8ds_v4 \
--name mynodepool \
--node-count 3
現成節點集區
現成節點集區是由現成虛擬機擴展集支持的 節點集區。 搭配 AKS 叢集使用節點的現成虛擬機,可大幅節省成本,利用未使用量的 Azure 容量。 可用未使用容量的數量會根據許多因素而有所不同,包括節點大小、區域和一天中的時間。
部署現成節點集區時,如果容量可用,Azure 會配置現成節點。 但現成節點沒有服務等級協定(SLA)。 備份現成節點集區的現成擴展集會部署在單一容錯網域中,而且不提供高可用性保證。 當 Azure 需要容量回來時,Azure 基礎結構會收回現成節點,而且您在收回前最多會收到 30 秒的通知。 請注意,現成節點集區不能是叢集的默認節點集區。 現成節點集區只能用於次要集區。
現成節點適用於可處理中斷、提早終止或收回的工作負載。 例如,批處理作業、開發和測試環境,以及大型計算工作負載是排程在現成節點集區的良好候選專案。 如需詳細資訊,請參閱 現成實例的限制。
下列 az aks nodepool add
命令會將現成節點集區新增至已啟用自動調整的現有叢集。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myspotnodepool \
--node-vm-size Standard_D8ds_v4 \
--priority Spot \
--eviction-policy Delete \
--spot-max-price -1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3 \
--no-wait
如需現成節點集區的詳細資訊,請參閱 將現成節點集區新增至 Azure Kubernetes Service (AKS) 叢集。
暫時 OS 磁碟
根據預設,Azure 會自動將 VM 作業系統 (OS) 磁碟複寫至 Azure 儲存體,以避免 VM 需要重新配置至另一部主機時遺失數據。 但由於容器的設計不是為了保存本機狀態,因此將OS磁碟保留在記憶體中會提供有限的AKS值。 有一些缺點,例如較慢的節點布建和較高的讀取/寫入延遲。
相反地,暫時 OS 磁碟只會儲存在主電腦上,例如暫存磁碟,並提供較低的讀取/寫入延遲,以及更快的節點調整和叢集升級。 如同暫存磁碟,暫時 OS 磁碟會包含在 VM 價格中,因此不會產生額外的記憶體成本。
重要
如果您未明確要求 OS 的受控磁碟,則 AKS 會盡可能針對指定的節點集區組態,預設為暫時 OS。
若要使用暫時 OS,OS 磁碟必須符合 VM 快取。 Azure VM 文件顯示 IO 輸送量旁括弧內的 VM 快取大小,以 GIB 為單位的快取大小。
例如,AKS 預設Standard_DS2_v2具有預設 100 GB OS 磁碟大小的 VM 大小支援暫時 OS,但只有 86 GB 的快取大小。 如果未明確指定,此組態預設為受控磁碟。 如果您明確要求此大小的暫時 OS,您會收到驗證錯誤。
如果您使用 60 GB OS 磁碟要求相同的Standard_DS2_v2 VM,則預設會取得暫時的 OS。 要求的 60 GB OS 大小小於 86 GB 快取大小上限。
具有 100 GB OS 磁碟的Standard_D8s_v3支援暫時 OS,且具有 200 GB 的快取空間。 如果使用者未指定 OS 磁碟類型,則節點集區預設會取得暫時的 OS。
下列 az aks nodepool add
命令示範如何將新的節點集區新增至具有暫時 OS 磁碟的現有叢集。 參數會將 --node-osdisk-type
OS 磁碟類型設定為 Ephemeral
,而 --node-osdisk-size
參數會定義 OS 磁碟大小。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynewnodepool \
--node-vm-size Standard_D8ds_v4 \
--node-osdisk-type Ephemeral \
--node-osdisk-size 48
如需暫時 OS 磁碟的詳細資訊,請參閱 暫時 OS。
虛擬節點
您可以使用虛擬節點快速相應放大 AKS 叢集中的應用程式工作負載。 虛擬節點提供您快速的Pod布建,而且您只需每秒支付運行時間的費用。 您不需要等候叢集自動調整程式部署新的背景工作節點,以執行更多 Pod 複本。 只有 Linux Pod 和節點才支援虛擬節點。 AKS 的虛擬節點附加元件是以開放原始碼 Virtual Kubelet 項目為基礎。
虛擬節點功能取決於 Azure 容器執行個體。 如需虛擬節點的詳細資訊,請參閱 建立及設定 Azure Kubernetes Services (AKS) 叢集以使用虛擬節點。
污點、標籤和標籤
當您建立節點集區時,您可以將 Kubernetes 污點和標籤和 Azure 標籤新增至該節點集區。 當您新增污點、標籤或標籤時,該節點集區中的所有節點都會取得該污點、標籤或標籤。
若要建立具有污點的節點集區,您可以使用 az aks nodepool add
命令搭配 --node-taints
參數。 若要標記節點集區中的節點,您可以使用 --labels
參數並指定標籤清單,如下列程式代碼所示:
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-vm-size Standard_NC6 \
--node-taints sku=gpu:NoSchedule \
--labels dept=IT costcenter=9999
如需詳細資訊,請參閱 指定節點集區的污點、標籤或標籤。
保留的系統標籤
Amazon EKS 會將自動化 Kubernetes 標籤新增至受控節點群組中的所有節點,例如 eks.amazonaws.com/capacityType
,其會指定容量類型。 AKS 也會自動將系統標籤新增至代理程序節點。
下列前置詞保留給 AKS 使用,且無法用於任何節點:
kubernetes.azure.com/
kubernetes.io/
如需其他保留前置詞,請參閱 Kubernetes 已知卷標、批註和污點。
下表列出保留給 AKS 使用的標籤,且無法用於任何節點。 在數據表中,[ 虛擬節點使用 方式] 資料行會指定虛擬節點上是否支援標籤。
在[ 虛擬節點使用方式 ] 資料列中:
- N/A 表示屬性不適用於虛擬節點,因為它需要修改主機。
- 同樣 地,表示虛擬節點集區的預期值與標準節點集區的值相同。
- 虛擬 取代 VM SKU 值,因為虛擬節點 Pod 不會公開任何基礎 VM。
- 「虛擬節點版本」是指虛擬 Kubelet-ACI 連接器版本 (英文) 的目前版本。
- 虛擬節點子網名稱是將虛擬節點Pod部署到 Azure 容器執行個體的子網。
- 虛擬節點虛擬網路 是包含虛擬節點子網的虛擬網路。
標籤 | 值 | 範例、選項 | 虛擬節點使用方式 |
---|---|---|---|
kubernetes.azure.com/agentpool |
<agent pool name> |
nodepool1 |
相同 |
kubernetes.io/arch |
amd64 |
runtime.GOARCH |
N/A |
kubernetes.io/os |
<OS Type> |
Linux 或 Windows |
Linux |
node.kubernetes.io/instance-type |
<VM size> |
Standard_NC6 |
Virtual |
topology.kubernetes.io/region |
<Azure region> |
westus2 |
相同 |
topology.kubernetes.io/zone |
<Azure zone> |
0 |
相同 |
kubernetes.azure.com/cluster |
<MC_RgName> |
MC_aks_myAKSCluster_westus2 |
相同 |
kubernetes.azure.com/mode |
<mode> |
User 或 System |
User |
kubernetes.azure.com/role |
agent |
Agent |
相同 |
kubernetes.azure.com/scalesetpriority |
<scale set priority> |
Spot 或 Regular |
N/A |
kubernetes.io/hostname |
<hostname> |
aks-nodepool-00000000-vmss000000 |
相同 |
kubernetes.azure.com/storageprofile |
<OS disk storage profile> |
Managed |
N/A |
kubernetes.azure.com/storagetier |
<OS disk storage tier> |
Premium_LRS |
N/A |
kubernetes.azure.com/instance-sku |
<SKU family> |
Standard_N |
Virtual |
kubernetes.azure.com/node-image-version |
<VHD version> |
AKSUbuntu-1804-2020.03.05 |
虛擬節點版本 |
kubernetes.azure.com/subnet |
<nodepool subnet name> |
subnetName |
虛擬節點子網路名稱 |
kubernetes.azure.com/vnet |
<nodepool virtual network name> |
vnetName |
虛擬節點虛擬網路 |
kubernetes.azure.com/ppg |
<nodepool ppg name> |
ppgName |
N/A |
kubernetes.azure.com/encrypted-set |
<nodepool encrypted-set name> |
encrypted-set-name |
N/A |
kubernetes.azure.com/accelerator |
<accelerator> |
Nvidia |
N/A |
kubernetes.azure.com/fips_enabled |
<fips enabled> |
True |
N/A |
kubernetes.azure.com/os-sku |
<os/sku> |
請參閱 建立或更新 OS SKU | Linux SKU |
Windows 節點集區
AKS 支援透過 Azure 容器網路介面 (CNI) 網路外掛程式建立及使用 Windows Server 容器節點集區。 若要規劃必要的子網範圍和網路考慮,請參閱 設定 Azure CNI 網路功能。
下列 az aks nodepool add
命令會新增執行 Windows Server 容器的節點集區。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mywindowsnodepool \
--node-vm-size Standard_D8ds_v4 \
--os-type Windows \
--node-count 1
上述命令會使用 AKS 叢集虛擬網路中的預設子網。 如需如何使用 Windows 節點集區建置 AKS 叢集的詳細資訊,請參閱 在 AKS 中建立 Windows Server 容器。
節點集區考慮
當您建立和管理節點集區和多個節點集區時,適用下列考慮和限制:
配額、VM 大小限制和區域可用性 會套用至 AKS 節點集區。
系統集區工具必須包含至少一個節點。 如果您有另一個系統節點集區在 AKS 叢集中的位置,您可以刪除系統節點集區。 用戶節點集區可以包含零個或多個節點。
建立節點集區之後,您無法變更其 VM 大小。
針對多個節點集區,AKS 叢集必須使用標準 SKU 負載平衡器。 基本 SKU 負載平衡器不支援多個節點集區。
所有叢集節點集區都必須位於相同的虛擬網路中,而且指派給任何節點集區的所有子網都必須位於相同的虛擬網路中。
如果您在叢集建立時建立多個節點集區,所有節點集區的 Kubernetes 版本必須符合控制平面版本。 您可以使用每個節點集區作業來佈建叢集之後更新版本。
節點集區調整
當應用程式工作負載變更時,您可能需要變更節點集區中的節點數目。 您可以使用 az aks nodepool scale 命令,手動相應增加或減少節點數目。 下列範例會將 中的 mynodepool
節點數目調整為五個:
az aks nodepool scale \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--node-count 5
使用叢集自動調整程式自動調整節點集區
AKS 支援使用 叢集自動調整程式自動調整節點集區。 您可以在每個節點集區上啟用這項功能,並定義節點數目下限和最大數目。
下列 az aks nodepool add
命令會將名為 mynodepool
的新節點集區新增至現有的叢集。 參數 --enable-cluster-autoscaler
會在新的節點集區上啟用叢集自動調整程式,且 --min-count
和 --max-count
參數會指定集區中節點數目下限和上限。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynewnodepool \
--node-vm-size Standard_D8ds_v4 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 5
下列 az aks nodepool update 命令會將節點集區的節點數目下限從一個更新為三 mynewnodepool
個。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynewnodepool \
--update-cluster-autoscaler \
--min-count 1 \
--max-count 3
您可以藉由傳遞 --disable-cluster-autoscaler
參數來停用叢集自動調整程式az aks nodepool update
。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--disable-cluster-autoscaler
若要重新啟用現有叢集上的叢集自動調整程式,請使用 az aks nodepool update
,並 --enable-cluster-autoscaler
指定、 --min-count
和 --max-count
參數。
如需有關如何針對個別節點集區使用叢集自動調整程式的詳細資訊,請參閱 自動調整叢集以符合 Azure Kubernetes Service (AKS) 上的應用程式需求。
更新和升級
Azure 會定期更新其 VM 裝載平臺,以改善可靠性、效能和安全性。 這些更新的範圍從修補裝載環境中的軟體元件到升級網路元件或解除委任硬體。 如需 Azure 如何更新 VM 的詳細資訊,請參閱 Azure 中虛擬機的維護。
裝載基礎結構更新的 VM 通常不會影響裝載的 VM,例如現有 AKS 叢集的代理程序節點。 對於影響託管 VM 的更新,Azure 會將需要重新啟動的情況降到最低,方法是在更新主機時暫停 VM,或將 VM 實時移轉至已更新的主機。
如果更新需要重新啟動,Azure 會提供通知和時間範圍,讓您可以在更新適合您時啟動更新。 主計算機的自我維護期間通常是35天,除非更新是緊急的。
您可以使用計畫性維護來更新 VM,並使用 Azure CLI、PowerShell 或 Azure 入口網站 來管理計畫性維護通知。 計劃性維護會偵測您是否使用叢集自動升級,並排程在維護期間自動升級。 如需計劃性維護的詳細資訊,請參閱 az aks maintenanceconfiguration 命令和使用 計劃性維護來排程 Azure Kubernetes Service (AKS) 叢集的維護時段。
Kube 升級
AKS 叢集生命週期的一部分會定期升級至最新的 Kubernetes 版本。 請務必套用升級,以取得最新的安全性版本和功能。 若要升級現有節點集區 VM 的 Kubernetes 版本,您必須封鎖和清空節點,並將其取代為以更新 Kubernetes 磁碟映射為基礎的新節點。
根據預設,AKS 會設定升級以激增一個額外的節點。 設定的預設值會 max-surge
藉由建立額外的節點來取代舊版節點,以在封鎖或清空現有的應用程式之前,將工作負載中斷降至最低。 您可以自定義 max-surge
每個節點集區的值,以在升級速度和升級中斷之間取得取捨。 max-surge
增加值會更快速地完成升級程式,但的max-surge
較大值可能會導致升級程式期間中斷。
例如, max-surge
值為 100% 會藉由將節點計數加倍來提供最快的升級程式,但也會導致節點集區中的所有節點同時清空。 您可能想要使用這個高值進行測試,但針對生產節點集區, max-surge
設定 33% 會更好。
AKS 同時接受的 max-surge
整數和百分比值。 整數,例如 5
表示要激增的五個額外節點。 的 max-surge
百分比值可以是 最小值 1%
和最大值 100%
,四捨五入至最接近的節點計數。 的值 50%
表示集區中目前節點計數的一半激增值。
在升級期間, max-surge
此值可以是最小值 1
,最大值等於節點集區中的節點數目。 您可以設定較大的值,但所使用的 max-surge
節點數目上限不會高於集區中的節點數目。
重要
針對升級作業,節點激增需要足夠的訂用帳戶配額,才能進行要求的 max-surge
計數。 例如,具有五個節點集區的叢集,每個節點都有四個節點,總共有20個節點。 如果每個節點集區 max-surge
的值為50%,您需要額外的計算和IP配額為10個節點,或5個節點的兩個節點,才能完成升級。
如果您使用 Azure Container Networking Interface (CNI),也請確定子網中有足夠的 IP,以 符合 AKS 的 CNI 需求。
升級節點集區
若要查看可用的升級,請使用 az aks get-upgrades。
az aks get-upgrades --resource-group <myResourceGroup> --name <myAKSCluster>
若要查看節點集區的狀態,請使用 az aks nodepool list。
az aks nodepool list -g <myResourceGroup> --cluster-name <myAKSCluster>
下列命令會使用 az aks nodepool 升級來升級 單一節點集區。
az aks nodepool upgrade \
--resource-group <myResourceGroup> \
--cluster-name <myAKSCluster> \
--name <mynodepool> \
--kubernetes-version <KUBERNETES_VERSION>
如需如何升級叢集控制平面和節點集區 Kubernetes 版本的詳細資訊,請參閱:
升級考量
請注意這些升級 AKS 叢集中 Kubernetes 版本的最佳做法和考慮。
最好將 AKS 叢集中的所有節點集區升級為相同的 Kubernetes 版本。 升級所有節點集區和控制平面的預設行為
az aks upgrade
。手動升級,或在您的叢集上設定自動升級通道。 如果您使用計劃性維護來修補 VM,則自動升級也會在指定的維護期間啟動。 如需詳細資訊,請參閱 升級 Azure Kubernetes Service (AKS) 叢集。
az aks upgrade
具有旗標的--control-plane-only
命令只會升級叢集控制平面,而且不會變更叢集中任何相關聯的節點集區。 若要升級個別節點集區,請在 命令中az aks nodepool upgrade
指定目標節點集區和 Kubernetes 版本。AKS 叢集升級會觸發隔離和清空節點。 如果您有可用的低計算配額,升級可能會失敗。 如需增加配額的詳細資訊,請參閱 增加區域 vCPU 配額。
max-surge
使用整數或百分比值,根據您的需求設定 參數。 針對生產節點集區,請使用max-surge
33% 的設定。 如需詳細資訊,請參閱自訂節點激增升級。當您升級使用 CNI 網路的 AKS 叢集時,請確定子網有足夠的私人 IP 位址可供設定建立的額外節點
max-surge
使用。 如需詳細資訊,請參閱在 Azure Kubernetes Service (AKS) 中設定 Azure CNI 網路。如果您的叢集節點集區跨越區域內的多個 可用性區域,升級程式可能會暫時造成不平衡的區域設定。 如需詳細資訊,請參閱跨多個 可用性區域 之節點集區的特殊考慮。
節點虛擬網路
當您建立新的叢集或將新的節點集區新增至現有的叢集時,您會在部署代理程序節點的叢集 虛擬網路 內指定子網的資源識別符。 工作負載可能需要將叢集的節點分割成不同的節點集區,以進行邏輯隔離。 您可以使用個別的子網達成此隔離,每個子網都專用於個別的節點集區。 節點集區 VM 會從其相關聯的子網取得私人 IP 位址。
AKS 支援兩個網路外掛程式:
Kubenet 是Linux的基本簡單網路外掛程式。 使用
kubenet
時,節點會從 Azure 虛擬網絡 子網取得私人 IP 位址。 Pod 會從邏輯上不同的位址空間取得IP位址。 網路地址轉換 (NAT) 可讓 Pod 將來源流量的 IP 位址轉譯為節點的主要 IP 位址,以觸達 Azure 虛擬網路上的資源。 此方法可減少在 Pod 的網路空間中保留的 IP 位址數目。Azure 容器網路介面 (CNI) 會為每個 Pod 提供 IP 位址,以直接呼叫和存取。 這些IP位址在整個網路空間中必須是唯一的。 每個節點都有一個組態參數,用於所支援的最大 Pod 數目。 然後,每個節點的對等IP位址數目會保留給該節點。 這種方法需要預先規劃,而且可能會導致IP位址耗盡,或需要在較大的子網中重建叢集,因為應用程式需求增加。
當您建立新的叢集或將新的節點集區新增至使用 Azure CNI 的叢集時,您可以指定兩個不同子網的資源識別符,一個用於節點,另一個用於 Pod。 如需詳細資訊,請參閱 IP的動態配置和增強的子網支援。
動態IP配置
使用 Azure CNI 的 Pod 會從裝載節點集區的子網取得私人 IP 位址。 Azure CNI 動態IP配置 可以將私人IP位址配置給來自與節點集區裝載子網分開之子網的Pod。 這項功能提供下列優點:
Pod 子網會動態配置 IP 給 Pod。 相較於傳統的 CNI 解決方案,動態配置可提供更佳的 IP 使用率,此解決方案會為每個節點執行靜態 IP 配置。
您可以獨立調整和共享節點和 Pod 子網。 您可以在相同虛擬網路中部署的多個節點集區或叢集之間共用單一 Pod 子網。 此外,您也可以為節點集區設定個別的 Pod 子網路。
由於 Pod 具有虛擬網路專用 IP,因此它們會直接連線到虛擬網路中的其他叢集 Pod 和資源。 這項功能支援非常大型叢集的更佳效能。
如果 Pod 有個別的子網,您可以為不同於節點原則的 Pod 設定虛擬網路原則。 不同的原則允許許多有用的案例,例如只允許Pod的因特網聯機,而不是用於節點,使用NAT閘道修正節點集區中Pod的來源IP,以及使用 網路安全組 (NSG) 來篩選節點集區之間的流量。
網路原則和 Calico Kubernetes 網路原則都適用於動態 IP 配置。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Paolo Salvatori |主要系統工程師
其他投稿人:
- 蘿拉·尼古拉斯 |資深軟體工程師
- 查德·基特爾 |首席軟體工程師
- Ed Price |資深內容項目經理
- Theano Petersen |技術寫入器
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
- 適用於 Amazon EKS 專業人員的 AKS
- Kubernetes 身分識別和存取管理
- Kubernetes 監視和記錄
- 保護 Kubernetes 的網路存取
- Kubernetes 叢集的記憶體選項
- Kubernetes 的成本管理
- 叢集治理
- Azure Kubernetes Service (AKS) 解決方案旅程圖
- Azure Kubernetes Services (AKS) 第 2 天作業指南
- 在邊緣計算選項中選擇 Kubernetes
- 適用於 Azure Kubernetes Service 的 GitOps
相關資源
- AKS 叢集最佳做法
- 使用公用 DNS 區域建立私人 AKS 叢集
- 使用 Terraform 和 Azure DevOps 建立私人 Azure Kubernetes Service 叢集
- 使用 Azure NAT 閘道和 Azure 應用程式閘道 建立公用或私人 Azure Kubernetes Service 叢集
- 搭配私人 AKS 叢集使用私人端點
- 使用 應用程式閘道 輸入控制器建立 Azure Kubernetes Service 叢集
- Kubernetes 簡介
- Azure 上的 Kubernetes 簡介
- 實作 Azure Kubernetes Service (AKS)
- 在 Kubernetes 上開發和部署應用程式
- 將 Azure Kubernetes Service 上的計算成本優化 (AKS)