k8s基础概念、ETCD
原理、和k8s结合点(etcd与k8s的交集)、维护基础概念:物理组件、逻辑组件、网络组件、工作负载Master(Control plane)Node
原理、和k8s结合点(etcd与k8s的交集)、维护
基础概念:
物理组件、逻辑组件、网络组件、工作负载
1、物理组件:
Master(Control plane)
- kube-apiserver:提供唯一api接口、提供集群管理接口(用户认证授权、数据校验)、操作etcd,k8s1.0时,没有apiserver,所有组件直连etcd
- kube-controller-manager:所有资源对象的自动化控制中心,确保集群始终处于预期的工作状态
- kube-scheduler:pod调度服务、根据调度策略为pod分配节点
- etcd:保存所有的资源对象
- dns:主要负责服务发现,服务地址与服务名称的转换,kube-dns(coredns)
Node
- pod
- 静态文件
- 动态资源
- 探针
- kubelet:控制面驻节点办公室,pod管理、健康检查、资源监控
- kube-proxy:控制面驻节点办公室,运行在节点上的网络代理,主要负责service的通信和负载均衡,通过userspace(已停用)、iptables、ipvs实现
二、逻辑组件
1、namespace
- 资源和对象的抽象组合
- 划分不同工作空间的逻辑单位
- 隔离项目
- 隔离环境
- 隔离用户
2、Label/Selector
定位机制,label是key/value格式的标签,允许重复;selector通过等式、集合、逻辑运算
3、Annotation
注解,保存附加信息,供第三方工具提取使用
4、configmap/secret
保存配置信息,configmap存储非安全配置,secret保存敏感信息
5、volume
数据持久性、数据共享
6、PV/PVC
k8s为了实现存储和计算分离,而抽象出来的编排机制
存储抽象和分配机制
pv是有管理员进行创建和配置,针对共享存储的一种抽象
pvc是用户针对存储需要的声明
k8s的三种编排:服务编排、流量编排、存储编排
三、网络组件
clusterIp:kube-proxy创建的网络访问规则
pod运行在一个扁平的网络空间中,pod间可以相互访问,跨节点访问或者节点内访问。
pod没有重建的概念,只有创建、销毁,每次销毁创建后pod的ip就会重新生成,ip属于pod的一部分,pod销毁后,ip也随之销毁,ip无法复用。
客户端请求pod时,如果pod的ip变化了,就无法访问了,为了让客户端不需要感知后端pod的ip变化,就产生了clusterip,为pod生成一个虚ip,就相当于一个lb,客户端访问clusterip就可以访问到pod上,不需要关心pod的ip。
clusterip和service的生命周期绑定在一起,service通过selector找到label对应的pod,clusterip通过iptables或ipvs规则,就能将请求均匀的分发到pod上,这个规则是由kube-proxy负责创建和维护。
四、工作负载
控制器:
1、ReplicaSet:用于创建和管理无状态的pod
ReplicaController是最早的工具后来被停用,仅支持对等的pod管理,不支持集合pod的管理,不支持复杂运维
停用RC的原因是,在管理无状态应用时,使用Deployment去管rs,rs再去管理pod,实现无状态的应用变更
2、Deployment:以Rs为基础提供进度感知,引入deployment主要是用于pod编排
3、DaemonSet:提供节点级永久性运行,在k8s每一个节点里面,把守护进程封装成容器,
应用场景主要用于工具,业务场景使用不多,节点监控、采集节点日志、节点网络插件
4、StatefulSet:有状态应用,每个pod有确定的启动顺序
容器化应用中,最困难的就是涉及有状态的应用的管理
5、Job/cronjob
job运行一次就结束的任务,适合执行一次的任务
cronjob在job上加上了时间调度
6、Service
应用服务的抽象、通过label定位、负责负载和服务发现、
NodeIp:node节点的ip
podip:pod的ip地址
clusterIp:service的ip地址
更多推荐
所有评论(0)