使用Azure 防火牆來協助保護 Azure Kubernetes Service (AKS) 叢集

Azure 防火牆
Azure Kubernetes Service (AKS)
Azure Private Link
Azure 虛擬網路
Azure DevOps

本指南說明如何使用 Terraform 和 Azure DevOps,在中樞和輪輻網路拓撲 中建立私人 AKS 叢集。 Azure 防火牆 可用來檢查 Azure Kubernetes Service (AKS) 叢集的流量 。 叢集是由一或多個對等互連至中樞虛擬網路的輪輻虛擬網路所裝載。

架構

Diagram that shows an architecture that has a private A K S cluster in a hub-and-spoke network topology.

下載此架構的 Visio 檔案

工作流程

Terraform 模組 可用來部署具有四個主機子網的新虛擬網路:

  • AKS 叢集 (AksSubnet)。
  • 跳板式虛擬機器 (VM) 和私人端點 (VmSubnet)。
  • 應用程式閘道 WAF2 (AppGatewaySubnet) 。
  • Azure Bastion (AzureBastionSubnet)。

AKS 叢集會使用使用者定義的受控識別來建立其他資源,例如負載平衡器和 Azure 中的受控磁片。 Terraform 模組可讓您選擇性地部署具有這些功能的 AKS 叢集:

AKS 叢集是由下列集區所組成:

  • 僅裝載重要系統 Pod 和服務的系統節點集區
  • 裝載使用者工作負載和成品的使用者節點集區

VM 會部署在裝載 AKS 叢集的虛擬網路中。 當您將 AKS 部署為私人叢集時,系統管理員可以使用此 VM 透過 Kubernetes 命令列工具來 管理叢集 。 VM 的開機診斷記錄會儲存在Azure 儲存體帳戶中。

Azure Bastion 主機透過 SSL 提供對跳板 VM 的改良安全性 SSH 連線。 Azure Container Registry 可用來建置、儲存及管理容器映射和成品(例如 Helm 圖表)。

此架構包含 Azure 防火牆 ,用來透過 DNAT 規則、網路規則和應用程式規則 來控制輸入和輸出流量。 它也有助於使用 威脅情報型篩選 來保護工作負載。 Azure 防火牆和 Bastion 會部署到中樞虛擬網路,該虛擬網路會與裝載私人 AKS 叢集的虛擬網路對等互連。 路由表和使用者定義的路由可用來將輸出流量從私人 AKS 叢集路由至Azure 防火牆。

注意

強烈建議您使用 Azure 防火牆 進階版 SKU,因為它提供 進階威脅防護

金鑰保存庫 是由在 AKS 上執行的工作負載用來透過 Microsoft Entra 工作負載 ID 、秘密存放區 CSI 驅動程式 Dapr 擷取金鑰、 憑證和秘密的秘密存放區。 Azure Private Link 可讓 AKS 工作負載透過虛擬網路中的私人端點存取 Azure PaaS 服務,例如 Azure 金鑰保存庫。

拓撲包含這些服務的私人端點和私人 DNS 區域:

  • Azure Blob 儲存體帳戶
  • Container Registry
  • Key Vault
  • Kubernetes 叢集的 API 伺服器

中樞與輪輻虛擬網路之間有一個虛擬網路連結,可裝載 AKS 叢集和稍早所述的私人 DNS 區域。

Log Analytics 工作區可用來從 Azure 服務收集診斷記錄和計量。

