一、简介

为什么要使用K8S?

技术优势:

  • 优秀的API设计以及简洁高效的架构设计,主要组件个数很少,彼此之间通过接口调用;
  • 基于微服务模式的多层资源抽象模型,兼顾灵活性与可操作性,提出的Pod模型被许多平台借鉴;
  • 可拓展性好,模块化容易替换,伸缩能力极佳,1.2.0版本单机集群支持1000个节点,同时运行30000个pods
  • 自动化程度高
  • 部署支持多种环境,包括虚拟机、裸机部署
  • 丰富的运维工具,方便用户对集群进行性能测试、问题检查和状态监控
  • 自带控制台、客户端命令等

二、模块说明

简介 & 说明 - 图1

文件名 说明
hyperkube 总控程序,用于运行其他Kubernetes程序
etcd 保存整个集群信息(包括:集群状态等)
kube-apiserver 负责与etcd交互,负责etcd的增删改查(提供了资源操作的唯一入口);并提供认证、授权、控制访问、API注册和发现操作
kube-controller-manager 维护集群的状态,比如:故障检测、自动扩展、滚动更新等
kubectl 客户端命令行工具
kubelet 维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
kube-proxy proxy主程序
kube-scheduler 资源的调度,按照预定的调度策略将Pod调度到对应的机器上

Kubernetes Master节点安装部署etcd、kube-apiserver、kube-controller-manager、kube-scheduler服务进程。我们使用kubectl作为客户端与Master进行交互操作,在工作Node上仅需部署kubelet和kube-proxy服务进程。