有状态服务:
个人理解:可以持久化存储数据,或者说数据可以在本地存储或者迁移
无状态服务:
个人理解:无状态服务即一次性操作,不能保存数据,或者说一次性保存,实例退出后数就会删除或者消失。
ReplicaSet:
保证在所有时间内,都有特定数量的Pod存在,如果太多了,就删掉几个,如果太少RS就会新建几个。和直接创建Pod不同的是,ReplicaSet会先替换掉那些被删除或者被终止的Pod,无论当初删除原因是什么。并且因为ReplicaSet支持集合式选择器(selector)
Deployment:
deployment用来处理无状态服务的资源。
定义的deployment来创建ReplicaSets,ReplicaSets来创建pod。由于ReplicaSets不支持滚动更新,deployment又不支持Pod创建,所以2者取长补短,搭配使用。
deployment支持滚动更新/回滚应用,Pod创建过程中暂停/继续,Pod的扩容和缩容
stateFulSet
用于支持有状态服务的资源
DaemonSet
保证集群中每个节点(Node)上都能运行一个Pod副本,当有新的(Node)节点加入集群时,DaemonSet为他们新增一个Pod,当有节点(Node)从集群中被移除时,节点上的Pod也会被垃圾回收器回收.
删除daemonSet会删除他上面创建的所有Pod.
daemonSet作用就像计算机的守护进程,他能运行集群存储,日志收集,监控等这些服务。一般都是集群必备的基础服务。
Horizontal Pod Autoscaling(HPA)
Horizontal Pod AutoScaling可以根据Cpu使用率或应用自定义metrics自动扩展Pod数量,支持(ReplicaSet 和 deployment)
Job
批处理任务,仅执行一次和linux的定时任务,at一样
CronJob
定时任务,和linxu的crontab一样
kubernetes主要组件一览
1 2 3 4 5 6 7 8 9 10 11 12 |
Api Server #所有服务统一访问入口 ControllerManager #维持副本期望数目 Scheduler #负责介绍任务,选择合适的节点进行分配任务 Etcd #键值对数据库,存储k8s集群的所有重要信息(持久化) kubelet #直接和容器交互,实现容器的生命周期管理 kube-proxy #负责携入规则至iptables IPVS 或者实现服务的映射访问 CoreDNS #可以为集群中的(Services)svc创建一个域名,解析到组件ip DashBord #给k8s集群提供一个B/S结构访问体系 ingress controller #官方只能实现4层代理,而ingress可以实现7层 Federation #提供一个可以跨集群中心,多k8s统一管理的功能 Prometheus #提供一个k8s集群的监控能力 ELK #提供k8s集群日志统一分析平台 |
高可用集群副本数目,最好是奇数的形式,1,3,5,7,9
- 本文固定链接: https://www.yoyoask.com/?p=2112
- 转载请注明: shooter 于 SHOOTER 发表