元件

  • Azure 防火牆 是雲端原生智慧型網路防火牆安全性服務,可為在 Azure 中執行的雲端工作負載提供威脅防護。 這是完全具狀態的防火牆即服務,具有內建的高可用性和不受限制的雲端延展性。 其同時提供東西向和南北向的流量檢查。

  • Container Registry 是以開放原始碼 Docker Registry 2.0 為基礎的受控私人 Docker 登錄服務。 您可以使用 Azure 容器登錄搭配現有的容器開發和部署管線,或使用 Container Registry 工作在 Azure 中建置容器映射。

  • Azure Kubernetes Service 藉由將作業額外負荷卸載至 Azure,簡化在 Azure 中部署受控 Kubernetes 叢集。 由於託管的 Kubernetes 服務,Azure 會處理重要的工作,例如健康情況監控和維護。 由於 Kubernetes 主機是由 Azure 管理,因此您只會管理和維護代理程式節點。

  • 金鑰保存庫儲存和控制對秘密的存取,例如 API 金鑰、密碼、憑證和密碼編譯金鑰,並提升安全性。 金鑰保存庫也可讓您輕鬆地布建、管理及部署公用和私人傳輸層安全性/安全通訊端層 (TLS/SSL) 憑證,以搭配 Azure 和內部連線資源使用。

  • Azure Bastion 是一個完全受控的平臺即服務(PaaS),您可以在虛擬網路內布建。 Azure Bastion 提供更完善的安全性遠端桌面通訊協定 (RDP) 和安全殼層 (SSH) 連線至虛擬網路中的 VM,直接從透過 TLS Azure 入口網站。

  • Azure 虛擬機器 提供隨選、可調整的運算資源,可讓您彈性地進行虛擬化。

  • Azure 虛擬網絡 是 Azure 私人網路的基本建置組塊。 虛擬網絡可讓 Azure 資源(例如 VM)彼此通訊、網際網路和內部部署網路,並提升安全性。 Azure 虛擬網路就像是內部部署的傳統網路,但它包含 Azure 基礎結構的優點,例如延展性、可用性和隔離。

  • 虛擬網絡介面 可讓 Azure VM 與網際網路、Azure 和內部部署資源通訊。 您可以將數張網路介面卡新增至一個 Azure VM,讓子 VM 可以有自己的私人網路絡介面裝置和 IP 位址。

  • Azure 受控磁片 提供 Azure 在 Azure VM 上管理的區塊層級儲存體磁片區。 Ultra 磁片、進階固態硬碟 (SSD)、標準 SSD 和標準硬碟 (HDD) 可供使用。

  • Blob 儲存體 是雲端的物件儲存體解決方案。 Blob 儲存體已針對儲存大量非結構化資料進行優化。

  • Private Link 可讓您透過虛擬網路中的私人端點存取 Azure PaaS 服務(例如 Blob 儲存體 和 金鑰保存庫)。 您也可以使用它來存取您擁有或由 Microsoft 合作夥伴所提供的 Azure 託管服務。

替代項目

您可以從 Azure Marketplace 使用協力廠商防火牆, 而不是Azure 防火牆 。 如果您這麼做,您必須負責正確設定防火牆,以檢查和允許或拒絕來自 AKS 叢集的輸入和輸出流量。

案例詳細資料

在生產環境中,與 Kubernetes 叢集的通訊應該受到防火牆的保護,以根據一組安全性規則來監視和控制傳入和傳出網路流量。 防火牆通常會在受信任的網路與不受信任的網路之間建立屏障,例如網際網路。

您可以使用 Terraform 和 Azure DevOps,在中樞和輪輻網路拓撲 中建立私人 AKS 叢集。 Azure 防火牆 可用來檢查 Azure Kubernetes Service (AKS) 叢集的流量 。 叢集是由一或多個對等互連至中樞虛擬網路的輪輻虛擬網路所裝載。

Azure 防火牆支援三個不同的 SKU,以滿足各種客戶使用案例和喜好設定:

  • 建議Azure 防火牆進階版 保護高度敏感的應用程式,例如付款處理。 它支援進階威脅防護功能,例如惡意程式碼和 TLS 檢查。
  • 建議Azure 防火牆 標準 版的客戶尋找第 3 層 7 層防火牆,以及需要自動調整才能處理高達 30 Gbps 的尖峰流量週期的客戶。 它支援企業功能,例如威脅情報、DNS Proxy、自訂 DNS 和 Web 類別。
  • Azure 防火牆 基本建議用於輸送量需求小於 250 Mbps 的客戶。

