K8s,Kubernetes 的缩写,起源于希腊语意为舵手、领航员。是一种容器编排工具,于14.7被Docker收购,同类产品有docker swarm:
k8s master 节点:
master节点:k8s集群的管理节点,提供集群资源数据访问入口,负责运行Api Server进程、Scheduler服务进程、Controller Manager服务进程、etcd存储服务,负责关联工作节点 Node。
k8s node 节点:
node节点:k8s集群中运行Pod的服务节点,是k8s集群最小操作单元,用于承载被分配Pod的运行(Pod宿主机); 关联Master管理节点,拥有名称、IP、系统资源信息; 负责运行:docker eninge服务、守护进程kunelet、负载均衡器kube-proxy;
每个Node节点都运行一组关键进程: Docker Engine:负责本机容器的创建和管理工作; kubelet:负责对 Pod对应的容器的创建、启停等任务;(Node节点可以在运行时动态增加到K8s集群中) kube-proxy:实现K8s Service的通信与负载均衡机制的重要组件;
K8s【推荐的、默认的】Node管理方式:kubelet会向master注册自己,kubelet进程会定时向Master汇报自身情报(如操作系统、Docker版本、CPU和内存,以及有哪些Pod在运行等等),这样Master可以获知每个Node节点的资源使用情况,并实现高效均衡的资源调度策略。
Pod:是k8s最小的调度单位,包含一/多个container,内部共享一个namespace。
什么是控制器?
K8s 中内建了很多 Controller 控制器,这些相当于一个状态机,用来控制 Pod 的具体状态和行为。
ReplicationController 和 ReplicaSet Deployment(RC、RS)
Deployment
DaemonSet
StateFulSet
Job/CronJob
Horizontal Pod Autoscaling
ReplicationController 和 ReplicaSet:
ReplicationController(RC)用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收;在新版本的 Kubernetes 中建议使用 ReplicaSet 来取代 ReplicationController 。ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector;
RS/RC 与 Deployment 的关联
apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
name: frontend
spec:
replicas: 3
selector:
matchLabels:
tier: frontend
tem