共用方式為


Azure Red Hat OpenShift 的作業基準指引

Azure Red Hat OpenShift 會視需要提供高度可調整且完全受控的 OpenShift 叢集。 藉由適當地以管理和監視方式設計解決方案,您可以努力達成營運卓越和客戶成功。

設計考量

請考慮下列因素:

  • 檢閱 Azure Red Hat OpenShift 責任矩陣 ,以瞭解叢集的責任如何在 Microsoft、Red Hat 和客戶之間共用。
  • 請注意 Azure 虛擬機器限制 和支援 的區域。 請確定有容量可供部署資源。
  • 請注意在叢集中以邏輯方式隔離工作負載,以及在不同叢集上實體隔離工作負載的方式。
  • 請留意協助 Kubernetes 了解工作負載健康情況的方式。
  • 請注意各種 虛擬機器大小 ,以及使用其中一個或另一個虛擬機器的效果。
  • 請注意監視和記錄 Azure Red Hat OpenShift 的方式,以深入瞭解資源的健康情況,並預測潛在的問題。 在上層執行的叢集和應用程式都會產生許多事件。 使用警示可協助區分記錄專案以供歷程記錄用途,以及需要立即採取動作的專案。
  • 請注意重要的系統更新和升級。 Azure Red Hat OpenShift 網站可靠性工程師會自動將重大修補程式更新套用至叢集, (SRE) 。 想要事先安裝修補程式更新的客戶是免費的。
  • 請注意叢集和個別工作負載的資源限制。
  • 請注意水準 Pod 自動調整程式和叢集自動調整之間的差異。
  • 檢閱 支援生命週期 ,並瞭解版本支援原則。 Azure Red Hat OpenShift 僅支援 Red Hat OpenShift 容器平臺 的目前和先前正式推出次要版本 。 支援要求要求叢集必須位於支援的版本內。
  • 檢閱 叢集設定需求 ,以維護叢集支援性。
  • 檢閱跨命名空間網路,以使用 網路原則保護叢集中的流量。

設計建議

  • Azure Red Hat OpenShift 具有豐富的操作員生態系統,應該用來執行並自動化具有效率與精確度的作業活動。
  • 將健康情況探查新增至 Pod,以監視應用程式健康情況。 請確定 Pod 包含 livenessProbe 和整備Probe。 使用啟動探查來判斷應用程式啟動的點。
  • 使用足以包含多個容器實例的虛擬機器大小,讓您獲得增加密度的優點,但無法讓叢集處理失敗節點的工作負載。
  • 使用 許可外掛程式來規範叢集函式,這些外掛程式通常用於強制執行安全性原則、資源限制或設定需求。
  • 使用 Pod 要求和限制來管理叢集內的計算資源。 Pod 要求和限制會通知 Kubernetes 排程器,以將計算資源指派給 Pod。 使用 限制範圍來限制專案中的資源耗用量。
  • 優化 CPU 和記憶體要求值,並使用 垂直 Pod 自動調整程式將叢集資源的效率最大化。
  • OpenShift Web 主控台包含節點層級的所有計量。 使用內建的 Prometheus 或 Container Insights 整合建立監視程式。
    • Azure Red Hat OpenShift 4.x 叢集會預先安裝並設定 Prometheus。
    • 將叢集上線至已啟用 Azure Arc 的 Kubernetes,即可啟用 Container Insights。
    • OpenShift 記錄 會部署記錄匯總工具、儲存體和視覺效果元件。
  • 透過 DevOps 做法和 CI/CD 解決方案將應用程式傳遞程式自動化,例如 OpenShift 容器平臺提供的 Pipelines/GitOps。
  • 定義 ClusterAutoScaler 和 MachineAutoScaler,以在叢集用完資源以支援更多部署時調整機器。
  • 部署電腦健康情況檢查,以自動修復電腦集區中損毀的機器。
  • 使用 水準 Pod 自動調整程式調整 Pod 以符合需求。
  • 使用警示系統在需要直接動作時提供通知:Container Insights 計量警示 或內建 警示 UI

業務持續性和災害復原 (BCDR)

您的組織必須設計適當的 Azure Red Hat OpenShift 平台層級功能,以符合其特定需求。 此類應用程式服務的需求與復原時間目標 (RTO) 和復原點目標 (RPO) 相關。 有多項考慮可解決災害復原。 第一個步驟是為您的基礎結構和應用程式定義服務等級協定 (SLA)。 瞭解 Azure Red Hat OpenShift 的 SLA。 如需每月可用時間的詳細資訊,請參閱 SLA 詳細資料一節。

BCDR 的設計考慮

