Kubernetes架构介绍
        【摘要】 Kubernetes是什么?
Kubernetes是一个跨主机集群的开源容器调度平台。他可以管理各种不同的底层容器。与Openstack类似,OpenStack通过管理底层大量的虚拟化节点构成一个庞大的集群,提供云服务。而k8s通过管理底层的容器节点,自动化应用容器的部署、扩展和操作,提供以容器为中心得基础架构。
    
    
    
    Kubernetes是什么?
 Kubernetes是一个跨主机集群的开源容器调度平台。他可以管理各种不同的底层容器。与Openstack类似,OpenStack通过管理底层大量的虚拟化节点构成一个庞大的集群,提供云服务。而k8s通过管理底层的容器节点,自动化应用容器的部署、扩展和操作,提供以容器为中心得基础架构。
  l一个基础的kubernetes集群包含一个master节点和多个node节点。每个节点可以是一台物理机,也可以是一台虚拟机。
 
 
 Master 节点提供的集群控制,对集群做出全局性决策,例如调度等。通常在master节点上不运行用户容器。
节点组件运行在每一个Node节点上,维护运行的pod并提供kubernetes运行时环境。
Master节点
   Kube-apiserver
  
 
  
       kube-apiserver对外暴露了Kubernetes API。它是的 Kubernetes 前端控制层。它被设计为水平扩展,即通过部署更多实例来缩放。
  
 
  
   Etcd
  
 
  
         etcd 用于 Kubernetes 的后端存储。所有集群数据都存储在此处,始终为您的 Kubernetes 集群的 etcd 数据提供备份计划。
  
 
  
   kube-controller-manager
  
 
  
         运行控制器,它们是处理集群中常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成独立的可执行文件,并在单个进程中运行。
  
 
  
   kube-scheduler
  
 
  
        监视没有分配节点的新创建的 Pod,选择一个节点供他们运行。
  
 
  
   Node节点
  
 
  
    Kube-proxy
   
 
   
       Kube-proxy用于管理service的访问入口,包括集群内pod到service的访问和集群外访问service。
   
 
   
    Kubelet
   
 
   
    Kubelet是在集群内每个节点中运行的一个代理,用于保证pod的运行
   
 
   
    容器引擎
   
 通常使用docker来运行容器,也可使用rkt等做为替代方案。
  
    Kubelet的功能
   
 
   
    挂载 Pod 所需要的数据卷(Volume)。
   
 
   
    下载 Pod 的 secrets。
   
 
   
    通过 Docker 运行(或通过 rkt)运行 Pod 的容器。
   
 
   
    周期性的对容器生命周期进行探测。
   
 
   
    如果需要,通过创建 镜像 Pod(Mirror Pod) 将 Pod 的状态报告回系统的其余部分。
   
 
   
    将节点的状态报告回系统的其余部分。
   
 
   
     除了上述组件外,kubernetes使用中通常需要一些额外的组件实现特定功能,常用的Add-ons包括:
    
 
    
     Core-dns:为整个集群提供DNS服务
    
 
    
     Ingress Controller:为service提供外网访问入口
    
 
    
     Dashboard: 提供图形化管理界面
    
 
    
     Heapster 提供集群资源监控
    
 
    
     Flannel:为kubernetes提供方便的网络规划服务
    
 
    
     Kubeadm
    
 
    
      Kubeadm是社区主推的快速创建Kubernetes集群工具。
     
 
     
      kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。它被故意设计为只关心启动集群,而不是之前的节点准备工作。同样的,诸如安装各种各样值得拥有的插件,例如 Kubernetes Dashboard、监控解决方案以及特定云提供商的插件,这些都不在它负责的范围。
     
 
     
      Master节点:kubeadm init,快速初始化安装主节点组件
     
 
     
      Node节点:kubeadm join,将从节点加入集群
     
 
     
      查看组件运行状态
     
 
     
      Docker
     
 
     
     
      kubelet
     
 
     
     
      Kubeadm容器化组件
     
 
     
       Kubeadm为了实现部署的便捷性,将一些组件封装到了Pod中。
      
 
      
       Master 节点
      
 
      
      
        查看node节点的所包含的系统pod
       
 
       
       
         可以看到在node节点中支撑k8s系统的必须组件较少。
        
 
        
         命名空间 - namespace
        
 
        
          Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群。 这些虚拟集群被称为命名空间。
         
 
         
          命名空间提供了良好的资源隔离,可以用于区分不通的项目、用户等。如开发测试使用的namespace,或者生产使用的namespace。
         
 
         
          使用如下命令可以查看哪些对象在命名空间中:
         
 
         
         
          常用命名空间命令
         
 
         
           查看存在哪些namespace。
          
 
          
          
            对指定命名空间进行操作,如创建pod,查看pod等,以下是我们之前使用过的查看系统域中pod的命令:
           
 
           
             以上命令也可使用简写的方式:
            
 
            
            
            
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)