一. kubernetes是什么

kubernetes是一个全新得基于容器技术得分布式架构领先方案。是google Borg得一个开源版本。Borg是google得一个久负盛名得内部使用得大规模集群管理系统,它基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。

二. kubernetes 术语

kubernetes中的大部分概念如Node,Pod,Replication Controller,service等都可以看作一种“资源对象”。几乎所有的资源对象都可以通过kubernetes提供的kubectl工具(或者api编程调用)执行增删查改等操作并将其保存在etcd中持久化存储。所以通过这个角度来看,kubernetes是一个高度自动化的资源控制系统。

Master

k8s中的master是集群控制节点,来负责具体的执行过程,master节点通常会占据一个独立的服务器。一个主要原因是它太重要了,它是整个集群的“首脑"。

master节点上运行着以下一组关键进程。

  1. Kubernetes API Server,提供HTTP Rest接口的关键服务进程。是Kubernetes里所有资源的增删查改等操作的唯一入口,也是集群控制的入口进程。
  2. Kubernetes Controller Manager,Kubernetes里所有资源对象的自动化控制中心。
  3. Kubernetes Scheduler, 负责资源调度(Pod调度)的进程。

master节点还会启动一个etcd server进程,因为Kubernetes所有资源对象的数据全部保存在etcd中。

Node

Node在较早版本也叫Minion,在kubernetes集群除了Master节点,其他节点被称为Node节点。node节点为k8s集群的工作负载节点,每个node都会被master分配一部分工作负载。当node宕机时,工作负载会被master转移到其他节点。

node节点主要运行着下面一组关键进程

  1. kubelet: 负责Pod对应容器的创建,启停等任务。同时与master节点密切协作,实现集群管理的基本功能。
  2. kube-proxy: 实现kubernetes Server的通信与负载均衡机制的重要组件。
  3. Docker Engine: 负责本机容器的创建和管理工作。

Node节点可以动态增加到Kubernetes集群中,默认情况下kubelet会向master注册自己,当Node被纳入集群管理,kubelet进程就会定时向Master节点汇报自身情报(包括docker版本,机器cpu内存),这样master会获取每个node的资源使用情况。并实现高效的资源调度策略。

Pod

Pod是kubernetes的最重要也是最基本的概念

Label

Lebel是kubernetes系统中一个核心概念,一个label是一个kv的键值对,k、v由用户自己指定。可以附加到各种资源对象上,例如node,pod,service,rc等。
我们可以通过给指定资源捆绑一个或多个不同的资源标签,来实现多维度的资源分组管理。详细参考19页

Replication Controller RC

核心概念之一,定义一个期望的场景,既声明某种Pod的副本数量字任意时刻都符合某一个预期值,所以rc的定义包括一下几个部分。

  1. Pod 期待的副本数
  2. 用于筛选目标pod的label selector

rc的一些特性和作用

  1. 大多数情况下,通过自定义一个rc实现pod的创建过程及副本数量的自动控制。
  2. rc里包含完整的pod定义模板
  3. rc通过label selector机制实现对pod 副本的自动控制
  4. 通过改变rc里的pod副本数量,实现对pod的扩容和缩容功能
  5. 通过改变rc里pod模板中的镜像版本,可以实现pod的滚动升级功能

deployment

deployment是kubernetes1.2引入的新概念。引入的目的是为了更好的解决pod的编排问题,可以看作是rc的一次升级。

deployment的典型使用场景有以下几个

  1. 创建一个deployment对象来生成对应的replica set并完成pod副本的创建过程
  2. 检查deployment的状态来看部署动作是否完成
  3. 更新deployment以创建新的pod(镜像升级)
  4. 如果当前deployment不稳定,回滚到早先的deployment版本
  5. 挂起或恢复一个deployment

Horizontal Pod Autoscaler HPA

Horizontal Pod Autoscaler 简称HPA,含义为pod横向自动扩容,与rc,deployment一样,也属于一种kubernet 资源对象。通过追踪分析rc控制的所有目标pod的负载变化情况,来确定是否需要针对性的调整pod的副本数。HPA当前由两种方式做为pod负载的度量指标

  1. CPUUtilizationPercentage
  2. 应用程序自定义的度量指标,比如qps和tps

Service

Kubernetes Service 其实是我们常提起的为服务架构中的一个"微服务",前面的pod,rc等资源对象其实都是为kubernetes service做嫁衣的。

kubernetes集群中的三种ip

  1. node ip,node节点的物理ip地址,可以通过网络直接通信
  2. pod ip,是docker 引擎根据docker0网桥的ip地址段进行分配,是一个虚拟的二层网络
  3. cluser ip,属于kubernetes集群中的内部地址,无法在集群外部使用这个地址。

Volume

