欢迎访问深圳敏捷云计算科技有限公司!

使用甲骨文云 OCI 堡垒和 GitHub Actions 在私有 OKE 集群上部署应用:一种高效安全的云解决方案

2024-01-15 原创文章

了解如何有效利用 Oracle 云基础设施堡垒会话和 GitHub Actions,以便在因安全、合规、网络隔离和控制等多种因素而需要时部署到私有 Oracle 容器引擎 Kubernetes (OKE) 集群。OKE 是一项全面管理的、可扩展的、高可用的服务,您可以用它将容器化应用程序部署到云端。

GitHub Actions 是 GitHub 提供的一款强大的工作流自动化和持续集成/持续部署(CI/CD)平台。它允许您使用 YAML 语法定义自定义工作流,这些工作流可以由各种事件触发,如代码推送、拉取请求或计划任务。这种参考架构探讨了使用 OCI 堡垒会话和 GitHub Actions 部署到私有 OKE 集群的情况。

架构

这种参考架构展示了 OCI 堡垒和 GitHub Actions 的整合,以促进对私有 OKE 集群的部署。

私有 OKE 集群无法从外部网络访问。为了访问 K8s API 私有端点,建立了一个 SSH 端口转发的 OCI 堡垒会话。这种设置使得可以执行 kubectl 命令,以在集群内进行各种部署操作。

当代码被推送到仓库时,GitHub Actions 工作流将自动触发。在工作流运行期间,创建并利用 OCI 堡垒会话连接到私有 K8s API 端点,以执行部署操作。工作流完成后,OCI 堡垒会话被删除。这种方法确保了高度安全和高效的部署过程。此外,这个工作流可以作为执行持续集成任务的框架,并可以进一步定制,以符合您的具体开发流程和要求。以下图表说明了这种参考架构。


开始之前

  1. 配置一个 OKE 集群,将 Kubernetes API 端点和工作节点设置在一个私有子网中。 注意:私有 Kubernetes API 端点将用于建立 OCI 堡垒端口转发会话。
  2. 将创建的 OCI 堡垒服务设置为以 OKE VCN 为目标 VCN,以 OKE 节点子网为目标子网。
  3. 设置所需的 IAM 服务策略。 注意:有关设置必要 IAM 策略的详细信息,请参见“更多探索”中的“集群创建和部署的策略配置”链接。

该架构包含以下组件:

租户

当您注册 Oracle 云基础设施时,Oracle 会在 Oracle 云中为您设置一个安全且独立的分区,即租户。您可以在您的租户内创建、组织和管理 Oracle 云中的资源。租户可与公司或组织同义。通常,一家公司会拥有一个租户,并在该租户内反映其组织结构。一个租户通常与一个订阅相关联,而一个订阅通常只有一个租户。

区域

Oracle 云基础设施区域是一个包含一个或多个数据中心(称为可用性域)的地理区域。区域彼此独立,可以相隔很远(横跨国家甚至大洲)。

分区

分区是 Oracle 云基础设施租户内的跨区域逻辑划分。使用分区来组织 Oracle 云中的资源,控制对资源的访问,并设置使用配额。为了控制对给定分区中资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行哪些操作。

可用性域

可用性域是区域内独立的、相互独立的数据中心。每个可用性域内的物理资源与其他可用性域的资源隔离,提供容错能力。可用性域不共享诸如电力或冷却之类的基础设施,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该区域内其他可用性域。

故障域

故障域是可用性域内的硬件和基础设施分组。每个可用性域有三个故障域,它们拥有独立的电力和硬件。当您将资源分布在多个故障域时,您的应用程序可以承受物理服务器故障、系统维护和故障域内的电力故障。

虚拟云网络(VCN)和子网

VCN 是您在 Oracle 云基础设施区域中设置的可自定义的、软件定义的网络。与传统数据中心网络一样,VCN 让您完全控制您的网络环境。VCN 可以拥有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,这些子网可以限定到区域或可用性域。每个子网包含一个连续的地址范围,不与 VCN 中的其他子网重叠。您可以在创建后更改子网的大小。子网可以是公共的或私有的。

负载均衡器

Oracle 云基础设施负载均衡服务提供从单个入口点到后端多个服务器的自动流量分配。

安全列表

对于每个子网,您可以创建安全规则,指定必须允许进出子网的流量的来源、目的地和类型。

网络地址转换(NAT)网关

NAT 网关使 VCN 中的私有资源能够访问互联网上的主机,而无需将这些资源暴露给进入的互联网连接。

服务网关

