Kubernetes 概念和架构

要了解 ArcGIS Enterprise on Kubernetes 系统要求和先决条件,需要熟悉 Kubernetes 概念和架构。 以下将对常见术语进行介绍,且这些术语将在整个文档中使用。

集群

集群是一组通过协同工作来运行容器化应用程序的工作节点。 Kubernetes 集群是部署 ArcGIS Enterprise on Kubernetes 的一个先决条件。

节点

节点是指定了一组最低硬件要求的虚拟机或物理计算机。 部署所需的节点数将根据部署期间选择的架构配置文件而有所不同。 请查看系统要求,以确定用于部署的最低节点要求。

命名空间

命名空间将用于组织 Kubernetes 集群中的对象。 集群中可以包含一个或多个命名空间,每个命名空间都使用唯一的名称进行指定。 删除命名空间的同时将移除其所有对象。 命名空间是部署 ArcGIS Enterprise on Kubernetes 的一个先决条件。

基于角色的访问控制 (RBAC)

基于角色的访问控制将用于管理集群中资源的权限。

资源配额

资源配额将用于控制资源限制,例如指定命名空间中的 CPU 和内存。

机密

机密将用于在命名空间中存储和管理密码、令牌、密钥或其他高度敏感的信息。

Pod

Pod 是 Kubernetes 集群中最小的单元。 Pod 是对一个容器或(某些情况下)一组容器的抽象。 集群中的每个 Pod 均分配有一个唯一的内部可用 IP 地址。

部署

部署是可通过协同工作来运行容器化应用程序的一组指定 Pod、复本集和服务的分组。 部署将管理一组 Pod 的更新,并可使用经优化的资源限制对其进行扩展和更新。 在 ArcGIS Enterprise on Kubernetes 中,部署将从 ArcGIS Enterprise ManagerArcGIS Enterprise Administrator API 进行管理。 在 ArcGIS Enterprise on Kubernetes 中,管理员会将 GIS 服务和应用程序作为部署进行管理。

复本集

部署将利用复本集来确保为给定的 Pod 运行一组指定的复本。 复本集可根据需要创建或删除 Pod,以实现通过部署指定的所需复本集。 复本集为无状态。

有状态集

有状态集将用于管理使用一组相同规范创建的 Pod。 有状态集将为其各自部署中的每个 Pod 维护唯一 ID,以确保 Pod 是唯一的,并已适当分配至永久存储卷。 有状态集为有状态。

服务

服务将用于对一组 Pod 进行分组,并根据需要提供其访问权限。 服务将对一组 Pod 使用单个域名系统 (DNS) 名称,并将内部网络流量定向至一系列 Pod,以管理工作负载并提供 Pod 间通信。 服务将由可以被参与的 Pod 附加和识别的静态 IP 地址定义。

服务和 Pod 的生命周期是独立的,这意味着 Pod 可以终止并被替换为新 Pod。 如果出现此情形,服务将相应地识别新的 IP 地址。

服务可确保将网络流量定向至为工作负载指定的当前 Pod 集。

入口

入口用于将外部流量路由到集群中。 它还可以用于为集群内的服务提供额外的负载平衡。

永久卷

永久卷是可供集群用于数据和系统资源存储的资源。 集群中的容器和 Pod 将使用永久卷声明来访问永久卷。 以下信息适用于永久卷:

  • 管理员可以建立从 Kubernetes 集群到物理存储(例如云存储、网络文件系统 (NFS) 等)的连接。
  • 它们不依赖于 Pod 的生命周期。
  • 它们没有关联至特定的节点;它们将与整个集群相关联。
  • 永久卷位于命名空间之外,以提供对整个集群的存储。

永久卷将由管理员定义为一系列属性。 文件中所需的规范会有所不同,并且取决于物理存储类型。 永久卷可以在部署之前静态配置。 当使用存储类时,还可以在部署期间对其进行动态配置。

有关永久卷的其他详细信息,请查看系统要求

存储类

存储类用于描述可用存储类型的属性。 当动态配置永久卷时,系统将使用存储类。 存储类将被指定为一组属性,且将通过配置程序属性进行指定。 每个物理存储提供程序中均包含一个配置程序。

永久卷声明

永久卷声明将请求或声明永久卷,以便为 Pod 提供资源。 Pod 将通过永久卷声明来声明存储,而永久卷声明又将通过存储类来请求存储。 永久卷声明位于命名空间之内。 永久存储将用于管理已保存的数据,其范围是从配置文件和日志到成员内容。

Pod 到 Pod 通信

Pod 将通过虚拟网络中的服务进行相互通信。 系统将为各个 Pod 分配一个 IP 地址,以供服务在 Pod 的整个生命周期内进行识别。 当 Pod 终止(可能是由于其容器中的应用程序运行失败)时,系统将在其位置创建替换 Pod 和关联的 IP 地址。

拓扑分布约束

topologySpreadConstraint 属性可以应用于 Pod 模板,用于控制在集群拓扑中进行计划的方式。 拓扑域被定义为将每个唯一值分配给相同的标注键。 topologySpreadConstraint 确保在拓扑域中根据所定义的 maxSkew 属性均匀分布。 如果 maxSkew 设置为 1,则每个拓扑域中的 Pod 数量仅可相差 1 个复本以内,因此如果您使用三个拓扑域,计划程序将不允许在这三个域中分别包含 0、1 和 2 个副本,而是将其计划为 1、1、1。