請考慮下列因素:

  • Azure Red Hat OpenShift 叢集應該使用多部電腦集,為您的應用程式提供最低層級的可用性。
  • 設定 Pod 要求和限制。 設定這些限制可讓 Kubernetes:
    • 有效率地將 CPU 和記憶體資源指派給 Pod。
    • 在節點上具有較高的容器密度。
    • 提高可靠性,並降低成本,因為更妥善地使用硬體。
  • 將節點分散到所有可用的區域,以取得更高的可用性。
    • 選擇支援可用性區域的地區。
    • 如需完整的區域權益,所有服務相依性必須也支援區域。 如果相依的服務未支援區域,可能是因為區域失敗原因而導致服務失敗。 檢閱將工作負載分散到區域時所使用的磁片類型。
    • 若要達到可用性區域更高的可用性,請在不同的配對區域中執行多個叢集。 如果 Azure 資源有支援異地備援,請提供備援服務將建立其次要區域的位置。
  • 持續為應用程式和資料建立備份。
    • 您可以有效率地複寫無狀態服務。
    • 如果您需要在叢集中儲存狀態,請在配對的區域中頻繁地備份資料。
  • 升級和維護叢集。
    • 一律讓叢集保持在最新狀態。 檢查 叢集升級
    • 請留意並了解發行和淘汰流程。
    • 透過排程式控制制升級。
    • 檢閱重要工作負載的 Canary 推出更新 需求。
  • 如果發生容錯移轉,則為網路連線:
    • 如果您需要將流量分散到不同區域,請考慮使用 Azure Front Door
  • 針對計劃性和非計劃性容錯移轉:
    • 當您設定每一項 Azure 服務時,請選擇支援災害復原的功能。 例如,如果您選擇Azure Container Registry,請啟用它以進行異地複寫。 即使區域停止運作,您仍然可以從複寫的區域提取映像。
  • 維護工程 DevOps 功能以達到服務等級目標。

BCDR 的設計建議

下列為符合您設計的最佳做法:

  • Azure Red Hat OpenShift 叢集會布建三個控制平面節點和三個以上的背景工作節點。 請確定叢集是在支援可用性區域的區域中建立,讓節點分散到區域。
  • 如需高可用性,請將這些節點部署到不同的可用性區域。 由於每個可用性區域都需要不同的電腦集合,因此請建立至少三個電腦集。
  • 請勿在控制平面節點上執行額外的工作負載。 雖然可以排程在控制平面節點上,但是會造成額外的資源使用量和穩定性問題,影響整個叢集。
  • 建立基礎結構機器集來保存基礎結構元件。 將特定的 Kubernetes 標籤套用至這些機器,然後更新基礎結構元件,只在這些機器上執行。
  • 盡可能從容器內部移除服務狀態。 而是使用支援多重區域複寫的 Azure 平台即服務 (PaaS)。
  • 部署應該指定 Pod 資源需求。 之後,排程器就能適當地排程該 Pod。 未排程 Pod 時,可靠性會大幅折損。
  • 在部署中設定多件複本,以處理類似硬體失敗的中斷情況。 對於更新和升級之類的規劃事件,中斷預算可以確保所需的 Pod 複本數量,以處理預期的應用程式負載。
  • 使用 Pod 拓撲 條件約束,在整個叢集的節點上自動排程 Pod。
  • 您的應用程式可能會針對其資料使用儲存體,並視需要確保跨區域的可用性:
  • 建立應用程式備份並規劃還原:
  • 估計 Pod 資源限制。 測試並建立基準。 以相等的要求和限制值開始進行。 然後,逐漸調整這些值,直到您已完整建立可能會在叢集中造成不穩定的閾值為止。 您可以在部署資訊清單中指定 Pod 限制。 垂直 Pod 自動調整程式 會優化 CPU 和記憶體要求值,並可最大化叢集資源的效率。
    • 內建功能可以處理服務架構中的失敗和中斷。 這些設定有助於簡化設計及部署自動化。 當組織定義 SLA、RTO 和 RPO 的標準時,可以使用 Kubernetes 和 Azure 內建的服務來達成商務目標。
  • 請考慮使用藍色/綠色或 Canary 策略來部署新版的應用程式。
  • 設定 Pod 優先順序/Pod中斷預算,以限制叢集允許關閉維護作業的 Pod 複本數目,以確保可用性。
  • 在服務命名空間上強制執行資源配額。 命名空間上的資源配額將確保在部署上正確設定 Pod 要求和限制。
    • 在部署的合作夥伴服務沒有適當要求和限制時,在叢集層級設定資源配額可能會發生問題。
  • 將您的容器映射儲存在Azure Container Registry中,並將登錄異地複寫至每個區域。
  • 針對 Azure ExpressRoute 連線能力,使用多個區域和對等互連位置。 當發生會影響 Azure 區域或對等提供者位置的斷線情形時,備援的混合式網路結構可協助確保不中斷的跨單位連線能力。
  • 具有全域虛擬網路對等互連的互連區域。 如果叢集需要互相進行通訊,可以透過虛擬網路對等互連來連線兩個虛擬網路。 這項技術會將虛擬網路彼此互連,以跨 Microsoft 骨幹網路提供高頻寬,甚至是跨不同地理區域。
  • 使用分割 TCP 型任何播通訊協定 Azure Front Door,以提示使用者連線到最接近的 Front Door POP (點) 。 Azure Front Door 的更多功能包括:
    • TLS 終止
    • 自訂網域
    • Web 應用程式防火牆
    • URL 重寫
    • 工作階段親和性

下一步

瞭解 Azure 登陸區域中 平臺自動化和 DevOps 的設計考慮和建議