1 前置知识

  • Linnux 操作系统
  • Docker

2 概念

一个开源的,用于管理云平台中对各主机上的容器化应用。K8s的目标是让部署容器化的应用简单并且高效,k8s提供了应用部署,规划,更新,维护的一种机制。

K8s是Google在2014年开源的一个容器编排引擎,支持自动化部署、大规模可伸缩、应用容器化管理。再生产环境中部署一个应用程序时,通常要部署应用的多个实例以便对应用请求进行负载均衡。

特性

  • 自动装箱
  • 自我修复(自愈能力)
  • 水平拓展
  • 服务发现
  • 滚动更新
  • 版本回退
  • 密钥和配置管理
  • 存储编排
  • 批处理

3 集群架构组件

Master Node:主控节点

  • API server:集群统一入口,以一种restful方式,交给etcd存储
  • scheduler:节点调度,选择node节点应用部署
  • controller-manager:处理集群中常规后台任务,一个资源对应一个控制器
  • etcd:存储系统,用于保存集群相关的数据

Workder Node:工作节点

  • kubelet:master派到node节点代表,管理本机容器
  • kube-proxy:提供网络代理,负载均衡操作

4 核心概念

Pod

  • 最小部署单元
  • 一组容器的集合
  • 共享网络
  • 生命周期是短暂的

Controller

  • 确保预期的pod副本数量
  • 无状态应用部署:随便使用
  • 有状态应用部署:需要特定条件才能使用
  • 确保所有的node运行同一个pos
  • 一次性任务和定时任务

    Service

  • 定义一组pod的访问规则

其他