使用 OCI 堡壘主機GitHub 動作在專用 OKE 叢集上部署應用程式

瞭解如何在需要時有效運用 Oracle Cloud Infrastructure Bastion 工作階段和 GitHub 動作,因為安全、合規性、網路隔離和控制等各種因素而部署到私有 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 叢集。

OKE 是一項完全受管理、可擴展且高可用性的服務,可用來將容器化應用系統部署到雲端。

GitHub 動作GitHub 所提供的強大工作流程自動化和持續整合 / 持續部署 (CI/CD) 平台。它可讓您使用 YAML 語法來定義自訂工作流程,這些語法可由各種事件 (例如程式碼發送、提取要求或排定的工作) 觸發。

此參照架構探索使用 OCI 堡壘主機階段作業和 GitHub 動作,以部署至專用 OKE 叢集。

架構

此參考架構展示了整合 OCI 堡壘主機GitHub 動作,以協助部署至專用 OKE 叢集。

無法從外部網路存取專用 OKE 叢集。若要存取 K8s API 專用端點,則會建立 SSH 連接埠轉送 OCI 堡壘主機階段作業。此設定可讓執行 kubectl 命令,在叢集內執行各種部署作業。

將程式碼推送至儲存區域時,會自動觸發 GitHub 動作工作流程。在工作流程執行期間,會建立並利用 OCI 堡壘主機階段作業連線至專用 K8s API 端點,以執行部署動作。

工作流程完成後,會刪除 OCI 堡壘主機階段作業。此方法可確保高度安全且有效率的部署程序。此外,此工作流程可作為執行持續整合任務的架構,並可進一步量身打造以符合您的特定開發流程與需求。

下圖說明此參考架構。



oke-bastion-deployment-diagram-oracle.zip

開始前

  1. 使用在專用子網路中設定的 Kubernetes API 端點和工作節點佈建 OKE 叢集。

    附註:

    將會使用專用 Kubernetes API 端點建立 OCI 堡壘主機連接埠轉送階段作業。
  2. 設定建立的 OCI 堡壘主機服務,即可讓 OKE VCN 作為目標 VCN,並使用 OKE 節點子網路作為目標子網路。
  3. 設定必要的 IAM 服務原則。

    附註:

    如需設定必要 IAM 原則的叢集建立與部署的原則組態連結,請參閱「瀏覽其他資訊」。

架構具有下列元件:

  • Tenancy

    租用戶是 Oracle 在您註冊 Oracle Cloud Infrastructure 時設定在 Oracle Cloud 內的安全隔離分割區。您可以在租用戶內的 Oracle Cloud 中建立、組織及管理您的資源。租用戶與公司或組織同義。通常,公司會擁有單一租用戶,並在該租用戶內反映其組織結構。單一租用戶通常與單一訂閱相關聯,單一訂閱通常只有一個租用戶。

  • 地區

    Oracle Cloud Infrastructure 區域是一個本地化地理區域,其中包含一或多個稱為可用性網域的資料中心。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。

  • 區間

    區間是 Oracle Cloud Infrastructure 租用戶內的跨區域邏輯分割區。使用區間來組織、控制存取,以及為您的 Oracle Cloud 資源設定使用配額。在指定的區間中,您可以定義控制存取及設定資源權限的原則。

  • 可用性網域

    可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域不會共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域的故障不應影響該區域中的其他可用性網域。

  • 容錯域

    容錯網域是可用性網域內的一組硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分散到多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器故障、系統維護和電源故障。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。與傳統的資料中心網路一樣,VCN 可讓您控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更。您可以將 VCN 區隔成子網路,此子網路可以設定區域範圍或可用性網域。每個子網路都是由連續的位址範圍組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。

  • 負載平衡器

    Oracle Cloud Infrastructure Load Balancing 服務提供從單一進入點到後端多部伺服器的自動流量分配。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定必須允許進出子網路的來源、目的地和流量類型。

  • 網路位址轉譯 (NAT) 閘道

    NAT 閘道可讓 VCN 中的專用資源存取網際網路上的主機,而無須向內送網際網路連線公開這些資源。

  • 服務閘道

    服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage 。從 VCN 到 Oracle 服務的流量會透過 Oracle 網路結構傳送,不會周遊網際網路。

  • 雲端保全

    您可以使用 Oracle Cloud Guard 來監控和維護 Oracle Cloud Infrastructure 中資源的安全性。Cloud Guard 使用偵測器處方,您可以定義檢查資源是否有安全漏洞,並監控操作員和使用者的特定風險活動。偵測到任何組態錯誤或不安全活動時,雲端保全會根據您可以定義的回應器處方建議更正動作並協助採取這些動作。

  • 安全區域

    安全區域會強制實行加密資料等原則,並防止對整個區間的網路進行公用存取,以確保 Oracle 的安全最佳做法。安全區域會與相同名稱的區間關聯,並且包括套用至區間及其子區間的安全區域原則或處方。您無法新增或移動標準區間至安全區域區間。

  • Kubernetes 引擎

    Oracle Cloud Infrastructure Kubernetes Engine ( OCI Kubernetes 引擎OKE) 是完全託管、可擴展且高可用性的服務,可用來將容器化應用程式部署到雲端。您可以指定應用程式所需的運算資源,而 Kubernetes 引擎則會在現有租用戶的 Oracle Cloud Infrastructure 上佈建這些資源。OKE 使用 Kubernetes 將跨主機叢集的容器化應用程式部署、調整規模及管理自動化。

  • 堡壘主機服務

    Oracle Cloud Infrastructure Bastion 可針對沒有公用端點且需要嚴格資源存取控制的資源,例如裸機和虛擬機器、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Cloud Infrastructure Kubernetes Engine ( OKE),以及允許 Secure Shell 通訊協定 (SSH) 存取的任何其他資源,提供有限且具時限的安全存取。有了 OCI 堡壘主機服務,您便可以存取專用主機,無須部署和維護跳躍主機。此外,您還可以透過識別權限以及集中式、稽核及時間導向 SSH 階段作業來改善安全態勢。OCI 堡壘主機可免除對堡壘主機存取的公用 IP 需求,在提供遠端存取時消除麻煩和潛在攻擊面。

