Kubernetes架构及核心组件
一、基本架构
Kubernetes集群可以被看作是一个工厂,而各个组件则是这个工厂里的不同部门:
Kubernetes API服务器:就像是这个工厂的总经理,负责接收所有的请求并将它们分配给相应的部门进行处理。
etcd:就像是这个工厂的记事本,负责记录所有的配置信息和状态信息,以便其他组件可以访问和使用它们。etcd节点三个只能挂一个,5个节点能挂2个
Kubernetes控制器管理器:就像是这个工厂的调度员,负责监控整个工厂的运行状态,并根据需要调度各个部门的工作。
Kubernetes调度器:就像是这个工厂的人力资源部门,负责将新的工作负载分配给最合适的工人来处理。
Kubernetes节点:就像是这个工厂里的工人,负责实际处理工作负载。每个节点都有一个kubelet组件,它是工人的领班,负责监控工人的状态并向API服务器报告。
Kubernetes服务:就像是这个工厂里的客户服务部门,负责为工厂内的工作负载提供网络服务,让它们能够被其他部门和外部客户访问到。
总之,Kubernetes集群的各个组件共同工作,就像一个工厂里的各个部门一样,协同完成各自的任务,从而实现高效的生产运营。
- Namespace:命名空间,相当于把一个集群虚拟成多个集群,部分资源具有隔离性
- Pod:K8s最小单元,可以简单理解为一个、多个或一组容器的集合。
- Deployment:无状态应用控制器
- StatefulSet:有状态应用控制器
- DaemonSet:守护进程控制器
- Service:逻辑上的一组Pod,用于集群服务通信
- Ingress:集群服务入口,通过域名发布服务
- ConfigMap:K8s配置管理
- Secret:K8s加密数据管理
二、Kubernetes API Server概述
Kubernetes API Server通过一个名为kube-apiserver的进程提供服务,该进程运行在Master上。通常通过命令行工具kubectl与Kubernetes API Server交互,它们之间的接口是RESTful API。
API Server架构从上到下可以分为以下几层。
(1ÿ