Kubernetes

概念
kubernetes的本质就是一组集群服务器,ta可以在集群的每一个节点运行特定的程序,来对节点中的容器进行管理;
目的是实现资源管理的自动化;
  • 自我修复:如果某一个容器崩溃了,能在1秒左右迅速启动新的容器
  • 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整
  • 服务发现:服务可以通过自动发现的形式找到他依赖的服务
  • 负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡
  • 版本回退:如果发现新发布的版本又问题,可以立即回退到原来的版本
  • 存储编排:可以根据容器的需求,自动创建存储卷
组件
kubernetes主要由控制节点(master)和工作节点(node)组成
master:集群的控制平面,负责集群的决策
Apiserver:资源操作的唯一入口,接收用户输入的命令,提供认证授权,api注册和发现等功能
Scheduler:负责集群资源调度,按照预定的调度策略将pod调度到相应的node节点上
ControllerManager:负责维护集群的状态,比如程序部署安排,,故障检测,自动扩展,滚动更新等
Etcd:负责存储集群中各种资源对象的信息
node:集群的数据平面,负责为容器提供运行环境
Kubelet:负责维护容器的生命周期,即通过控制docker,来创建,更新销毁容器
Kubeproxy:负责提供集群内部的服务发现和负载均衡
Docker:负责节点上容器的各种操作
pod:kubernetes的最小控制单元,容器都是运行在pod当中,一个pod可以有一个或多个容器
controller:控制器,通过它来实现对pod的管理,比如启动pod,停止pod,伸缩pod的数量等;
service:是pod对外服务的统一入口,下面可以维护同一类的多个pod
label:标签,用于对pod进行分类,同一类pod会拥有相同的标签
namespace:命名空间,用于隔离pod的运行环境的