IBM Cloud Docs
服务的体系结构和依赖关系

服务的体系结构和依赖关系

查看样本集群体系结构以及在经典VPC 集群中创建的组件。

经典集群

以下建筑概述仅适用于经典基础设施提供商。 有关 VPC 基础架构提供者的体系结构概述,请参阅 VPC 集群体系结构

非VRF或VRF账户,仅具有公共云服务终端

下图显示了集群的组件,以及当仅 启用公共云服务终端 时,这些组件在非VRF或VRF启用账户中的交互方式。

IBM Cloud Kubernetes Service architecture when only the public cloud service endpoint is enabled
Cluster architecture when only the public cloud service endpoint is enabled

支持VRF的账户,具有私有云和公有云服务的终端

下图显示了集群的组件,以及 启用公共和私有云服务终端后,这些组件在启用VRF的帐户中的交互方式。

IBM Cloud Kubernetes Service architecture when public and private cloud service endpoints are enabled
Cluster architecture when public and private cloud service endpoints are enabled

Kubernetes 主节点组件

Kubernetes 主节点的任务是管理集群中的所有计算、网络和存储资源,并确保容器化应用程序和服务均匀部署到集群中的各工作程序节点。 根据应用程序和服务的配置方式,主节点会确定有足够资源来满足应用程序需求的工作程序节点。

Kubernetes 主节点和所有主节点组件仅供您专用,并且不会与其他 IBM 客户共享。

下表描述了 Kubernetes 主节点的组件。

kube-apiserver
Kubernetes API 服务器充当从工作程序节点到 Kubernetes 主节点的所有集群管理请求的主入口点。 Kubernetes API 服务器会验证并处理更改 Kubernetes 资源(例如,pod 或服务)状态的请求,并将此状态存储在 etcd 中。
konnectivity-server
Konnectivity服务器与Konnectivity代理配合使用,将主节点与工作节点安全连接起来。 此连接支持对 pod 和服务的 apiserver proxy 调用,还支持对 kubelet 的 kubectl execattachlogs 调用。
etcd
etcd 是一种高可用性键/值存储,用于存储集群的所有 Kubernetes 资源(例如,服务、部署和 pod)的状态。 etcd 中的数据会备份到 IBM 管理的加密存储器实例中。
kube-scheduler
Kubernetes 调度程序监视新创建的 pod,并根据容量、性能需求、策略约束、反亲缘关系规范和工作负载需求来决定这些 pod 的部署位置。 如果找不到与这些需求相匹配的工作程序节点,那么不会在集群中部署 pod。
kube-controller-manager
Kubernetes 控制器管理器是一种守护程序,用于监视集群资源(例如,副本集)的状态。 当资源的状态更改时(例如,如果副本集内的 pod 停止运行),控制器管理器会开始更正操作以实现所需的状态。

工作程序节点组件

每个工作程序节点都是物理机器(裸机)或是在云环境中的物理硬件上运行的虚拟机。 供应工作程序节点时,您将确定可供该工作程序节点上托管的容器使用的资源。 您的工作节点在出厂时已安装 IBM 管理的容器运行时、独立的计算资源、网络连接和卷服务。 内置安全性功能提供了隔离、资源管理功能和工作程序节点安全合规性。

工作节点和所有工作节点组件只供您专用,不与其他 IBM 客户共享。 但是,如果使用工作程序节点虚拟机,那么可能会根据您选择的硬件隔离级别与其他客户共享底层硬件。

不支持修改默认的工作节点组件,例如 kubelet,否则可能会导致意外结果。

下表描述了工作节点的组成。

kube-system 命名空间

