你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Red Hat OpenShift 操作基线指南

Azure Red Hat OpenShift 按需提供高度可缩放、完全托管的 OpenShift 群集。 通过在考虑管理和监视的情况下正确设计解决方案,可以努力实现卓越运营和客户成功。

设计注意事项

请考虑下列因素:

  • 查看 Azure Red Hat OpenShift 责任矩阵 ,了解 Microsoft、Red Hat 和客户之间如何分担群集的责任。
  • 请注意 Azure 虚拟机限制 和支持 的区域。 确保有可用于部署资源的容量。
  • 了解如何在群集中以逻辑方式隔离工作负载,以及如何在独立群集中以物理方式隔离工作负载。
  • 了解如何帮助 Kubernetes 理解工作负载的运行状况。
  • 请注意各种 虚拟机大小 以及使用其中一种虚拟机的影响。
  • 请注意监视和记录 Azure Red Hat OpenShift 的方法,以便深入了解资源的运行状况并预见潜在问题。 群集和顶部运行的应用程序都可以生成许多事件。 使用警报来帮助区分用于历史目的的日志条目和需要立即操作的条目。
  • 请注意重要的系统更新和升级。 关键修补程序更新由 Azure Red Hat OpenShift 站点可靠性工程师 (SRE) 自动应用于群集。 希望提前安装修补程序更新的客户可以免费安装。
  • 请注意群集和单个工作负载的资源限制。
  • 请注意 水平 Pod 自动缩放程序群集自动缩放之间的差异。
  • 查看 支持生命周期 并了解版本支持策略。 Azure Red Hat OpenShift 仅支持 Red Hat OpenShift 容器平台 的当前和以前正式发布的次要版本 。 支持请求要求群集位于受支持的版本中。
  • 查看 群集配置要求 以保持群集可支持性。
  • 查看跨命名空间网络,以使用 网络策略保护群集中的流量。

设计建议

  • Azure Red Hat OpenShift 具有丰富的操作员生态系统,应用于高效准确地执行和自动化操作活动。
  • 将运行状况探测添加到 Pod 以监视应用程序运行状况。 确保 Pod 包含 livenessProbe 和 readinessProbe。 使用启动探测来确定应用程序的启动点。
  • 使用足以包含多个容器实例的虚拟机大小,以便获得密度增加的好处,但不要过大到群集无法处理故障节点的工作负荷。
  • 使用 允许插件调节群集功能,这些插件通常用于强制实施安全策略、资源限制或配置要求。
  • 使用 Pod 请求和限制管理群集中的计算资源。 Pod 请求和限制会向 Kubernetes 计划程序发出通知,后者则会将计算资源分配给 pod。 使用 限制范围限制项目中的资源消耗。
  • 使用 垂直 Pod 自动缩放程序优化 CPU 和内存请求值,并最大限度地提高群集资源的效率。
  • OpenShift Web 控制台包含节点级别的所有指标。 使用内置的 Prometheus 或容器见解集成建立监视过程。
    • Prometheus 经过预安装并配置,适用于 Azure Red Hat OpenShift 4.x 群集。
    • 可以通过将群集加入已启用 Azure Arc 的 Kubernetes 来启用容器见解。
    • OpenShift 日志记录 部署日志聚合器、存储和可视化组件。
  • 通过 DevOps 做法和 CI/CD 解决方案(例如 OpenShift 容器平台提供的 Pipelines/GitOps)自动执行应用程序交付过程。
  • 定义 ClusterAutoScaler 和 MachineAutoScaler,以在群集资源耗尽时扩展计算机,从而支持更多部署。
  • 部署计算机运行状况检查以自动修复计算机池中损坏的计算机。
  • 使用 水平 Pod 自动缩放程序缩放 Pod 以满足需求。
  • 使用警报系统在需要直接操作时提供通知:容器见解 指标警报 或内置 警报 UI

业务连续性和灾难恢复 (BCDR)

组织需要设计合适的 Azure Red Hat OpenShift 平台级功能以满足其特定要求。 这些应用程序服务具有与恢复时间目标 (RTO) 和恢复点目标 (RPO) 相关的要求。 灾难恢复需要解决多个注意事项。 第一步,为基础结构和应用程序定义服务级别协议 (SLA)。 了解 Azure Red Hat OpenShift 的 SLA。 有关每月运行时间计算的信息,请参阅 SLA 详细信息部分。

BCDR 的设计注意事项

