重要概念
cluster 集群 是计算、存储和网络资源的集合。
master 为实现高可用可运行多个master
pod是k8s的最小工作单元。每个pod包含一个或多个容器。pod中的容器会作为一个整体被master调度到一个node上运行。
controller k8s通常不会直接创建pod,而是通过controller来管理pod的。controller中定义了pod的部署特性,比如有几个剧本?,在什么样的node上运行等。为了满足不同业务场景,k8s提供了多种controller,包括deployment、replicaset、daemonset、statefulset、job等。
deployment deployment是最常用的controller。deployment可以管理pod的多个副本,并确保pod按照期望的状态运行。
replicaset 实现pod的多副本管理。使用deployment时会自动创建replicaset,也就是说deployment是通过replicaset来管理pod的多个副本的,通常不需要直接使用replicaset。
daemonset 用于每个node最运行一个pod副本的场景。正如其名称所示的,daemonset通常运行daemon。
statefuleset 能够保证pod的每个副本整个生命周期中名称是不变的。当某个pod发生故障需要删除并重新启动时,pod的名称会发生变化,同时statefulset会保证副本按照固定的顺序启动、更新或者删除。
job 用于运行结束就删除的应用,而其他controller中的pod通常是长期持续运行的。
service deployment可以部署多个副本,每个pod都有自己的ip,外界通过SERVICE访问各个副本,k8s的service定义了外界访问一组特定pod的方式。service有自己的ip和端口,service为pod提供了负载均衡。k8s运行容器pod与访问容器这两项任务,分别由controller和service执行。
namespace 可以将一个物理的cluster逻辑上划分成多个虚拟cluster,每个cluster就是一个namespace。不同的namespace里的资源是完全隔离的。
上述来源:
https://blog.csdn.net/wenjianfeng/article/details/93347306