花园小镇

导航

k8s学习

无聊正在学习k8s,笔记一点点记录

 

组件介绍:

APIServer 所有服务统一访问的入口 类似微服务的网关

ControllerManager 维持副本期望数

Scheduler 负责接收任务,并选择合适的节点进行任务分配

ETCD 键值对数据库 负责存储K8s集群重要的信息,并进行持久化

Kubelet 直接跟容器引擎交互实现容器生命周期的管理

Kube-proxy 负责写入规则到IPTABLES、IPVS(负载均衡)实现服务的映射访问

 

Pod k8s的最小调度单位

Pod创建后,会生成一个pause ,其内部所有容器(docker)共享网络栈、数据卷,所以端口不能冲突

 

 ReplicationController 用于确保容器副本数始终保持用户定义的副本数,如果有容器异常退出,会创建新的pod来代替,并回收掉异常的pod

最新k8s用Replicaset取代k8s,并且建议用Deployment自动管理replicaset,这样无需担心不兼容问题(比如回滚更新等)

 

HPA(Horizontal Pod Autosacling)会观察系统资源的利用率自动添加或者删除Pod,从而来满足用户期望值,实现水平扩展

 

StatefulSet 为了解决有状态服务问题,Docker一般是解决无状态服务的,但一些有状态服务(其实Docker也能做- -,只是不太好),类似mysql,mangodb这种需要实时更新的,需要StatefulSet进行解决

可以解决:1.稳定的持久化存储,保持一致性

                   2.稳定网络标识

                   3.有序化部署,区分启动顺序

DeamonSet 确保全部或一些Node节点运行一个(有且仅有一个)Pod副本,当有新的Node节点加入后,也会为他们新增一个Pod,当Node被移除后,也会把这个节点移除。类似批量管理一个任务集

 

Job 负责批处理任务,他保证批处理任务的一个或者多个pod成功结束,比如处理数据库备份等,相比于直接运行脚本,Job的好处是脚本运行失败会再次运行,或者配置运行次数等。

 

Service 可以把相同标签的Pod进行绑定 用于Pod副本的路由跳转

posted on 2021-05-02 21:52  花园小镇  阅读(60)  评论(0编辑  收藏  举报