Kubernetes 中的 Kubelet 与 DNS 详解
1. Kubelet 工作原理
Kubelet 运行在每个节点上,控制该节点上 Pod 的生命周期,与容器运行时交互以启动、停止、创建和删除容器。它可以配置各种功能,启动时会对节点进行各种检查,创建 cgroups 并启动各种插件。
1.1 CRI 例程
 CRI 由四个高级 Go 接口组成,统一了 Kubernetes 运行容器所需的所有核心功能,包括: 
 -  PodSandBoxManager  :为 Pod 创建设置环境。 
 -  ContainerRuntime  :启动、停止和执行容器。 
 -  ImageService  :拉取、列出和删除镜像。 
 -  ContainerMetricsGetter  :提供运行中容器的定量信息。 
这些接口提供暂停、拉取和沙箱功能,Kubernetes 期望任何远程 CRI 实现此功能,并使用 gRPC 调用。
1.2 Kubelet 对 CRI 的抽象:GenericRuntimeManager
 CRI 的功能不一定涵盖生产容器编排工具的所有方面,如清理旧镜像、管理容器日志等。Kubelet 提供了一个  Runtime  接口,由  kuberuntime.NewKubeGenericRuntimeManager  实现,作为任何 CRI 提供者的包装器。以下是创建新 Pod 时的示例代码: 
                      
                          
                        
                            
                            
                          
                          
                            
                  
                订阅专栏 解锁全文
                
            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					42
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            