在 Oracle Container Engine 的 Kubernetes 集群中部署具有自動擴充套件功能的 GitLab Runner,以便根據 CI CD 管道中的負載自動擴充套件工作節點,從而保持任務平穩執行。 此體系結構顯示了 Oracle Container Engine 在 Oracle Cloud Infrastructure 上為 Kubernetes 集群部署的 GitLab Runner。 下圖演示了此參考體系結構。
該架構由以下元件組成:地區Oracle Cloud Infrastructure 區域是乙個地理位置受限的區域,其中包含乙個或多個資料中心(稱為可用性域)。 區域獨立於其他地區,並且可能相距很遠(跨國家甚至跨大陸)。
可抗性域可用性域是區域內乙個獨立的自治資料中心。 每個可用性域中的物理資源與其他可用性域的資源隔離,從而提供容錯能力。 可用性域不共享基礎結構,例如電源或冷卻系統或內部可用性域網路。 因此,乙個可用性域的故障不太可能影響該區域中的其他可用性域。
容錯域容錯域是可用性域中的一組硬體和基礎結構。 每個可用性域都有三個具有獨立電源和硬體的容錯域。 在多個容錯域之間分配資源時,應用程式能夠容忍容錯域中的物理伺服器故障、系統維護和電源故障。
虛擬雲網路 (VCN) 和子網VCN 是在 Oracle Cloud Infrastructure 區域中設定的可定製的軟體定義網路。 與傳統的資料中心網路一樣,VCN 可讓您完全控制網路環境。 乙個 VCN 可以有多個不重疊的 CIDR 塊,您可以在建立 VCN 後更改這些塊。 您可以將 VCN 劃分為多個子網,這些子網的範圍可以限定為區域或可用性域。 每個子網都包含一系列連續位址,這些位址不與 VCN 中的其他子網重疊。 您可以在建立子網後更改子網的大小。 子網可以是公有子網,也可以是私有子網。
服務閘道器服務閘道器提供從 VCN 到其他服務(如 Oracle Cloud Infrastructure Object Storage)的訪問。 從 VCN 到 Oracle 服務的流量通過 Oracle 網路結構傳輸,不會遍歷 Internet。
容器引擎 KubernetesOracle Cloud Infrastructure Container Engine for Kubernetes 是一項完全託管、可擴充套件且高度可用的服務,可用於將容器化應用部署到雲中。 您可以指定應用程式所需的計算資源,容器引擎會在適用於 Kubernetes 的現有 Oracle Cloud Infrastructure 租戶中預配這些資源。 Container Engine for Kubernetes 使用 Kubernetes 跨主機集群自動部署、擴充套件和管理容器化應用程式。
雲衛士您可以使用 Oracle Cloud Guard 監視和維護 Oracle Cloud Infrastructure 中資源的安全性。 Cloud Guard 使用檢測器配方,您可以定義這些配方來檢查資源中的安全漏洞,並監視操作員和使用者的高風險活動。 當檢測到任何配置錯誤或不安全活動時,Cloud Guard 會根據您可以定義的響應程式配方建議糾正措施並協助執行這些操作。
安全區域安全區域通過實施加密資料和阻止公共網路訪問等策略,從一開始就確保 Oracle 的安全最佳實踐。 安全區域與同名分割槽相關聯,並包含適用於該分割槽及其子區域的安全區域策略或“配方”。 您無法將標準分割槽新增或移動到安全區域分割槽。
Kubernetes 群集自動縮放程式Kubernetes 集群自動縮放程式會根據資源請求自動增加或減少節點池的大小,而不是基於節點池中節點的資源利用率。
OKE服務Kubernetes (OKE) 服務是一種抽象,它定義了一組邏輯 Pod 以及訪問它們的策略。 服務目標的 Pod 組通常由選擇器確定。 Kubernetes 服務管理自動縮放。
Oke Workers 節點池Kubernetes (OKE) 工作執行緒池是集群中具有相同配置的工作執行緒節點的子集。 節點池允許您在群集中建立具有不同配置的計算機池。 例如,可以在群集中建立乙個節點池作為虛擬機器,將另乙個節點池建立為裸機。 群集必須至少有乙個節點池,但節點池不必包含任何工作節點。
節點池中的工作節點連線到 VCN 中的工作節點子網。
網際網絡閘道器Internet 閘道器允許在 VCN 中的公有子網和公有 Internet 之間交換流量。
網路位址轉換 (NAT) 閘道器NAT 閘道器使 VCN 中的專用資源能夠訪問 Internet 上的主機,而無需將這些資源暴露給傳入的 Internet 連線。
使用以下建議作為起點。 您的需求可能與此處描述的體系結構不同。 虛擬雲網路 (VCN)。建立 VCN 時,請根據計畫連線到 VCN 子網的資源數量確定所需的 CIDR 塊數和每個塊的大小。 在標準專用 IP 位址空間中使用 CIDR 塊。
選擇與任何其他網路(Oracle Cloud Infrastructure、內部部署資料中心或其他雲提供商)不重疊的 CIDR 塊,以便您打算設定專用連線。
建立 VCN 後,可以更改、新增和刪除其 CIDR 塊。
在設計子網時,請考慮流量的去向和安全需求。 將特定層或角色中的所有資源連線到同一子網,該子網可用作安全邊界。
使用區域子網。
安全主動使用 Oracle Cloud Guard 監視和維護 Oracle Cloud Infrastructure 中資源的安全性。 Cloud Guard 使用檢測器配方,您可以定義這些配方來檢查資源中的安全漏洞,並監視操作員和使用者的高風險活動。 當檢測到任何配置錯誤或不安全活動時,Cloud Guard 會根據您可以定義的響應程式配方建議糾正措施並協助執行這些操作。
對於需要最高安全級別的資源,Oracle 建議您使用安全區域。 安全區域是與 Oracle 定義的基於最佳實踐的安全策略配方相關聯的分割槽。 例如,安全區域中的資源不得從公共 Internet 訪問,並且必須使用客戶管理的金鑰進行加密。 在安全區域中建立和更新資源時,Oracle Cloud Infrastructure 會根據安全區域配方中的策略驗證操作,並拒絕任何策略衝突。
雲衛士轉殖和自定義 Oracle 提供的預設配方,以建立自定義檢測器和響應器配方。 通過這些配方,您可以指定哪些型別的安全違規會生成警告,以及允許對它們執行哪些操作。 例如,您可能希望檢測設定為公共可見性的物件儲存桶。
在租戶級別應用 Cloud Guard,以提供最廣泛的覆蓋範圍,並減輕維護多個配置的管理負擔。
您還可以使用“管理列表”功能將特定配置應用於檢測器。
網路安全組 (NSGS)。可以使用 NSGS 定義一組適用於特定 VNIC 的入站和出站規則。 我們建議使用 NSGS 而不是安全列表,因為 NSGS 允許您將 VCN 的子網體系結構與應用程式的安全要求分開。
適用於 Kubernetes 的容器引擎雖然 Operator 支援任何通用 Kubernetes 集群,但此體系結構使用 Oracle 容器引擎的 Kubernetes 集群。 這些群集在不同的可用性域和容錯域中具有三個工作器節點。 所示集群具有分布在不同物理主機上的工作節點。 乙個集群最多可以建立1000個節點。
安全區域對於需要最高安全級別的資源,Oracle 建議您使用安全區域。 安全區域是與 Oracle 定義的基於最佳實踐的安全策略配方相關聯的分割槽。 例如,安全區域中的資源不得從公共 Internet 訪問,並且必須使用客戶管理的金鑰進行加密。 在安全區域中建立和更新資源時,Oracle Cloud Infrastructure 會根據安全區域配方中的策略驗證操作,並拒絕任何策略衝突。
計算根據 Kubernetes 集群節點的需求,選擇具有適當 ocpu 和記憶體組合的配置,並根據需要為節點配置本地 NVMe 和/或塊儲存。
部署此參考體系結構時,請考慮以下事項:效能集群自動縮放基於部署資源預留,您可以通過編輯 gitlab-ci 來完成yaml 檔案來控制作業資源的預訂。
安全使用策略來限制誰可以訪問貴公司的哪些 Oracle Cloud Infrastructure (OCI) 資源以及如何訪問。
Oracle Cloud Infrastructure Container Engine 與 Oracle Cloud Infrastructure 身份和訪問管理 for Kubernetes 整合。 Oracle Cloud Infrastructure Identity and Access Management 通過原生 OCI 身份功能提供易於使用的身份驗證。
使用以下變數控制作業的資源預訂
可擴充套件性根據負載,您可以通過更新 Kubernetes 集群中的工作節點數來擴充套件應用程式。 同樣,通過減少集群中的工作節點數,可以實現縮減。 在 Kubernetes 集群上建立服務時,您可以建立負載均衡器,將服務流量分發到分配給該服務的節點。 群集自動縮放基於部署資源預留,您可以編輯該預留gitlab-ci.yaml
檔案來控制預訂。 使用 Oracle Container Engine 的 Kubernetes 免費,Oracle Container Registry 免費。Kubernetes 集群中的節點按與具有相同配置的其他計算例項相同的費率收費。 GitHub 上提供了用於建立具有所有依賴資源(網路、工作執行緒池)的 Oracle Container Engine Kubernetes (OKE) 集群、部署集群自動縮放和 GitLab Runner 的 Terraform。 使用 Oracle Cloud Infrastructure Resource Manager 進行部署:
單擊以進入登入螢幕,如果尚未登入,請輸入租戶和使用者憑據。
檢視並接受條款和條件。
選擇要在其中部署堆疊的區域。
按照螢幕上的提示和說明建立堆疊。
建立堆疊後,單擊 Terraform 操作,然後選擇 Plan。
等待作業完成並檢視計畫。
如果您需要進行任何更改,請返回到堆疊詳細資訊頁面,單擊編輯堆疊,然後進行必要的更改。 然後,再次執行計畫操作。
如果不需要進行任何進一步的更改,請返回堆疊詳細資訊頁面,單擊 Terraform 操作,然後選擇應用。
在 GitHub 中使用 Terraform 進行部署:Deploy using Terraform in GitHub:訪問 GitHub。 轉殖或儲存庫到本地計算機。 按照 README 文件中的說明進行操作。 作為甲骨文標準合作夥伴,Agilewing正在重新定義企業體驗甲骨文雲服務的方式。 憑藉其簡化的開戶流程和一流的技術支援,雅居翼將複雜的開戶和操作流程轉變為簡單、直觀的體驗。 借助我們的一站式服務,您可以快速啟動並執行全套 Oracle 雲服務,從而無縫整合到雲中。 Agilewing 的 AgileCDN 服務與 OCI 基於雲的服務相結合,可提供一流的全球內容加速解決方案。 由2,800多個全球POP節點和7,000個直接連線點組成的強大網路可確保您的業務擴充套件到全球的任何地方,都能確保高效穩定的運營。 利用 Oracle 雲的先進技術,Agilewing 致力於簡化雲服務構建、雲遷移和業務走出去的流程。 “我們的合作模式為客戶提供了經濟高效的解決方案,使他們能夠更專注於核心業務,同時享受 Oracle 雲的高效能和安全性。” Oracle 雲服務是乙個前景廣闊的領域,憑藉其高效能、安全性和全球一致的服務標準,為企業開啟了通往新機遇的大門。 通過雅樂之翼的專業服務,無論是個人使用者還是企業,都能輕鬆進入這個充滿技術創新和高效能的新時代。 讓 Agilewing 開始探索 Oracle 雲服務,開啟通往全新世界的大門。