K8S可以运行在私有云、公有云和混合云环境中,它使用云控制器(内置云规格说明的控制逻辑),实现K8S集群与云服务商关联,使得与云通信的组件与集群中其他组件相互独立。云控制器使用插件机制,方便不同的云服务提供商集成。
    云控制器功能
    节点控制器
    云上创建新服务器时,对应的,由节点控制器负责创建新的节点对象:1. 为每个服务器创建节点对象(通过云服务商提供的API发现新建服务器)。2. 使用云规格说明解释和标记节点对象:节点所在分区和可用资源(CPU、内存等)。3. 获取节点的域名和网络地址。4. 校验节点健康状况。当节点不响应时,通过云服务商API来校验服务器是宕机、被删除或者关机。如果服务器已从云资源中删除,节点控制器就从集群中删除节点对象。
    有些云服务商的实现分为节点控制器和独立的节点生命周期控制器两部分。
    路由控制器
    路由控制器负责配置云节点的路由,确保集群中的所有节点可以相互访问。依赖于云服务商的实现,有些路由控制器支持分配Pod网络的IP地址段。
    服务控制器
    服务集成云基础设施的多个组件,像可管理的负载均衡、IP地址、网络流量过滤、目标健康监测等。服务控制器通过云服务商的API构建负载均衡器、以及其他组件。
    授权
    节点控制器
    节点控制器只访问节点对象,需要完全的读写权限,可执行的操作包括:Get、List、Create、Update、Patch、Watch、Delete。
    路由控制器
    路由控制器监视节点对象的创建,为其配置合适的路由,需要能访问节点对象,可执行的操作为:Get。
    服务控制器
    服务控制器监视服务对象的创建、更新和删除事件,配置服务的端点。访问服务时,需要List、Watch权限;更新服务时,需要Patch和Update权限;创建服务端点资源时,需要Create、List、Get、Watch、Update权限。