使用適用於多個環境的自動 DNS 管理部署 Kubernetes 叢集
管理內部和外部環境的雲端 DNS 策略 (例如開發、測試和生產),不需要自動化解決方案,即可變得複雜且耗時。理想情況下,您的使用者和客戶都應該能夠瀏覽至網域,而您的 DNS 解決方案應導向正確的環境 IP 位址。這個理想的情境非常容易使用,可以防止人為錯誤。
Kubernetes ExternalDNS 提供自動化 DNS 解決方案的功能,可讓使用者輕鬆瀏覽想要的網域,包括全域負載平衡、自動容錯移轉、DNS 型流量管理以及內建安全功能 (例如網域名稱系統安全擴充 (DNSSEC),以協助防止竄改及詐騙攻擊。
此參考架構使用單一 kubernetes 叢集部署搭配 Oracle Cloud Infrastructure DNS Zones 和 Kubernetes ExternalDNS,以設定專為多個環境設計的 DNS 解決方案。
架構
此架構使用部署在 OCI DNS 區域中的 Oracle Cloud Infrastructure Container Engine for Kubernetes (OCI OKE) 叢集,透過負載平衡器為公開的服務保留「記錄」。在此架構中,OKE 叢集有三個工作節點,以及三個不同的命名空間,可用於建置區隔。對於使用單一叢集而非多個叢集的多環境 OKE 部署,請使用此架構。
下圖說明此參照架構。
多租用戶 -oke-dns-architecture.zip
每個環境 (開發、測試及生產) 都有自己的一組 kubernetes 元件,例如命名空間、Pod 及服務。Kubernetes ExternalDNS 可自動建立及管理外部公開的 kubernetes 服務的 DNS 記錄。這可讓外部從屬端更容易存取叢集中的服務。kubernetes 元件會遞送至 Kubernetes ExternalDNS,然後建立指向 OCI 中每個服務負載平衡器的「記錄」。
下圖說明此軟體架構。
此架構具有下列元件:
- 地區
Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,且遠距離可加以區分 (跨國家,甚至是大陸)。
- 可用性網域
可用性網域是區域內獨立的資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,提供容錯能力。可用性網域不共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域發生故障並不會影響區域中的其他可用性網域。
- 容錯域
網域是可用性網域內的一組硬體和基礎架構。每個可用性網域都有三個容錯域,分別具備獨立的電源和硬體。當您將資源分配給多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器失敗、系統維護,以及電源失敗。
- 虛擬雲端網路 (VCN) 和子網路
VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。就像傳統的資料中心網路一樣,VCN 也可讓您完整控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後加以變更。您可以將 VCN 分割成子網路,子網路可以限定為區域或可用性網域。每個子網路都是由不與 VCN 中其他子網路重疊的連續位址範圍所組成。您可以在建立子網路後變更其大小。子網路可以是公用或專用。
- 負載平衡程式
Oracle Cloud Infrastructure Load Balancing 服務提供從單一進入點到後端多部伺服器的自動流量分配。
- 安全清單
您可以為每個子網路建立安全規則,指定子網路中必須允許進出的流量來源、目的地和類型。
- Kubernetes 的容器引擎
Oracle Cloud Infrastructure Container Engine for Kubernetes 是一項完全託管、可擴展且高可用性的服務,可用來將容器化應用程式部署至雲端。您可以指定應用程式所需的運算資源,而 Container Engine for Kubernetes 則會在現有租用戶的 Oracle Cloud Infrastructure 上佈建這些資源。Container Engine for Kubernetes 使用 Kubernetes 將跨主機叢集的容器化應用程式部署、擴展和管理自動化。
- DNS
Oracle Cloud Infrastructure 網域名稱系統 (DNS) 服務是高度可擴展的全球任意傳播網域名稱系統 (DNS) 網路,提供增強的 DNS 效能、抗逆力及擴展性,讓一般使用者能夠盡快地從任何地方連線至客戶的應用程式。
- 公用 / 專用 DNS 區域
Oracle Cloud Infrastructure DNS 服務可讓您管理區域。區域是 DNS 命名空間的一部分。「啟動授權」記錄 (SOA) 定義區域。除非另有指定,否則區域會包含樹狀結構中本身下方的所有標籤。
建議
- 虛擬雲端網路 (VCN)
建立 VCN 時,請根據計畫要連附至 VCN 中子網路的資源數目,決定所需的 CIDR 區塊數目和每個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。
設計子網路時,請考慮流量和安全性需求。將特定層或角色內的所有資源連附至相同的子網路,以作為安全界限。
- 負載平衡器頻寬
建立負載平衡器時,您可以選取提供固定頻寬的預先定義資源配置,或指定自訂 (彈性) 資源配置,供您設定頻寬範圍,並讓服務根據流量模式自動調整頻寬。無論使用哪一種方法,您都可以在建立負載平衡器後隨時變更資源配置。
注意事項
在單一 Oracle Cloud Infrastructure Container Engine for Kubernetes 叢集中部署多個環境時,請考慮下列事項。
- 安全
請考慮使用 Kubernetes 網路原則來區隔命名空間連線,並使用以角色為基礎的存取控制來控制命名空間管理的存取。