建議

使用下列建議作為起點。 您的需求可能與此處所述的架構不同。
  • VCN

    建立 VCN 時,請根據您計畫附加到 VCN 子網路的資源數量,決定所需的 CIDR 區塊數量和每個區塊的大小。請使用標準專用 IP 位址空間內的 CIDR 區塊。

    選取未與您要設定專用連線的任何其他網路重疊的 CIDR 區塊 (在 Oracle Cloud Infrastructure 中、您的內部部署資料中心或其他雲端提供者)。

    建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    當您設計子網路時,請考慮流量和安全需求。將特定層或角色中的所有資源附加至相同的子網路,作為安全界限。

  • 雲端保全

    複製及自訂 Oracle 提供的預設處方,以建立自訂偵測器和回應器處方。這些處方可讓您指定產生警告的安全性違規類型,以及允許對其執行哪些動作。例如,您可以偵測可見性設為公用物件儲存的儲存桶。

    在租用戶層級套用 Cloud Guard,以涵蓋最廣泛的範圍,並降低維護多個組態的管理負擔。

    您也可以使用「受管理清單」功能,將特定組態套用至偵測器。

  • 堡壘主機

    OCI 堡壘主機可讓授權使用者透過安全 Shell (SSH) 階段作業,從特定 IP 位址連線至目標資源。請確定只有經過授權的使用者能夠存取以建立堡壘主機服務和階段作業。堡壘主機的存取權應只授予授權的使用者。

  • Kubernetes 引擎 (OKE)

    請確定已建立必要的 IAM 原則,而且只有經過授權的使用者能夠存取叢集資源。應啟用額外的監控和記錄,以改善安全性狀態。

注意事項

建置此參照架構時,請考量下列各點。

  • OKE 可擴充性

    您可以根據負載更新 Kubernetes 叢集中的工作節點數目,藉此橫向擴展應用程式。同樣地,您可以減少叢集中的工作節點數目來縮減。當您在 Kubernetes 叢集上建立服務時,您可以建立負載平衡器,將服務流量分配給該服務的節點。

  • 應用程式可用性

    容錯域提供單一可用性網域內最佳的抗逆力。您也可以部署在多個可用性網域中執行相同作業的執行處理或節點。此設計會引入冗餘,以移除單一失敗點。

  • 安全

    使用政策限制誰可以存取哪些 OCI 資源及其存取方式。

    OKE 已與 Oracle Cloud Infrastructure Identity and Access Management (IAM) 整合。IAM 透過原生 OCI 識別功能提供簡易的認證。

部署

GitHub 中提供 GitHub 動作工作流程代碼。

  1. 請前往 GitHub
  2. 複製或下載儲存區域至您的本機電腦。
  3. 遵循 README 文件中的指示。

探索更多

進一步瞭解 OCI 的最佳做法,以及建立與部署 OKE 的原則組態。

複查這些額外資源:

確認

Authors: Shan Duraipandian

Contributors: John Sulyok