下表顯示三個Azure 防火牆 SKU 的功能。 如需詳細資訊,請參閱 Azure 防火牆定價

Screenshot that shows features of the three Azure Firewall SKUs

根據預設,AKS 叢集具有不受限制的輸出網際網路存取。 此網路存取層級可讓在 AKS 叢集中執行的節點和服務視需要存取外部資源。 如果您想要限制輸出流量,必須保留有限的埠和位址數目,才能維護狀況良好的叢集維護工作。 為 AKS 等 Kubernetes 叢集的輸出流量提供安全性的最簡單方式,就是使用軟體防火牆,根據功能變數名稱控制輸出流量。 Azure 防火牆可以根據目的地的完整功能變數名稱 (FQDN) 來限制輸出 HTTP 和 HTTPS 流量。 您也可以設定防火牆和安全性規則,以允許這些必要的埠和位址。 如需詳細資訊,請參閱 控制 AKS 中叢集節點的輸出流量。

同樣地,您可以對部署至共用周邊網路的Azure 防火牆啟用 威脅情報型篩選 ,以控制輸入流量並改善安全性。 此篩選可以提供警示和拒絕來自已知惡意 IP 位址和網域的流量。

潛在的使用案例

此案例可解決改善 Kubernetes 叢集輸入和輸出流量安全性的需求。

避免非對稱式路由

在此解決方案中,Azure 防火牆會部署到中樞虛擬網路,並將私人 AKS 叢集部署到輪輻虛擬網路。 Azure 防火牆會使用網路和應用程式規則集合來控制輸出流量。 在此情況下,您必須設定任何在 AKS 上執行之服務所公開之公用端點的輸入流量,以透過Azure 防火牆所使用的其中一個公用 IP 位址進入系統。

封包抵達防火牆的公用 IP 位址,但會透過私人 IP 位址返回防火牆(使用預設路由)。 這是個問題。 若要避免這種情況,請為防火牆的公用 IP 位址建立另一個使用者定義的路由,如下圖所示。 傳送至防火牆公用 IP 位址的封包會透過網際網路路由傳送。 此設定可避免預設路由至防火牆的私人 IP 位址。

若要將 AKS 工作負載的流量路由傳送至中樞虛擬網路中的Azure 防火牆,您需要:

  • 建立路由表,並將路由表與裝載叢集背景工作節點的每個子網產生關聯。
  • 建立使用者定義的路由,將 0.0.0.0/0 CIDR 的流量轉送至Azure 防火牆的私人 IP 位址。 針對下 一個躍點類型 指定 虛擬裝置

如需詳細資訊,請參閱 教學課程:使用Azure 入口網站部署和設定Azure 防火牆

Diagram that shows how to avoid asymmetric routing when you use Azure Firewall in front of your workloads.

如需詳細資訊,請參閱

使用 Azure DevOps 時,將工作負載部署至私人 AKS 叢集

如果您使用 Azure DevOps ,請注意,您無法使用 Azure DevOps Microsoft 裝載的 代理程式將工作負載部署至私人 AKS 叢集。 它們無法存取其 API 伺服器。 若要將工作負載部署至私人 AKS 叢集,您必須在與私人 AKS 叢集相同的虛擬網路中,或在對等互連虛擬網路中布建和使用 Azure DevOps 自我裝載代理程式 。 在後者的情況下,請務必在節點資源群組中 AKS 叢集的私人 DNS 區域與裝載 Azure DevOps 自我裝載代理程式的虛擬網路之間建立虛擬網路連結。