ibm-master-proxy
ibm-master-proxy 会将请求从工作程序节点转发到高可用性主节点副本的 IP 地址。 在单专区集群中,主节点有三个副本,每个副本位于单独的主机上,使用一个主节点 IP 地址和域名。 对于位于支持多专区的专区中的集群,主节点的三个副本在各专区中进行分布。 因此,每个主节点都有自己的 IP 地址(已向 DNS 注册),并且整个集群主节点使用一个域名。
konnectivity-agent
Konnectivity代理与Konnectivity服务器协同工作,将主节点与工作节点安全连接起来。 此连接支持对 pod 和服务的 apiserver proxy 调用,还支持对 kubelet 的 kubectl execattachlogs 调用。
kubelet
kubelet 是一个 pod,在每个工作程序节点上运行,负责监视在工作程序节点上运行的 pod 的运行状况,以及监视 Kubernetes API 服务器发送的事件。 根据事件,kubelet 会创建或除去 pod,确保活性和就绪性探测,并向 Kubernetes API 服务器报告 pod 的阶段状态。
coredns
缺省情况下,Kubernetes 会在集群上安排 CoreDNS pod(或者在 V1.12 和更低版本中,安排 KubeDNS pod)和服务。 容器会自动使用 DNS 服务的 IP 来解析对其他 pod 和服务的搜索中的 DNS 名称。
calico
Calico 管理集群的网络策略,并由如下一些组件组成。
calico-cni:Calico 容器网络接口(CNI)管理容器的网络连接,并在容器被删除时释放分配的资源。
calico-ipam:Calico IPAM管理容器的IP地址分配。
calico-node:Calico 节点是一个容器,用于将网络容器与 Calico 所需的各个组件捆绑在一起。
calico-policy-controller:Calico 策略控制器负责监控网络流入和流出的流量,确保其符合设定的网络策略。 如果集群中不允许该流量,那么会阻止对该集群的访问。 Calico 策略控制器还用于为集群创建和设置网络策略。
kube-proxy
Kubernetes 网络代理是一种守护程序,在每个工作程序节点上运行,并且为集群中运行的服务转发 TCP 和 UDP 网络流量或对这些流量进行负载均衡。
kube-dashboard
Kubernetes 仪表板是一种基于 Web 的 GUI,允许用户对集群和集群中运行的应用程序进行管理和故障诊断。
heapster
Heapster 是一种集群范围的监视和事件数据聚集器。 Heapster pod 会发现集群中的所有节点,并查询每个节点的 kubelet 中的使用情况信息。 可以在 Kubernetes 仪表板中找到利用率图形。
Ingress ALB
Ingress 是一种 Kubernetes 服务,可用于通过将公共或专用请求转发到集群中的多个应用程序,均衡集群中的网络流量工作负载。 要通过公用或专用网络公开应用程序,必须创建 Ingress 资源,以向 Ingress 应用程序负载均衡器 (ALB) 注册应用程序。 然后,可以使用单个 URL 或 IP 地址来访问多个应用程序。
存储器提供者
每个集群都设置有一个插件,用于供应文件存储器。 您可以选择安装其他附加组件,例如块存储器。

ibm-system 命名空间

日志记录和度量

在使用日志和度量值时,可以使用 IBM Cloud Logs 和 IBM Cloud® Monitoring 服务来扩展收集和保留功能。 负载均衡器

负载均衡器是一种 Kubernetes 服务,可用于通过将公共或专用请求转发到应用程序,均衡集群中的网络流量工作负载。

default 命名空间

应用程序 pod 和服务
default 命名空间或您创建的命名空间中,您可以在 Pod 和服务中部署应用程序,以便与这些 Pod 进行通信。

VPC 集群

以下图和表描述了在 IBM Cloud Kubernetes Service VPC 集群体系结构中设置的缺省组件。

以下建筑概述仅适用于VPC基础设施提供商。 有关经典基础架构提供者的体系结构概述,请参阅经典集群体系结构

Kubernetes cluster in a VPC
Kubernetes cluster in a VPC

VPC 中的Kubernetes集群
组件 描述
Master 主节点组件(包括 API 服务器和 etcd)有三个副本,可跨专区分布,以实现更高可用性。 主节点包含社区 Kubernetes 体系结构中描述的相同组件。 主组件和所有主组件仅供您专用,并且不会与其他 IBM 客户共享。
工作程序节点 使用 IBM Cloud Kubernetes Service 时,集群管理的虚拟机是称为工作程序节点的实例。 这些工作节点虚拟机和所有工作节点组件仅供您使用,不与其他 IBM 客户共享。 不过,底层硬件与其他 IBM 客户共享。 您可以通过 IBM Cloud Kubernetes Service 提供的自动化工具(如 API、CLI 或控制台)管理 Worker 节点。 与传统的集群不同,您不会在基础设施门户或单独的基础设施账单中看到VPC计算工作节点,而是通过 IBM Cloud Kubernetes Service 管理工作节点的所有维护和计费活动。 工作节点包含与经典架构中描述的 相同的组件
集群联网 工作程序节点在指定专区中的 VPC 子网中进行创建。 默认情况下,集群的公共和私有云服务端点处于启用状态。 主节点与工作程序节点之间的通信在专用网络上执行。 已认证的外部用户可以通过公用网络与主节点进行通信,例如运行 kubectl 命令。 您可以通过在专用网络上设置VPC VPN,选择将集群设置为与本地服务通信。
应用程序联网 可以为集群中的应用程序创建 Kubernetes LoadBalancer 服务,这将在集群外部的 VPC 中自动供应 VPC 负载均衡器。 这是多专区负载均衡器,通过在工作程序节点上自动打开的专用 NodePort 来路由应用程序的请求。 有关更多信息,请参阅使用 VPC 负载均衡器公开应用程序。 Calico 用作集群联网策略光纤网。
存储器 只能设置块持久性存储器。 块存储器作为集群附加组件提供。 有关更多信息,请参阅 设置 IBM Block Storage for IBM Cloud