k8s介绍

介绍

k8s 使用go语言开发 谷歌开源的一个容器集群管理系统,borg衍生出来,主要用于自动化部署,扩展和管理容器应用,提供资源调度,部署管理 服务发现  扩容缩容 监控等

主要功能

  • 数据卷   pod之间共享数据,可以使用数据卷
  • 应用程序健康检查    容器内服务 设置监控策略
  • 复制应用程序实例   pod副本数量
  • 弹性伸缩   根据设定的指标如cpu利用率   自动缩放pod副本
  • 服务发现   使用环境变量或dns 保证容器程序自动发现
  • 负载均衡   一组pod副本分配一个私有集群ip  负载均衡转发请求到后台容器
  • 滚动更新    更新服务不中断  一次更新一个pod  而不是所有 服务编排  通过文件描述部署服务 使得应用程序部署更高效 资源监控   
    node节点组件集成cadvisor资源收集工具  通过heapster汇总,存储到influxdb 由 grafana展示 提供认证和授权   支持角色访问控制rbac

基本对象

  • Pod  是最小单元   一个pod由一个或多个容器组成 pod 共享存储和网络,运行于同一台主机
  • Service   一个应用服务抽象, 通过Lable Selector选择一组Pod提供服务
  • Volume  数据卷   共享pod中容器使用的数据
  • Namespace   将对象逻辑上分配不同namespace  可以是不同项目 用户等区分管理 设定控制策略 实现多租户
  • Lable   标签用于区分对象  如  Pod  Service

基于对象更高层的抽象

  • ReplicaSet   保证pod的副本数量
  • Deployment  管理ReplicaSets和Pod StatefulSet     适合持久性的应用程序  有唯一的网络标示符  持久存储,有序的部署扩展删除
  • DaemonSet   却表所有节点运行同一个pod
  • Job   一次性任务,运行完成后Pod销毁  不再重新启动新容器,  
    Master组件 kube-apiserver   集群统一入口
  • kube-controller-manager  处理集群中后台任务
  • kube-scheduler   调度为新建的Pod选择一个Node节点
    Node组件
  • kubelet     管理本机运行容器的生命周期
  • kube-proxy  在node节点上实现pod网络代理 维护网络和四层负载
  • docker   运行容器  
    第三方服务
  • Etcd   分布式键值存储

k8s介绍
http://www.jcwit.com/article/107/
作者
Carlos
发布于
2019年4月16日
许可协议