您可以在虛擬機器上部署單 一 Windows Linux Azure DevOps 代理程式,或使用虛擬機器擴展集。 如需詳細資訊,請參閱 Azure 虛擬機器擴展集代理程式 。 或者,您可以在 Azure Pipelines 中設定自我裝載代理程式,以在 Windows Server Core 容器(適用于 Windows 主機)或 Ubuntu 容器(適用于 Linux 主機)與 Docker 內執行。 將其部署為具有私人 AKS 叢集中一或多個複本的 Pod。 如需詳細資訊,請參閱

如果裝載私人 AKS 叢集節點集區的子網已設定為透過路由表和使用者定義路由將輸出流量路由傳送至Azure 防火牆,請務必建立適當的應用程式和網路規則。 這些規則必須允許代理程式存取外部網站,以在代理程式虛擬機器上下載並安裝 Docker 、Kubectl Azure CLI Helm 等 工具。 如需詳細資訊,請參閱 在 Docker 中執行自我裝載代理程式,並在 AKS 上建置及部署 Azure DevOps Pipeline Agent。

Diagram that shows deployment of workloads to a private AKS cluster for use with Azure DevOps.

在公用 Standard Load Balancer 前面使用Azure 防火牆

當 Azure 資源在 Terraform 控制項外部變更時,Terraform 模組 中的 資源定義會使用 生命週期 中繼引數來自訂動作。 ignore_changes 引數可用來指示 Terraform 忽略指定資源屬性的更新,例如標記。 Azure 防火牆原則資源定義包含生命週期區塊,以防止 Terraform 在建立、更新或刪除規則集合或單一規則時更新資源。 同樣地,Azure 路由表包含生命週期區塊,以防止 Terraform 在建立、刪除或更新使用者定義路由時更新資源。 這可讓您管理Azure 防火牆原則的 DNAT、應用程式和網路規則,以及 Terraform 控制項外部 Azure 路由表的使用者定義路由。

與本文相關聯的範例包含 Azure DevOps CD 管線,示範如何使用在自我裝載代理程式 執行的 Azure DevOps 管線 ,將工作負載部署至私人 AKS 叢集 。 此範例會使用公用 Helm 圖表來部署 Bitnami redmine 專案管理 Web 應用程式。 下圖顯示範例的網路拓撲:

Diagram that shows Azure Firewall in front of a public Standard Load Balancer.

以下是訊息流程:

  1. AKS 裝載 Web 應用程式的要求會傳送至透過公用 IP 組態Azure 防火牆公開的公用 IP。 公用 IP 和公用 IP 組態都專用於此工作負載。
  2. Azure 防火牆 DNAT 規則 會將Azure 防火牆公用 IP 位址和埠轉譯為節點資源群組中 AKS 叢集 Kubernetes 公用 Standard Load Balancer 中工作負載所使用的公用 IP 和埠。
  3. 負載平衡器會將要求傳送至其中一個在 AKS 叢集的代理程式節點上執行的 Kubernetes 服務 Pod。
  4. 回應訊息會透過使用者定義的路由傳回原始呼叫端。 Azure 防火牆公用 IP 是位址首碼,而 網際網路 則是 下一個躍點類型
  5. 任何工作負載起始的輸出呼叫會路由傳送至預設使用者定義路由Azure 防火牆的私人 IP 位址。 0.0.0.0/0 是位址首碼,而 虛擬裝置 下一個躍點類型

如需詳細資訊,請參閱 在 AKS 叢集 的公用標準負載平衡器前面使用 Azure 防火牆。

在內部 Standard Load Balancer 前面使用Azure 防火牆

