Node:

(1) Node(节点)也就是宿主机,宿主机可以是物理机 、云主机 、虚拟机等等,我们可以在一个宿主机上跑多个容器(container)
(2) Node 上会被分配一些工作负载(即 docker 容器),当 Node 宕机后,其上面跑的应用会被转移到其他 Node 上
(3) Node 上有这些关键的进程:

  ① kubelet,负责Pod对应容器的创建、启动、停止等任务,同时与Master节点密切协作,实现集群管理的基本功能
  ② kube-proxy,实现 Kubernetes Service 之间的通信与负载均衡机制的重要组件
  ③ Docker Engine,Docker引擎,负责本机容器的创建和管理

Pod:

(1) 我们可以在一个宿主机上跑多个容器,为了高可用和负载均衡,我们把多个容器组成一个Pod,同一个Pod里的容器共享同一个网络命名空间,可以使用 localhost 互相通信;
(2) 每个Pod里都有一个特殊的容器(Pause),这个容器提供网络栈和数据卷,其他普通容器共享这个容器的资源,因此同一个Pod内容器之间的通信和数据交换更为高效;
(3) 因为每个Pod都有一个Pause(根容器),因此每个Pod至少有两个容器,一个根容器和一个工作容器,只有当根容器挂了,才认为Pod挂了

Service:

(1) 多个功能相同的Pod组成一个Service(微服务),Kubernetes 集群是由多个 Service 组成的,我们可以通过 ip:port 的形式来访问Service
(2) 同一个Service下的所有Pod是通过 kube-proxy 实现负载均衡,而每个Service都会分配一个全局唯一的虚拟ip,也叫做 Cluster ip

Master:

(1) 在一个Kubernetes集群里面,会有多个节点(Node),而 Kubernetes Master 这个节点作为主节点,用来管理其他的工作节点;
(2) Master 节点的功能包括资源管理 、Pod调度 、弹性伸缩 、安全控制 、系统监控 、纠错等;
(3) Master 是整个集群的控制中心,kubernetes 的所有控制指令都是发给Master,它负责具体的执行过程;
(4) Master上有这些关键的进程:

  ① Kubernetes API Server,是所有资源增、删、改、查等操作的唯一入口,比如我们要增加Pod,增加Service都要通过这个入口来配置
  ② Kubernetes Controller Manager,是所有资源的自动化控制中心,比如弹性伸缩功能,就是通过 Controller Manager 控制Pod的数量来实现的
  ③ Kubernetes Scheduler,负责资源调度,主要是调度Pod到合适的Node上
  ④ etcd Server,etcd是一个高可用的键值存储系统,Kubernetes使用它来存储各个资源的状态及资源的数据

Label:

(1) Label是一个键值对,其中键和值都由用户自定义,Label 可以附加在各种资源对象上,如 Node、Pod、Service、RC 等;
(2) 比如多个功能相同的Pod会组成一个Service,那么Service怎么区分这些Pod呢?我们会给每个Pod打一个Label(标签),Service 通过 Label 来找到指定的Pod;
(3) 一个资源对象可以定义多个 Label,同一个 Label 也可以被添加到任意数量的资源对象上;Label可以在定义对象时定义,也可以在对象创建完后动态添加或删除;

RC:

(1) RC(Replication Controller)定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期
(2) 比如 Master 上运行的 RC 就是用来控制弹性伸缩的,通过控制Pod的数量来实现,如果某个Pod挂了,RC会重新选用另一个Pod
(3) RC 也可以用来实现动态升级,比如新版本每增加1个Pod,旧版本就减少一个Pod,始终保持固定的值,最终旧版本Pod数为0,全部为新版本
(4) Deployment:这个工具相当于RC的升级版,可能会取代RC,目的是为了解决Pod编排问题,跟RC比较,最大的一个特点是可以知道Pod部署的进度

HPA:

(1) HPA(Horizontail Pod Autoscaler)用来实现Pod的动态扩容、缩容,它通过追踪分析RC控制的所有目标Pod的负载变化情况,来决定是否要调整目标Pod的副本数
(2) 有两种指标作为判断的依据,第一种是cpu的平均值,比如所有Pod的cpu平均值达到90%就扩容;第二种是Service请求数,达到指定的请求数就扩容

Volume:

