在多個環境使用自動 DNS 管理部署 Kubernetes 叢集
管理內部和外部環境 (例如開發、測試和生產) 的雲端 DNS 策略可能會變得複雜且耗時,而不需要自動化解決方案。理想情況下,您的使用者和客戶都應該能夠瀏覽至網域,而您的 DNS 解決方案應該會導向正確的環境 IP 位址。這個理想的情境易於使用,可以防止人為錯誤。
Kubernetes ExternalDNS 提供自動化 DNS 解決方案的功能,可讓使用者輕鬆瀏覽至想要的網域,包括全域負載平衡、自動容錯移轉、DNS 型流量管理,以及內建安全功能 (例如網域名稱系統安全擴充功能 (DNSSEC),以協助防止竄改和詐騙攻擊。
此參考架構使用單一 kubernetes 叢集部署搭配 Oracle Cloud Infrastructure DNS 區域和 Kubernetes ExternalDNS,以設定專為多個環境設計的 DNS 解決方案。
架構
此架構使用部署在 OCI DNS 區域中的 OCI Kubernetes 引擎叢集,透過負載平衡器為您的公開服務保留「記錄」。在此架構中, OCI Kubernetes 引擎 (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 服務提供從單一進入點到後端多部伺服器的自動流量分配。
- 安全清單
您可以為每個子網路建立安全規則,以指定必須允許進出子網路的來源、目的地和流量類型。
- OCI Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes 引擎或確定 ) 是完全託管、可擴展且高可用性的服務,可用來將容器化應用程式部署到雲端。您可以指定應用程式所需的運算資源,而 Kubernetes 引擎則會在現有租用戶的 Oracle Cloud Infrastructure 上佈建這些資源。OKE 使用 Kubernetes 將跨主機叢集的容器化應用程式部署、調整規模及管理自動化。
- DNS
Oracle Cloud Infrastructure 網域名稱系統 (DNS) 服務是高度可擴展的全球任播網域名稱系統 (DNS) 網路,提供增強的 DNS 效能、抗逆力和可擴展性,讓一般使用者無論身在何處,都能快速連線至客戶的應用程式。
- 公用 / 專用 DNS 區域
Oracle Cloud Infrastructure DNS 服務可讓您管理區域。區域是 DNS 名稱空間的一部分。「開始授權」記錄 (SOA) 定義區域。除非另有指定,否則區域會在樹狀結構中包含其本身下的所有標籤。
建議
- 虛擬雲端網路 (VCN)
建立 VCN 時,請根據您計畫附加到 VCN 子網路的資源數量,決定所需的 CIDR 區塊數量和每個區塊的大小。請使用標準專用 IP 位址空間內的 CIDR 區塊。
當您設計子網路時,請考慮流量和安全需求。將特定層或角色中的所有資源附加至相同的子網路,作為安全界限。
- 負載平衡器頻寬
建立負載平衡器時,您可以選取提供固定頻寬的預先定義資源配置,或指定自訂 (彈性) 資源配置,以便在其中設定頻寬範圍,並讓服務根據流量模式自動調整頻寬。只要採用任一方式,您就可以在建立負載平衡器之後隨時變更資源配置。
注意事項
在單一 OCI Kubernetes 引擎叢集中部署多個環境時,請考慮下列事項。
- 安全
請考慮使用 Kubernetes 網路原則來區隔命名空間連線,並依靠角色型存取控制來控制命名空間管理的存取。