在與本文相關聯的範例 ,ASP.NET Core 應用程式是由 AKS 叢集裝載為服務,並由 NGINX 輸入控制器 前端 NGINX 輸入控制器 會透過內部負載平衡器公開,其具有裝載 AKS 叢集之輪輻虛擬網路中的私人 IP 位址。 如需詳細資訊,請參閱 在 AKS 中建立內部虛擬網路的輸入控制器。 當您部署 NGINX 輸入控制器,或更一般 LoadBalancer 是 或 ClusterIP 服務時,中繼資料區段中的 service.beta.kubernetes.io/azure-load-balancer-internal: "true" 注釋會建立名為 的內部標準負載平衡器,其位於 kubernetes-internal 節點資源群組底下。 如需詳細資訊,請參閱 搭配 AKS 使用內部負載平衡器。 如下圖所示,測試 Web 應用程式會透過專用的 Azure 公用 IP,由Azure 防火牆公開。

Diagram that shows Azure Firewall in front of an internal Standard Load Balancer.

以下是訊息流程:

  1. AKS 裝載的測試 Web 應用程式要求會透過公用 IP 組態傳送至由Azure 防火牆公開的公用 IP。 公用 IP 和公用 IP 組態都專用於此工作負載。
  2. Azure 防火牆 DNAT 規則 會將Azure 防火牆公用 IP 和埠轉譯為節點資源群組中 AKS 叢集內部 Standard Load Balancer 中 NGINX 輸入控制器所使用的私人 IP 和埠。
  3. 內部負載平衡器會將要求傳送至其中一個在 AKS 叢集的代理程式節點上執行的 Kubernetes 服務 Pod。
  4. 回應訊息會透過使用者定義的路由傳回原始呼叫端。 0.0.0.0/0 是位址首碼,而 虛擬裝置 下一個躍點類型
  5. 任何工作負載起始的輸出呼叫會路由傳送至使用者定義路由的私人 IP 位址。

如需詳細資訊,請參閱 在內部 Standard Load Balancer 前面使用Azure 防火牆。

考量

這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

下列一些考慮是一般建議,這些建議不是使用 Azure 防火牆 來改善 AKS 叢集的保護。 我們相信它們是此解決方案的基本需求。 這適用于安全性、效能、可用性和可靠性、儲存體、服務網格和監視考慮。

安全性

安全性可提供針對蓄意攻擊和濫用寶貴資料和系統的保證。 如需詳細資訊,請參閱 安全性要素 概觀。

Azure 平臺可改善保護各種威脅,例如網路入侵和分散式阻斷服務 (DDoS) 攻擊。 您應該使用 Web 應用程式防火牆 (WAF) 來為公開公用 HTTPS 端點的任何 AKS 裝載 Web 應用程式和服務提供保護。 您需要提供保護,避免常見的威脅,例如 SQL 插入式、跨網站腳本和其他 Web 惡意探索。 若要這樣做,請使用 Open Web Application Security Project (OWASP) 規則和自訂規則。 Azure Web 應用程式防火牆 可讓您改善 Web 應用程式的集中式保護,免于常見的惡意探索和弱點。 您可以使用 Azure 應用程式閘道 、Azure Front Door Azure 內容傳遞網路 來部署 Azure WAF 。

DDoS 攻擊是組織將應用程式移至雲端的最大可用性和安全性考慮之一。 DDoS 攻擊會嘗試耗盡應用程式的資源,讓應用程式無法供合法使用者使用。 DDoS 攻擊可針對可透過網際網路公開連線的任何端點。 Azure 中的每個屬性都包含透過 Azure DDoS 基礎結構保護的保護,不需額外費用。 全域部署的 Azure 網路的規模和容量可透過 Always-On 流量監視和即時防護,改善針對常見網路層攻擊的防禦。 DDoS 基礎結構保護不需要進行任何的使用者設定或應用程式變更。 其可協助保護所有 Azure 服務,包括 Azure DNS 之類的 PaaS 服務。

Azure DDoS 網路保護 結合應用程式設計最佳做法,提供增強的 DDoS 風險降低功能,以提供更多防禦 DDoS 攻擊。 您應該在任何周邊虛擬網路上啟用 Azure DDOS 網路保護

以下是一些額外的安全性考慮:

可用性和可靠性

可靠性可確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱 可靠性要素 概觀。

