kubernetes 基本概念

Cluster
Cluster是计算、存储和网络资源的集合,Kubernetes利用这些资源运行各种基于容器的应用。
Master
Master是Cluster的大脑,它的主要职责是调度,即决定将应用放在哪里运行。Master运行在操作系统上,可以是物理机或者虚拟
机。为了实现高可用,可以运行多个Master。
Master上运行着以下关键进程
- Kubernetes API Server(kube-apiserver):提供 restful api 接口,是 kubernetes 里所有资源的增,删,改,查等操作的唯一入口,也是集群控制的入口进程
- Kubernetes Controller Manager(kube-controller-manager):kubernetes里所有资源对象的自动化控制中心,可以理解为资源对象的大总管。
- Kubernetes Scheduler(kube-scheduler):负责资源调度(Pod 调度)的进程。
Node
Node的职责是运行容器应用。Node由Master管理,Node负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期。
Node运行在Linux操作系统上,可以是物理机或者是虚拟机, node 可以被动态的增加到集群中.
每个Node 上运行着以下关键进程
- kubelet:负责 Pod 对应容器的创建,启停等任务,同时与Master 密切协作,实现集群管理的基本功能
- kube-proxy:实现 Kubernetes Service 的通信与负载均衡机制的重要组件
- Docker Engine (docker):Docker 引擎,负责本机的容器创建和管理工作
Pod
Pod是Kubernetes的最小工作单元。每个Pod包含一个或多个容器。Pod中的容器会作为一个整体被Master调度到一个Node上运行。
Pod中的所有容器使用同一个网络namespace,即相同的IP地址和Port空间。它们可以直接用localhost通信。同样的,这些容器可以共享存储,当Kubernetes挂载volume到Pod,本质上是将volume挂载到Pod中的每一个容器。
Pod 有两种类型:普通的Pod 及 静态 Pod。静态 Pod 没有存放在 Kubernetes 的 etcd 存储里,而是存放在 具体Node 的一个具体文件中 ,并且只在此 node 上启动,运行,普通的 Pod 一旦被创建,就会被放到 etcd 中存储.
Controller
Kubernetes通常不会直接创建Pod,而是通过Controller来管理Pod的。Controller中定义了Pod的部署特性,比如有几个副本、在什么样的Node上运行等。
常见控制器的种类
- Deployment 可以管理Pod的多个副本,并确保Pod按照期望的状态运行
- ReplicaSet 实现了Pod的多副本管理。使用Deployment时自动创建ReplicaSet,也就是说Deployment是通过ReplicaSet来管理Pod的多个副本的,我们通常不需要直接使用ReplicaSet。
- DaemonSet 用于每个Node最多只运行一个Pod副本的场景。
- StatefulSet 面向有状态的服务,每个Pod 都有唯一稳定的网络标识,Pod 副本的启停顺序是受控的,采用持久化存储卷.
Service
Deployment可以部署多个副本,每个Pod都有自己的IP,Service定义了外界访问一组特定Pod的方式。Service有自己的IP和端口,Service为Pod提供了负载均衡, 通过标签选择器的方式指定后端 Pod.
Namespace
用于实现多租户的资源隔离,可以将集群内部的资源对象分配到不同的 namespace 中. Namespace可以将一个物理的Cluster逻辑上划分成多个虚拟Cluster,每个Cluster就是一个Namespace。
不同Namespace里的资源是完全隔离的。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号