了解如何在云中设计 Kubernetes 拓扑

在轻量级容器中,企业的部署云原生负载会增加。在生产环境中,您需要一种管理容器的方法,并确保无停机。Kubernetes 是一个开源业务流程引擎,用于管理容器化应用程序和服务。

Oracle Cloud Infrastructure Container Engine for Kubernetes 是一项受管服务、可扩展的高可用性服务,可用于将容器化应用部署到云中的 Kubernetes 集群。

体系结构

云中基于 Kubernetes 的拓扑的体系结构取决于一些因素,例如,容器化工作负荷是否可以从公共 Internet 访问,节点池大小和数量,以及工作负荷的容错能力要求。

下图显示了Oracle Cloud Infrastructure 区域中包含多个可用性域的 Kubernetes 集群的引用体系结构。


具有多个可用性域的区域体系结构
该体系结构包含以下组件:
  • 虚拟云网络(VCN):拓扑中的所有资源都位于单个 VCN 中。
  • 子网:

    此体系结构中的 VCN 包含四个子网,两个是公共的,两个是专用的。其中一个公共子网用于基本主机;另一个用于面向网络的负载平衡器。在这两个专用子网中,一个用于管理主机,其中包含管理 Kubernetes 集群所需的工具。其他专用子网用于 Kubernetes 集群的节点。

    所有子网都是区域性的;即,它们跨越区域中的所有可用性域,缩写为体系结构图表中的 AD1、AD2 和 AD3。因此,它们会受到域可用性故障的保护。您可以对部署到该区域中任何可用性域的资源使用子网。

  • 网络网关
    • 服务网关(可选)

      利用服务网关,VCN 中的资源可以访问 Oracle 服务,例如Oracle Cloud Infrastructure 对象存储Oracle Cloud Infrastructure File StorageOracle Cloud Infrastructure Database 私密服务;也就是说,不会向公共互联网公开流量。可以从 VCN 中的资源启动服务网关的连接,而不是与资源通信的服务建立连接。

    • NAT 网关(可选)

      NAT 网关支持连接到 VCN 中专用子网的计算实例来访问公共互联网。可以从 VCN 中的资源(而非公共互联网)启动通过 NAT 网关的连接。

    • Internet 网关

      互联网网关可以实现公共互联网和 VCN 中公共子网中的任何资源之间的连接。

  • 基本主持人(可选)

    基础主机是一种计算实例,充当来自云外部拓扑的入口点。

    基础主机通常预配在 DMZ 中。这使您能够通过将敏感资源放在无法直接从云外部访问的专用网络中来保护这些资源。您会公开可以定期审计的单个已知入口点。因此,您可以避免泄露拓扑的更敏感的组件,而不会影响对这些组件的访问。

    示例拓扑中的基础主机附加到公共子网并具有公共 IP 地址。入站安全规则配置为允许通过公共互联网与主机建立 SSH 连接。要提供附加的安全级别,可以仅从特定的 IP 地址块限制 SSH 访问主机。

    您可以通过 bastion 主机访问专用子网中的Oracle Cloud Infrastructure 实例。为此,请启用 ssh-agent 转发,使您可以连接到基础主机,然后通过转发计算机的身份证明来访问下一个服务器。您还可以使用动态 SSH 隧道访问专用子网中的实例。动态隧道在本地端口上提供了 SOCKS 代理;但是连接源自远程主机。

  • 负载平衡器节点:

    负载平衡器节点可拦截流量并将流量分发到运行容器化应用的可用 Kubernetes 节点。如果应用程序必须可从公共互联网访问,则使用公共负载平衡器;否则,使用不具有公共 IP 地址的专用负载平衡器。该体系结构显示两个负载平衡器节点,每个节点位于不同的可用性域中。

  • 管理主机(可选):

    通过使用管理主机,可以避免在云外部安装和运行基础结构管理工具,例如 kubectlhelmOracle Cloud Infrastructure CLI。在引用体系结构中,管理主机位于专用子网中,可以通过 bastion 主机访问。要在管理主机上运行Oracle Cloud Infrastructure CLI,必须将其指定为实例主用户。

  • Kubernetes 工作进程节点

    Kubernetes worker 节点是可以部署容器化应用程序的计算实例。此参考体系结构中的所有员工节点位于单个节点池中,并附加到专用子网。如果需要,可以创建多个节点池。

    引用体系结构中的员工节点不能直接从公共互联网访问。容器化应用程序的用户可以通过负载平衡器访问这些应用程序。管理员可以通过 bastion 主机访问 worker 节点。

    该体系结构显示三个工作进程节点,每个节点位于区域的不同可用性域中:AD1、AD2 和 AD3。Kubernetes 主节点在 Oracle 的租户中运行,不显示。

如果要部署容器化应用程序的区域中包含一个可用性域,则 Worker 节点在可用性域中的故障域(FD)间分布,如下面的体系结构所示。


具有单个可用性域的区域的体系结构

关于所需服务和权限

此解决方案需要以下服务和权限:

服务 所需权限
Oracle Cloud Infrastructure Identity and Access Management 管理动态组和策略。
Oracle Cloud Infrastructure 网络 管理 Vcn、子网、互联网网关、NAT 网关、服务网关、路由表和安全列表。
Oracle Cloud Infrastructure Compute 管理计算实例。
Oracle Cloud Infrastructure Container Engine for Kubernetes 管理群集和节点池。

请参阅集群创建和部署的策略配置