此處的可用性和可靠性考慮並非 AKS 中的多租使用者專屬。 我們相信它們是此解決方案的必要需求。 請考慮下列方法來優化 AKS 叢集和工作負載的可用性。

區域內復原能力

  • 在部署期間,您可以設定 Azure 防火牆 跨多個可用性區域,以提高可用性。 如需執行時間百分比,請參閱Azure 防火牆 SLA 。 為了鄰近性,您也可以將Azure 防火牆與特定區域產生關聯,不過此設定會影響 SLA。 部署在可用性區域中的防火牆不需要額外費用。 不過,輸入和輸出資料傳輸的成本會與可用性區域相關聯。 如需詳細資訊,請參閱頻寬價格詳細資料
  • 請考慮跨區域中所有 可用性區域 部署 AKS 叢集的節點集區。 在節點集區前面使用 Azure Standard Load Balancer 應用程式閘道 。 如果單一資料中心中斷,此拓撲可提供更佳的復原能力。 叢集節點會分散到多個資料中心,在區域內的三個個別可用性區域中。
  • 在 Container Registry 中啟用 區域備援,以取得區域內的復原和高可用性。
  • 使用 Pod 拓撲散佈條件約束 來控制 Pod 在區域、可用性區域和節點等失敗網域之間分散到 AKS 叢集的方式。
  • 請考慮針對裝載任務關鍵性工作負載的 AKS 叢集使用執行時間 SLA。 執行時間 SLA 是選擇性功能,可針對叢集啟用財務支援的更高 SLA。 執行時間 SLA 可保證使用可用性區域的叢集 Kubernetes API 伺服器端點高可用性。 您也可以將它用於不使用可用性區域的叢集,但 SLA 較低。 如需 SLA 詳細資料,請參閱 執行時間 SLA 。 AKS 會在更新和容錯網域之間使用主要節點複本,以確保符合 SLA 需求。

災害復原和商務持續性

  • 請考慮將解決方案部署到地理位置內至少 兩個配對的 Azure 區域 。 使用全域負載平衡器,例如 Azure 流量管理員 Azure Front Door ,搭配主動/主動或主動/被動路由方法來保證商務持續性和災害復原(DR)。
  • Azure 防火牆是區域服務。 如果您跨兩個或多個區域部署解決方案,則必須在每個區域中建立Azure 防火牆。 您可以建立全域Azure 防火牆原則,以包含適用于所有區域中樞的組織授權規則。 您可以使用此原則作為區域 Azure 原則的父原則。 使用非空白父原則建立的原則會繼承父原則中的所有規則集合。 繼承自父原則的網路規則集合一律優先于定義為新原則一部分的網路規則集合之上。 相同的邏輯適用于應用程式規則集合。 不過,不論繼承為何,一律會在應用程式規則集合之前處理網路規則集合。 如需標準和進階版原則的詳細資訊,請參閱 Azure 防火牆 Manager 原則概觀
  • 請務必編寫腳本、記錄並定期測試 QA 環境中的任何區域容錯移轉程式。 如果核心服務受到主要區域中中斷的影響,這樣做有助於避免無法預測的問題。 這些測試也會檢查 DR 方法是否符合 RPO/RTO 目標,以及容錯移轉所需的最終手動程式和干預。
  • 請務必測試容錯回復程式,以驗證其是否如預期般運作。
  • 將您的容器映射儲存在 Container Registry 中。 將登錄異地複寫至每個 AKS 區域。 如需詳細資訊,請參閱 Azure Container Registry 中的異地複寫。
  • 可能的話,請避免將服務狀態儲存在容器中。 請改用支援多重區域複寫的 Azure PaaS。
  • 如果您使用Azure 儲存體,請準備並測試將儲存體從主要區域移轉至備份區域的程式。

卓越營運

卓越營運涵蓋部署應用程式的作業程式,並讓它在生產環境中執行。 如需詳細資訊,請參閱 營運卓越支柱 概觀。