服务网关提供从 VCN 到其他服务(如 Oracle 云基础设施对象存储)的访问。从 VCN 到 Oracle 服务的流量通过 Oracle 网络基础设施传输,从不经过互联网。

Cloud Guard

您可以使用 Oracle Cloud Guard 来监控和维护 Oracle 云基础设施中资源的安全性。Cloud Guard 使用您可以定义的检测器配方来检查资源的安全弱点,并监控操作员和用户的高风险活动。当检测到任何错误配置或不安全活动时,Cloud Guard 会推荐纠正措施,并协助采取这些措施,这是基于您可以定义的响应者配方。

安全区

安全区从一开始就通过强制实施诸如加密数据和防止网络公开访问等政策,确保 Oracle 的安全最佳实践。安全区与同名的分区相关联,并包括适用于该分区及其子分区的安全区政策或“配方”。您不能将标准分区添加或移动到安全区分区。

Kubernetes 容器引擎

Oracle 云基础设施 Kubernetes 容器引擎是一项全面管理的、可扩展的、高可用的服务,您可以使用它将容器化应用程序部署到云端。您指定应用程序所需的计算资源,容器引擎为 Kubernetes 在现有租户的 Oracle 云基础设施上预配这些资源。容器引擎使用 Kubernetes 自动化跨主机集群的容器化应用程序的部署、扩展和管理。

堡垒服务

Oracle 云基础设施堡垒提供对没有公共端点且需要严格资源访问控制的资源的限制和时间有限的安全访问,如裸机和虚拟机、Oracle MySQL 数据库服务、自治事务处理 (ATP)、Oracle 容器引擎 Kubernetes (OKE),以及任何其他允许安全外壳协议 (SSH) 访问的资源。通过 Oracle 云基础设施堡垒服务,您可以在不部署和维护跳转主机的情况下启用对私有主机的访问。此外,您还可以通过基于身份的权限和集中式、记录的、有时间限制的 SSH 会话获得改进的安全姿态。Oracle 云基础设施堡垒消除了对堡垒访问的公共 IP 的需求,消除了在提供远程访问时的麻烦和潜在攻击面。

建议

使用以下建议作为起点。您的需求可能与此处描述的架构不同。

VCN

  • 创建 VCN 时,根据您计划附加到 VCN 子网中的资源数量,确定所需的 CIDR 块数量及每个块的大小。使用标准私有 IP 地址空间内的 CIDR 块。
  • 选择不与您打算建立私有连接的任何其他网络(在 Oracle 云基础设施、您的本地数据中心或其他云提供商中)重叠的 CIDR 块。创建 VCN 后,您可以更改、添加和移除其 CIDR 块。
  • 设计子网时,考虑您的流量流和安全要求。将特定层或角色内的所有资源附加到同一子网,这可以作为一个安全边界。

Cloud Guard

  • 克隆并定制 Oracle 提供的默认配方,创建自定义的检测器和响应者配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能希望检测将可见性设置为公共的对象存储桶。
  • 在租户级别应用 Cloud Guard,以覆盖最广泛的范围,并减少维护多个配置的管理负担。
  • 您还可以使用管理列表功能,将特定配置应用于检测器。

堡垒

OCI 堡垒让授权用户能够从特定 IP 地址通过安全外壳(SSH)会话连接到目标资源。请确保只有授权用户可以创建堡垒服务和会话。堡垒的访问权限应仅授予授权用户。

Kubernetes 容器引擎 (OKE)

请确保创建了必要的 IAM 策略,并且只有授权用户可以访问集群资源。应启用额外的监控和日志记录,以改善安全姿态。

注意事项

在部署此参考架构时,请考虑以下几点。

OKE 可伸缩性

您可以通过更新 Kubernetes 集群中工作节点的数量来扩展应用程序,这取决于负载。同样,您可以通过减少集群中的工作节点数量来缩减规模。当您在 Kubernetes 集群上创建一个服务时,您可以创建一个负载均衡器来分配分配给该服务的节点之间的服务流量。

应用程序可用性

故障域在单个可用性域内提供最佳的弹性。您还可以在多个可用性域部署执行相同任务的实例或节点。这种设计通过引入冗余来消除单点故障。

安全性

使用限制谁可以访问哪些 OCI 资源以及如何访问它们的策略。

OKE 与 Oracle 云基础设施身份和访问管理 (IAM) 集成。IAM 提供了与原生 OCI 身份功能的简便认证。

部署

GitHub Actions 工作流代码可在 GitHub 上获取。

  1. 访问 GitHub。
  2. 克隆或下载仓库到您的本地计算机。
  3. 遵循 README 文档中的说明进行操作。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: