1. Kubernates在企业中的应用场景

官方文档

  1. 自动化运维工具 - 使用k8s构建自动化运维平台(降本增效)
  2. 充分利用服务器资源
  3. 服务器无缝迁移

1.1 服务器部署模式的变迁

  1. 物理机部署
  2. 虚拟机部署
  3. 容器部署

1.2 Docker & Kubernates

为了提高业务高并发和高可用,系统会使用多台服务器集群,那么会有以下一些问题:

  • 多容器跨主机提供服务
  • 多容器分布节点部署
  • 多容器升级
  • 高效管理容器

基础设施层(Infrastructure as a Service):
平台即服务(Platform as a service):
在这里插入图片描述

2. Kubernates集群架构及组件

在这里插入图片描述
Master组件

  1. Kube-apiserver
    Kubernetes API,集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给API Server处理后再交给Etcd存储
  2. Kube-controller-manager
    处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的,例如deployment,Service
  3. Kube-scheduler
    根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。
  4. etcd
    分布式键值存储系统,用户保存集群状态数据,如Pod,Service等对象信息

Node组件

  1. Kubelet
    Kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器,Pod挂载数据卷,下载secret,获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器。
  2. Kube-proxy
    在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
  3. 第三方容器引擎
    比如docker,containerd等容器引擎。

3. Pod

Pod是一个逻辑抽象概念,Kubernetes创建和管理的最小单元,一个Pod由一个容器或者多个容器组成。

Pod特点:

  • 一个Pod可以理解为是一个应用实例,提供服务
  • Pod中容器始终部署在一个Node上
  • Pod中容器共享网络,存储资源

Pod主要用法:

  • 运行单个容器:
  • 运行多个容器:属于边车模式(Sidecar),通过在Pod中定义专门容器,来执行业务容器需要的辅助工作,将辅助功能同主业务容器解耦。
    例如: 日志收集,应用监控

4. Service

Service引入主要解决Pod的动态变化,提供统一访问入口:

  • 防止Pod失联,专门找到提供同一个服务的Pod(服务发现)
  • 定义一组Pod的访问策略(负载均衡)
  • Service通过标签关联Pod
  • Service为一组Pod提供负载均衡能力
    在这里插入图片描述
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