(1) Volume存储卷,是Pod中能够被多个容器访问的共享目录,定义在Pod上,然后被一个Pod里的多个容器挂载到具体的目录下
(2) Volume与Pod生命周期相同,但与容器的生命周期没关系,当容器终止或者重启时,Volume中的数据并不会丢失
(3) Kubernetes支持多种类型的Volume,如 glusterfs,ceph 等先进的分布式文件系统

PV:

(1) PV(persistent volume)可以理解成 Kubernetes 集群中某个网络存储中对应的一块存储,它与 Volume 类似,但也有一些区别
(2) PV只能是网络存储,不属于任何Node,但可以在每个Node上访问到;PV并不是定义在pod上,而是独立于pod之外定义

Namespace:

(1) 当Kubernetes集群中存在多租户的情况下,就需要有一种机制实现每个租户的资源隔离,而 Namespace(命名空间)的目的就是为了实现资源隔离
(2) Namespace(命名空间)可以理解为划分子网,使得网段不同,从而实现资源隔离

Kubernetes 相关概念的更多相关文章

  1. Kubernetes相关概念

    This page explains how Kubernetes objects are represented in the Kubernetes API, and how you can exp ...

  2. Kubernetes 简介

    一.Kubernetes 相关概念 1. Kubernetes 是一个开源的容器集群管理系统,主要用来自动化部署容器 .自动扩展与收缩容器规模 .提供容器间的负载均衡2. Node:Node(节点)也 ...

  3. kubernetes入门学习系列

    一.kubernetes基础概念 初识kubernetes kubernetes相关概念 二.kubernets架构和组件 kubernetes架构 kubernetes单Master架构 kuber ...

  4. Kubernetes学习-相关概念

    Kubernetes架构图 上图可以看到如下组件,使用特别的图标表示Service和Label: Pod Container(容器) Label()(标签) Replication Controlle ...

  5. kubernetes学习笔记

    docker实现了更便捷的单机容器虚拟化的管理, docker的位置处于操作系统层与应用层之间; 相对传统虚拟化(KVM,XEN): docker可以更加灵活的去实现一些应用层功能, 同时对资源的利用 ...

  6. Kubeadm 安装部署 Kubernetes 集群

    阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Heapster 插件 后记 相关文章:Ku ...

  7. ASP.NET Core在Azure Kubernetes Service中的部署和管理

    目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...

  8. 安装部署 Kubernetes 集群

    安装部署 Kubernetes 集群 阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Hea ...

  9. Kubernetes 学习(十)Kubernetes 容器持久化存储

    0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kuberne ...

随机推荐

  1. java android使用Gson解析泛型json数据

    那就直接开始吧. 在我们获取服务器返回的json数据有时候会出现这种情况,比如: {"body":{"attrName":"feed",&q ...

  2. R语言判断向量中是否存在一个元素

    判断ori_data[,1]中是否存在元素a: a %in% ori_data[,1] 如果存在返回 true,否则返回 false    

  3. Python 类的多态

    #python的多态 class Dog(): def eat(self): print("i am dog , eat something . ") class Cat(): d ...

  4. Linux中通过/proc/stat等文件计算Cpu使用率

    Linux平台Cpu使用率的计算 proc文件系统 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/pro ...

  5. Navdeep Jaitly

    中文名:耐迪普 杰特尼 早期: 印度科技大学 1994-1995 滑铁卢大学 1998-2000 博士: 多伦多大学 Hinton实验室 2008-2014 工作: 谷歌大脑 2014-2017 英伟 ...

  6. android wifi RSSI达到阈值自动断开

    设置wifi的RSSI达到阈值之后自动断开. wifi状态改变,会更新状态栏,在状态栏中更改. --- a/packages/SystemUI/src/com/android/systemui/sta ...

  7. Linux操作_grep/egrep工具的使用

    一.grep命令介绍 命令格式:grep [-cinvABC] ‘word’ filename,常用选项如下: -c:表示打印符合要求的行数. -i:表示忽略大小写. -n:表示输出符合要求的行及其行 ...

  8. 解救小哈——DFS算法举例

    一.问题引入 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那么,问题来了... 二. ...

  9. e794. 创建JSlider组件

    // Create a horizontal slider with min=0, max=100, value=50 JSlider slider = new JSlider(); // Creat ...

  10. (原)SDL调试心得

    今天在项目中用到SDL2.0的库做视频显示用,在其中出现不少问题,这里一一记录下来,并作为以后的参考. 同一个窗口句柄在多次使用SDL_CreateWindowFrom和SDL_DestroyWind ...