Volume 是pod中能够被多个容器访问的共享目录。概念、用途和目的与docker的vlume相似但不等价。原因如下

  1. kubernetes的volume定义在pod上,然后被一个pod里的多个容器挂载到具体的文件目录下
  2. kubernetes的volume的生命周期与pod的生命周期相同,但与容器的生命周期不相关。当容器终止或重启时volume的数据不会丢失,kubernetes支持多种类型的volume,如GlusterFS,Ceph等先进的分布式文件系统。

kubernetes基本概念和术语的更多相关文章

  1. Kubernetes 基本概念和术语

    Kubernetes 基本概念和术语 Kubernetes 中大部分概念如 Node.Pod.Replication Controller. Service 等都可以看做一种 "资源对象&q ...

  2. Kubernetes基本概念和术语之《Pod》

    Pod是Kubernetes的最重要也最基本的概念.我们看到每个Pod都有一个特殊的被称为“根容器”的Pause容器对应的镜像属于Kubernetes平台的一部分.除了Pause容器,每个Pod还包含 ...

  3. 《Kubernetes权威指南第2版》学习(四)kubernetes基本概念和术语

    1: etcd是干什么的: 键-值存储仓库,用来配置共享和服务发现. k8s把Node, pod,replication controller, Services看做是资源对象,这些资源对象可以通过K ...

  4. Kubernetes基本概念和术语之《Master和Node》

    Kubernetes中的大部分概念如Node.Pod.Replication Controller.Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过Kubernetes提供的k ...

  5. k8s上的基础概念和术语

    kubernetes基本概念和术语   kubeernetes中的大部分概念如Node,Pod,Replication Controller ,Serverce等都可以看作一种“资源对象”,几乎所有的 ...

  6. k8s 基础概念和术语

    Master k8s里的master指的是集群控制节点,每个k8s集群里需要有一个Master节点来负责整个集群的管理和控制,基本k8s所有控制命令都发给它,它负责整个具体的执行过程,后面执行操作基本 ...

  7. k8s记录-k8s基本概念和术语

    每次个节点上当然都要运行Docker.Docker来负责所有具体的映像下载和容器运行. Kubernetes主要由以下几个核心组件组成: etcd保存了整个集群的状态: apiserver提供了资源操 ...

  8. 深入解析Windows操作系统笔记——CH1概念和术语

    1.概念和工具 本章主要介绍Windows操作系统的关键概念和术语 1.概念和工具 1.1操作系统版本 1.2基础概念和术语 1.2.1Windows API 1.2.2 服务.函数和例程 1.2.3 ...

  9. Oracle知识梳理(一)理论篇:基本概念和术语整理

    理论篇:基本概念和术语整理 一.关系数据库           关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整 ...

随机推荐

  1. Linux who命令详解

    who 命令显示关于当前在本地系统上的所有用户的信息.显示以下内容:登录名.tty.登录日期和时间.输入whoami 显示您的登录名.tty.您登录的日期和时间.如果用户是从一个远程机器登录的,那么该 ...

  2. January 08 2017 Week 2nd Sunday

    Believe not all that you see nor half what you hear. 眼见的不能全信,耳闻的也不能半信. What you hear, what you see, ...

  3. node.js和MongoDB学习网址

    回想我写的node.js和MongoDB的博客,都是菜鸟教程那里的知识,所以我打算不写了,那些都是基础,在项目开发中,我发现单单有那些基础不行,这些基础可以尽快学好,然后学习项目开发过程 下面是两个教 ...

  4. sqoop2启动job报错

    set option --name verbose --value true   #打开报错详情输出 Exception has occurred during processing command  ...

  5. Redis(二)安全设置

    redis是一款流行的内存数据库,默认是无密码登录,若出于安全考虑,需要为其加上控制权限,则可以通过以下2种方法来设置. 1. 采用绑定IP的方式来进行控制(比较安全的方法) 在redis.conf( ...

  6. vlc源码分析(三) 调用live555接收RTSP数据

    首先了解RTSP/RTP/RTCP相关概念,尤其是了解RTP协议:RTP与RTCP协议介绍(转载). vlc使用模块加载机制调用live555,调用live555的文件是live555.cpp. 一. ...

  7. ABAP术语-URL

    URL 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114193.html Uniform Resource Locator (U ...

  8. 关于IScroll使用中的常见问题与解决方案

    1.在iscroll4的滚动容器范围内,点击input框.select等表单元素时没有响应这个问题原因在于iscroll需要一直监听用户的touch操作,以便灵敏的做出对应效果,所以它把其余的默认事件 ...

  9. iOS通过切片仿断点机制上传文件

    项目开发中,有时候我们需要将本地的文件上传到服务器,简单的几张图片还好,但是针对iPhone里面的视频文件进行上传,为了用户体验,我们有必要实现断点上传.其实也不是真的断点,这里我们只是模仿断点机制. ...

  10. Windows 安装Redis程序

    一.系统环境 1.硬件系统:Windows7 64位 2.软件环境: Redis 64位 3.2.100.Redis Desktop Manager. 二.Redis安装 下载地址:https://g ...