【kubernetes笔记】k8s_简介(01)

Page content

这一篇整理了Yarn调度器和调度算法相关的内容。

1.kubernetes基本介绍

引用官方的解释:

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。

2.kubernetes功能

  • 自动装箱
    基于容器对应用运行环境的资源配置要求自动部署应用容器

  • 自我修复(自愈能力)
    当容器失败时,会对容器进行重启 当所部署的 Node 节点有问题时,会对容器进行重新部署和重新调度 当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务

  • 水平扩展
    通过简单的命令、用户 UI 界面或基于 CPU 等资源使用情况,对应用容器进行规模扩大 或规模剪裁

  • 服务发现
    用户不需使用额外的服务发现机制,就能够基于 Kubernetes 自身能力实现服务发现和 负载均衡

  • 滚动更新
    可以根据应用的变化,对应用容器运行的应用,进行一次性或批量式更新

  • 版本回退
    可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退

  • 密钥和配置管理
    在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署

  • 存储编排
    自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要
    存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph 等)、公共云存储服务

  • 批处理
    提供一次性任务,定时任务;满足批量数据处理和分析的场景

3.k8s 集群架构组件

图片备用地址
k8s_01

3.1 master组件

每个k8s集群里至少需要一个Master节点来负责整个集群的管理和控制,
所有控制命令都是发给它,它来负责具体的调度和执行。

master节点包含三个进程和一个键值数据库etcd。
三个进程都运行在集群中的某个节点上,主控组件通常这个节点被称为 master 节点。
这些进程包括:kube-apiserver、kube-controller-manager 和 kube-scheduler。

  • apiserver
    集群统一入口,是通讯枢纽以restful方式,交给etcd存储。
    集群内各个功能模块之间数据交互和通信的中心枢纽。
    所有从集群到master的通信路径都终止于apiserver。
  • controller-manager
    是控制器,处理集群中常规后台任务,一个资源对应一个控制器
    通过apiserver监控集群的公共状态,并致力于将当前状态转变为期望的状态。
  • scheduler
    是调度器,节点调度,选择node节点应用部署
    负责分配调度Pod到集群内的节点上,它监听kube-apiserver,
    查询还未分配Node的Pod,然后根据调度策略为这些Pod分配节点。
  • etcd
    存储系统,用于保存集群相关的数据
    是键值数据库,保存所有集群数据的后台数据库。需要备份计划。

3.2 node组件

  • kubelet 跟master节点通讯,master排到node节点的代表,管理本机容器
  • kube-proxy 是网络代理,提供网络代理,负债均衡等操作。

4.k8s几个常用概念

4.1 Node

在 Kubernetes 中,节点(Node)是执行工作的机器,以前叫做 minion。 根据你的集群环境,节点可以是一个虚拟机或者物理机器。
每个节点都包含用于运行 pods 的必要服务,并由主控组件管理。
集群中的每个非 master 节点都运行两个进程: kubelet: 负责节点的运行状态,监控和管理pod状态,和master节点进行通信。 kube-proxy: 一种网络代理,将 Kubernetes 的网络服务代理到每个节点上。

4.2 Pod

Kubernetes的基本调度单元,一个pod一般包含一个或多个容器。
每个pod都被分配一个唯一的(在集群内的)IP地址。

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

4.3 controller

  • 确保预期的pod副本数量
  • 无状态应用部署和有状态应用部署
  • 确保所有的node运行同一个pod
  • 一次性任务和定时任务

4.4 Service

服务内容与具体的pod分离。
Kubernetes服务代理负责自动将服务请求分发到正确的pod处,不管pod移动到集群中的什么位置,甚至可以被替换掉。
是定义一组pod的访问规则

4.5 kubectl

这是 Kubernetes 的命令行配置工具。用户通过它传输命令。

4.6 Lable

4.7 Volumes

5.其他参考资料

备用图片
components-of-kubernetes 图片来源于:https://kubernetes.io/docs/concepts/overview/components/

备用图片 components-of-kubernetes 图片来源于:http://omerio.com/2015/12/18/learn-the-kubernetes-key-concepts-in-10-minutes/

其他结构图: 备用图片1 备用图片2


欢迎大家的意见和交流

email: li_mingxie@163.com