kubernetes集群快速认识

kubernetes集群认识

kuberneters是开源的一个容器集群管理系统,简称k8s。
现在我们已经有了docker,为什么还需要使用k8s呢?

  • 容器实列越来越多,我们很难去管理。
  • 我们怎么去保障容器的分布式部署(高可用,高并发)。

kubernetes集群快速认识_第1张图片

通过上面的图,我们可以看到,docker在容器引擎层,kubernetes在容器编排层;容器引擎主要负责容器生命周期的管理,而k8s可以高效的管理这些容器;docker引擎主要负责容器的资源隔离、资源限制,这些都是k8s本身不具备的,所以k8s需要借助容器引擎的能力才能正常工作;总之,容器是提供应用级别的一个抽像,主要去管理应用,而k8s是提供应用级别集群的抽象。

k8s集群架构

kubernetes集群快速认识_第2张图片

从上图我们可以看到k8s主要由master节点node节点组成

Mster节点组件

  • API-Server
  • scheduler
  • controller-manager
  • etcd(可以单独部署)

Node节点组件

  • kubelet
  • kube-proxy
  • docker

kubernetes集群快速认识_第3张图片

组件功能简介

Mster组件

  • kube-apiserver:集群的统一入口,各组件协调者,以RESfulAPI提供接口服务,所有对象资源的增删改查操作都交给APIserverr处理后再交给etcd存储。
  • contro-manager:处理集群中常规后台任务,一个资源对应一个控制器,而controllerManager就是负责管理这些控制器的。
  • schedule:根据调度算法为新创建的pod选择一个node节点,可以任意部署,可以部署再同一个节点上,也可以部署再不同的节点上。
  • etcd:分布式键值存储系统,用于保存集群状态数据,比如:pod、service等对象信息。

Kubernetes基本概念

  • Pod

最小部署单元
一组容器的集合
一个pod中共享网络命名空间,
pod是短暂的

  • Controllers

deployment(无状态应用部署)
statefulset(有状态应用部署)
deemonset:确保所有node运行同一个pod
job一次新任务
cronjob定时任务

  • Service

防止pod失联,定义一组pod的访问策略

  • Label

标签,附加到某个资源上,用于关联对象、查询和筛选

  • Namespace

命名空间,将对象逻辑上隔离

你可能感兴趣的:(kubernetes)