DevOps

  • 在持續整合和持續傳遞 (CI/CD) 管線中使用 Helm 圖表,將您的工作負載部署至 AKS。 使用 GitHub Actions Azure DevOps 等 DevOps 系統。 如需詳細資訊,請參閱 建置並部署至 Azure Kubernetes Service
  • 若要在應用程式可供使用者使用之前正確測試應用程式,請在應用程式生命週期管理中使用 A/B 測試和 Canary 部署。 有數種技術可用來將流量分割到相同服務的不同版本。 或者,您可以使用服務網格實作所提供的流量分割功能。 如需詳細資訊,請參閱 Linkerd 流量分割 Istio 流量管理
  • 使用 Azure Container Registry 或其他容器登錄(例如 Docker Hub),來儲存部署至叢集的私人 Docker 映射。 AKS 可以使用其 Microsoft Entra 身分識別向 Azure Container Registry 進行驗證。
  • 在個別的生產前環境中測試工作負載的輸入和輸出,以鏡像生產環境的網路拓撲和防火牆規則。 分段推出策略可協助您在將新功能或網路規則發行至生產環境之前,偵測任何網路或安全性問題。

監視

Azure 防火牆與 Azure 監視器完全整合,以記錄防火牆處理的傳入和傳出流量。 如需詳細資訊,請參閱 Azure 防火牆威脅情報型篩選

下列監視考慮並非專屬於 AKS 中的多租使用者,但我們相信它們是此解決方案的基本需求。

  • 使用 容器深入解析 來監視 AKS 叢集和工作負載的健康情況狀態。
  • 設定所有 PaaS 服務(例如 Container Registry 和 金鑰保存庫),以收集診斷記錄和計量。

成本最佳化

產生的架構成本取決於下列組態詳細資料:

  • 服務層
  • 延展性 (服務動態配置以支援指定需求的實例數目)
  • 自動化指令碼
  • 災害復原層級

評估這些設定詳細資料之後,請使用 Azure 定價計算機 來預估您的成本。 如需更多定價優化選項,請參閱 Microsoft Azure 良好架構架構中的成本優化 原則。

部署此案例

此案例的原始程式碼可在 GitHub 中使用 。 此解決方案開放原始碼並提供 MIT 授權

必要條件

針對線上部署,您需要 Azure 帳戶。 如果您沒有帳戶,請在開始之前建立 免費的 Azure 帳戶 。 您必須先符合這些需求,才能使用 Azure DevOps 部署 Terraform 模組:

  • 將 Terraform 狀態檔案儲存在 Azure 儲存體帳戶中。 如需使用儲存體帳戶來儲存遠端 Terraform 狀態、狀態鎖定和待用加密的詳細資訊,請參閱 在 Azure 儲存體 中儲存 Terraform 狀態。
  • 建立 Azure DevOps 專案。 如需詳細資訊,請參閱 在 Azure DevOps 中建立專案。
  • 建立 Azure DevOps 服務連線 至您的 Azure 訂用帳戶。 當您建立服務連線時,可以使用服務主體驗證 (SPA) 或 Azure 受控服務識別。 不論是哪一種情況,請確定 Azure DevOps 用來連線到 Azure 訂用帳戶的服務主體或受控識別已獲指派整個訂用帳戶的擁有者角色。

部署至 Azure

  1. 讓您的 Azure 訂用帳戶資訊方便使用。

  2. 複製 workbench GitHub 存放庫

    git clone https://github.com/Azure-Samples/private-aks-cluster-terraform-devops.git
    
  3. 請遵循 README.md 檔案 提供的指示。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主體作者:

若要查看非公用LinkedIn設定檔,請登入 LinkedIn。

下一步

在 Microsoft Azure 架構良好架構 檢閱 AKS 的建議和最佳做法:

Azure 防火牆

Azure Kubernetes Service

架構指引

參考架構