Kebernetes系列一Kebernetes简介
- 基于容器的应用部署、维护和滚动升级
- 负载均衡和服务发现
- 跨机器和跨地区的集群调度
- 自动伸缩,随时扩展或收缩容器规模
- 无状态服务和有状态服务
- 一次打包多地部署
- 广泛的 Volume 支持
- 支持公有云,私有云,混合云,多重云(multi-cloud)
- 提供容器弹性,如果容器失效就替换它,等等…
Kubernetes核心组件
- etcd 提供监听watch机制,监听和推送变更,键值发生变化时会通知到API Server,保存了整个集群的状态;
- apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制,结果状态持久存储于etcd中,API Server是整个集群的网关;
- controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
- scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;
- kubelet 负责维护容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理;
- kube-proxy 负责为Service 提供 cluster 内部的服务发现和负载均衡
- Pod为最小调度单元,同一Pod中容器共享网络名称空间和存储资源,由回环口lo直接通信
- 资源标签Label是将资源进行分类的标识符,是key/values数据,为指定对象提供辨识性属性
- 标签选择器Selector根据Label来过滤符合条件的资源对象,使用标签对资源对象进行分类,使用标签选择器挑选出它们
- Pod管制器通常不直接部署及管理Pod,而是借助控制器Controller进行管理包括 ReplicationController、ReplicaSet、Deployment、StatefulSet、Job等
- 服务资源ServiceService是Pod上的资源抽像,将标签选择器选定的一组Pod定义统一固定访问入口(IP及DNS名称),到达Service的请求将负载均衡到后端的各Pod,Service也可将集群外部流量引入到集群中
- 存储卷
Volume分为临时卷、本地卷和网络卷,临时卷和本地卷位于Node本地,常用于数据缓存。
-
Namespace
Namespace 是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分为不同的项目组或用户组。常见的 pods, services,deployments 等都是属于某一个 namespace 的(默认是default)。