请考虑下列因素:

  • Azure Red Hat OpenShift 群集应使用多个计算机集来为应用程序提供最低级别的可用性。
  • 设置 Pod 请求和限制。 通过设置这些限制,Kubernetes 可以:
    • 有效地将 CPU 和内存资源分配给 Pod。
    • 在节点上拥有更高的容器密度。
    • 由于更好地使用硬件,因此可降低成本,从而提高可靠性。
  • 将节点分散到所有可用区域以实现更高的可用性。
    • 选择支持可用性区域的一个地区。
    • 为获得完全的区域优势,所有服务依赖项还必须支持区域。 如果依赖服务不支持区域,则区域故障可能会导致该服务失败。 查看跨区域分散工作负载时使用的磁盘类型。
    • 若要提高可用性区域可用性,请在不同的配对区域中运行多个群集。 如果 Azure 资源支持异地冗余,请提供冗余服务具有次要区域的位置。
  • 为应用程序和数据创建一致的备份。
    • 可以高效地复制非有状态服务。
    • 如果需要在群集中存储状态,可以在配对区域频繁备份数据。
  • 升级和维护群集。
    • 始终使群集保持最新。 检查 群集升级
    • 请注意发布和弃用过程。
    • 通过计划控制升级。
    • 查看对关键工作负载的 Canary 推出更新 的需求。
  • 对于发生故障转移的网络连接:
  • 对于计划内和计划外故障转移:
    • 设置每个 Azure 服务时,请选择支持灾难恢复的功能。 例如,如果选择Azure 容器注册表,请启用它进行异地复制。 如果某个区域关闭,仍可从复制的区域拉取映像。
  • 维护工程 DevOps 功能,以实现服务级别目标。

BCDR 的设计建议

下面是设计的最佳做法:

  • Azure Red Hat OpenShift 群集预配了三个控制平面节点和三个或更多工作器节点。 确保在支持可用性区域的区域中创建群集,以便节点分布在各个区域。
  • 若要实现高可用性,请将这些节点部署到不同的可用性区域。 由于每个可用性区域需要不同的计算机集,请至少创建三个计算机集。
  • 不要在控制平面节点上运行额外的工作负载。 虽然可以在控制平面节点上计划它们,但它会导致额外的资源使用和稳定性问题,这些问题可能会影响整个群集。
  • 创建基础结构计算机集以保存基础结构组件。 将特定的 Kubernetes 标签应用于这些计算机,然后将基础结构组件更新为仅在这些计算机上运行。
  • 请尽可能从容器内部删除服务状态。 请改用支持多区域复制的 Azure 平台即服务 (PaaS)。
  • 部署应指定 Pod 资源要求。 然后,计划程序可以适当地计划 Pod。 在未计划 Pod 时,可靠性会明显下降。
  • 在部署中设置多个副本,以处理硬件故障等中断事件。 对于更新和升级等计划内事件,中断预算可以确保拥有所需的 Pod 副本数来处理预期的应用程序负载。
  • 使用 Pod 拓扑 约束在整个群集的节点上自动计划 Pod。
  • 应用程序可能会对其数据使用存储,并在需要时确保跨区域的可用性:
  • 创建应用程序备份并计划还原:
  • 估计 Pod 资源限制。 测试和建立基线。 从请求和限制的相等值开始。 然后,逐步调整这些值,直到建立可导致群集不稳定的阈值。 可以在部署清单中指定 Pod 限制。 垂直 Pod 自动缩放程序 可优化 CPU 和内存请求值,并可以最大程度地提高群集资源的效率。
    • 内置功能可以处理服务体系结构中的故障和中断。 这些配置有助于简化设计和部署自动化。 当组织定义 SLA、RTO 和 RPO 的标准时,它可以使用 Kubernetes 和 Azure 中内置的服务来实现业务目标。
  • 请考虑使用蓝/绿或金丝雀策略来部署应用程序的新版本。
  • 设置 Pod 优先级/Pod 中断预算,以限制允许群集出于维护操作而关闭的 Pod 副本数,从而确保可用性。
  • 对服务命名空间强制实施资源配额。 命名空间上的资源配额将确保在部署中正确设置 Pod 请求和限制。
    • 在群集级别设置资源配额可能会导致在部署没有正确请求和限制的合作伙伴服务时出现问题。
  • 将容器映像存储在Azure 容器注册表中,并将注册表异地复制到每个区域。
  • 使用多个区域以及对等互连位置进行 Azure ExpressRoute 连接。 如果中断影响 Azure 区域或对等互连提供商位置,冗余混合网络体系结构有助于确保不间断的跨界连接。
  • 使用全局虚拟网络对等互连将区域互连。 如果群集需要相互通信,则可以通过虚拟网络对等互连来实现两个虚拟网络之间的相互连接。 此技术将虚拟网络相互互连,以跨 Microsoft 的主干网络(甚至跨不同的地理区域)提供高带宽。
  • 使用基于拆分 TCP 的任意广播协议 Azure Front Door,将最终用户立即连接到最近的 Front Door POP (接入点) 。 Azure Front Door 的更多功能包括:
    • TLS 终止
    • 自定义域
    • Web 应用程序防火墙
    • URL 重写
    • 会话相关性

后续步骤

了解 Azure 登陆区域中 平台自动化和 DevOps 的设计注意事项和建议