k8s学习笔记

一 .k8s架构

image-20200928103059652.png

master:主控节点

  • API Server:集群统一入口,以restful风格进行操作,同时交给etcd存储

    • 提供认证、授权、访问控制、API注册和发现等机制
  • scheduler:节点的调度,选择node节点应用部署

  • controller-manager:处理集群中常规后台任务,一个资源对应一个控制器

  • etcd:存储系统,用于保存集群中的相关数据

  • Work node:工作节点

    • Kubelet:master派到node节点代表,管理本机容器
      • 一个集群中每个节点上运行的代理,它保证容器都运行在Pod中
      • 负责维护容器的生命周期,同时也负责Volume(CSI) 和 网络(CNI)的管理
    • kube-proxy:提供网络代理,负载均衡等操作
  • 容器运行环境【Container Runtime

    • 容器运行环境是负责运行容器的软件
    • Kubernetes支持多个容器运行环境:Docker、containerd、cri-o、rktlet以及任何实现Kubernetes CRI (容器运行环境接口) 的软件。
  • fluentd:是一个守护进程,它有助于提升 集群层面日志

K8S核心概念

*Pod

  • Pod是K8s中最小的单元
  • 一组容器的集合
  • 共享网络【一个Pod中的所有容器共享同一网络】
  • 生命周期是短暂的(服务器重启后,就找不到了)

*Controller

  • 确保预期的pod副本数量【ReplicaSet】
  • 无状态应用部署【Depoltment】
    • 无状态就是指,不需要依赖于网络或者ip
  • 有状态应用部署【StatefulSet】
    • 有状态需要特定的条件
  • 确保所有的node运行同一个pod 【DaemonSet】
  • 一次性任务和定时任务【Job和CronJob】

*Service

  • 定义一组pod的访问规则
  • Pod的负载均衡,提供一个或多个Pod的稳定访问地址
  • 支持多种方式【ClusterIP、NodePort、LoadBalancer】

Volume

  • 声明在Pod容器中可访问的文件目录
  • 可以被挂载到Pod中一个或多个容器指定路径下
  • 支持多种后端存储抽象【本地存储、分布式存储、云存储】

Deployment

  • 定义一组Pod副本数目,版本等
  • 通过控制器【Controller】维持Pod数目【自动回复失败的Pod】
  • 通过控制器以指定的策略控制版本【滚动升级、回滚等】

你可能感兴趣的:(k8s学习笔记)