使用 OCI 堡垒和 GitHub 操作在专用 OKE 群集上部署应用程序
了解如何有效利用 Oracle Cloud Infrastructure Bastion 会话和 GitHub Actions 来在安全、合规、网络隔离和控制等各种因素导致需要时部署到专用 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 集群。
OKE 是完全托管、可扩展的高可用性服务,您可以使用将容器化应用程序部署到云。
GitHub Actions 是一个强大的工作流自动化和连续集成/连续部署 (Continuous Integration/CD) 平台,由 GitHub 提供。它允许您使用 YAML 语法定义定制工作流,这些语法可以由各种事件触发,例如代码推送、拉入请求或计划任务。
此参考体系结构探讨了将 OCI Bastion 会话和 GitHub Actions 部署到专用 OKE 集群的利用情况。
体系结构
此参考体系结构展示了 OCI Bastion 和 GitHub Actions 的集成,以便于部署到专用 OKE 集群。
专用 OKE 集群无法从外部网络访问。要访问 K8s API 专用端点,需要建立 SSH 端口转发 OCI Bastion 会话。通过此设置,可以执行 kubectl
命令以在群集中执行各种部署操作。
将代码推送到系统信息库后,将自动触发 GitHub Actions 工作流。在工作流运行期间,会创建 OCI Bastion 会话并用于连接到专用 K8s API 端点以执行部署操作。
完成工作流后,将删除 OCI 堡垒会话。这种方法确保了高度安全和高效的部署过程。此外,此工作流还可用作执行连续集成任务的框架,并可进一步根据您的特定开发流程和要求进行定制。
下图说明了此引用体系结构。
oke-bastion-deployment-diagram-oracle.zip
开始之前
- 使用在专用子网中配置的 Kubernetes API 端点和 worker 节点预配 OKE 集群。
注意:
专用 Kubernetes API 端点将用于建立 OCI Bastion 端口转发会话。 - 将创建的 OCI 堡垒服务设置为将 OKE VCN 作为目标 VCN,将 OKE 节点子网作为目标子网。
- 设置所需的 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 中的专用资源可以访问 Internet 上的主机,而不会向传入的 Internet 连接公开这些资源。
- 服务网关
通过服务网关,您可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,不会通过互联网传输。
- Cloud Guard
您可以使用 Oracle Cloud Guard 监视和维护 Oracle Cloud Infrastructure 中资源的安全性。Cloud Guard 使用检测器配方,您可以定义该配方来检查资源是否存在安全漏洞,以及监视操作员和用户是否存在某些风险活动。检测到任何配置错误或不安全活动时,Cloud Guard 会根据您可以定义的响应器配方推荐更正操作并协助执行这些操作。
- 安全区域
安全区域从一开始就实施加密数据和阻止公共访问整个区间的网络等策略,从而确保 Oracle 的安全优秀实践。安全区域与同名的区间关联,并包括安全区域策略或适用于该区间及其子区间的“配方”。无法将标准区间添加或移动到安全区域区间。
- Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine ( OCI Kubernetes Engine 或 OKE )是一项完全托管、可扩展的高可用性服务,可用于将容器化应用部署到云中。您可以指定应用所需的计算资源,Kubernetes Engine 在现有租户的 Oracle Cloud Infrastructure 上预配这些资源。OKE 使用 Kubernetes 跨主机集群自动部署、扩展和管理容器化应用。
- 堡垒服务
Oracle Cloud Infrastructure Bastion 提供对没有公共端点且需要严格资源访问控制的资源(例如裸金属和虚拟机、Oracle MySQL Database Service 、 Autonomous Transaction Processing (ATP)、Oracle Cloud Infrastructure Kubernetes Engine ( OKE ) 以及允许安全 Shell 协议 (SSH) 访问的任何其他资源)的受限和限时安全访问。通过 OCI Bastion 服务,您可以启用对专用主机的访问,而无需部署和维护跳转主机。此外,您还可以利用基于身份的权限以及集中、经过审计和有时限的 SSH 会话来改善安全状况。OCI Bastion 消除了对堡垒访问的公共 IP 的需求,消除了提供远程访问的麻烦和潜在攻击面。
推荐
- VCN
创建 VCN 时,请根据您计划附加到 VCN 中子网的资源数量,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择不与要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)重叠的 CIDR 块。
创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可以用作安全边界的同一子网。
- Cloud Guard
克隆和定制 Oracle 提供的默认配方,以创建定制检测器和响应器配方。通过这些配方,您可以指定哪种类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能希望检测可见性设置为公共的对象存储桶。
在租户级别应用 Cloud Guard,以涵盖最广泛的范围并减轻维护多个配置的管理负担。
还可以使用“托管列表”功能将某些配置应用于检测器。
- 堡垒
OCI Bastion 支持授权用户使用安全 Shell (Secure Shell,SSH) 会话从特定 IP 地址连接到目标资源。请确保只有授权用户有权创建堡垒服务和会话。对堡垒的访问权限应仅提供给授权用户。
- Kubernetes 引擎 (OKE)
请确保创建了必要的 IAM 策略,并且只有授权用户有权访问集群资源。应启用额外的监视和日志记录,以改善安全状况。
注意事项
部署此引用体系结构时,请考虑以下几点。
- OKE 可扩展性
您可以通过更新 Kubernetes 集群中的 worker 节点数来扩展应用,具体取决于负载。同样,您可以通过减少集群中的 worker 节点数来进行扩展。在 Kubernetes 集群上创建服务时,可以创建负载平衡器以在分配给该服务的节点之间分配服务流量。
- 应用程序可用性
容错域在单个可用性域中提供出色的可恢复性。您还可以部署在多个可用性域中执行相同任务的实例或节点。此设计通过引入冗余来消除单点故障。
- 安全
使用策略来限制谁可以访问哪些 OCI 资源及其访问方式。
OKE 与 Oracle Cloud Infrastructure Identity and Access Management (IAM) 集成。IAM 通过原生 OCI 身份功能提供轻松的身份验证。