1、Cluster
Cluster是计算、存储和网络资源的集合,Kubernetes利用这些资源运行各种基于容器的应用
2、Master
Master是Cluster的大脑,主要职责是调度,决定将应用放在哪里运行。Master运行linux操作系统,可以是物理机或者虚拟机,为了实现高可用,可以运行多个master
3、Node
Node的职责是运行容器应用。Node由master管理,Node负责监控并汇报容器的状态,同时根据master的要求管理容器的生命周期。Node运行在linux操作系统上,可以是物理机或者虚拟机。
4、Pod
Pod是Kubernetes的最小工作单元。每个pod包含一个或多个容器,pod中的容器会作为一个整体被master调度到一个node上运行。
Kubernetes引入pod主要基于两个目的,可管理型、通信和资源共享
pod有两种使用方式:运行单一容器、运行多个容器
5、Controller
kubernetes通常不会直接创建pod,而是通过Controller来管理pod。Controller中定义了pod的部署特性,常用的Controller有deployment、replicaset、daemonset、statefuleset、job等。
6、service
deployment可以部署多个副本,每个pod都有自己的ip,外界如何访问这些副本?显然不能通过pod的ip,此时就要使用service
kubernetes service定义了外界访问一组特定pod的方式。Service有自己的ip和端口,service为pod提供负载均衡。
7、Namespace
如果有多个用户或项目组使用同一个Kubernetes Cluster,如何将他们创建的Controller、Pod等资源分开呢?答案就是Namespace。Namespace可以将一个物理的Cluster逻辑上划分成多个虚拟Cluster,每个Cluster就是一个Namespace。不同Namespace里的资源是完全隔离的。