天天看点

Kubernetes(一)组件概况

文章目录

  • ​​Kubernetes(一)组件概况​​
  • ​​部署方式演变​​
  • ​​kubernetes组件概况​​
  • ​​kubelet命令​​

Kubernetes(一)组件概况

部署方式演变

  • 传统部署
  • 直接将应用部署在物理机上,难以定义资源使用界限
  • 虚拟化部署
  • 一台物理机上可以运行多个虚拟机,每个虚拟机都是独立的环境
  • 容器化部署
  • 和虚拟化部署相似,但是共享底层物理机操作系统,更加轻量
Kubernetes(一)组件概况

为什么需要kubernetes?

  • 容器化部署有以下缺陷:
  • 当某个容器down掉了,如何能快速启动一个新的容器对外提供服务
  • 当并发请求量上来了,如何快速启动一批容器分摊请求,当高峰过去,如何回收多余的容器,保证系统资源,这其实就是容器编排问题,kubernetes就是解决容器编排的工具

kubernetes的作用:本质就是对容器集群进行自动化管理

  • 自我修复:一旦某个容器崩溃,能快速重启新的容器
  • 弹性伸缩:可以根据需要,自动对集群中的容器数量进行调整
  • 服务发现:服务可以通过自动发现的形式找到他所依赖的服务
  • 负载均衡:多容器服务能自动实现容器负载均衡
  • 版本回退:如果某个发布镜像版本有问题,可以实现快速回顾到相应的版本
  • 存储编排:可以根据容器自身的需求快速创建存储卷

kubernetes组件概况

一个kubernetes集群主要由控制节点(master节点)和工作节点(Node)组成,每个节点都会安装不同的组件

  • master节点:集群的控制平面,负责集群的决策
  • ApiServer:资源操作的唯一入口,在kubernetes中一切皆资源,操作的就是资源,接收用户命令,提供认证,授权,API注册和发现等机制
  • Scheduler:负责集群的调度,根据调度策略将Pod调度到相应的Node节点上
  • ControllerManager:负责维护集群的状态,比如Pod中容器的启动,程序的部署安排,故障检测,自动扩展,弹性伸缩,滚动更新等
  • ETCD:负责存储集群中节点的对象信息,比如我在集群启动后,master节点的APIServer能知道目前有多少Node节点
  • Node节点:集群的数据平面,实际提供服务的节点,为容器提供运行环境
  • kubelet:负责维护容器的生命周期,控制docker来创建,更新,销毁容器,controllerManager将启动命令交给Node节点,由kubelet启动相应容器
  • KuberProxy:负责提供集群内部的服务发现和负载均衡
  • Kubernetes(一)组件概况

kubelet命令

格式:

kubelet [command] [type] [name] [tags]      

command:

继续阅读