一. 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. January 05 2017 Week 1st Thursday

    The true nobility is in being superior to your previous self. 真正的高贵在于超越过去的自己. I will be satisfied if ...

  2. December 29th 2016 Week 53rd Thursday

    The true nobility is in being superior to your previous self. 真正的高贵在于超越过去的自己. It is really difficult ...

  3. 寒假关于计算机课程的学习计划(第二次作业<二>)

    由于自己刚从紧张的高中学习中解脱出来,进入大学学习意识不够重视,导致学业与别人相差较大,特别是C语言,所以打算寒假主要先补一补C语言.自己在网上查找了很多资料,包括浙江大学翁凯老师在网易云课堂讲的&l ...

  4. MySQL面试宝典

    ==============================================# 参数==============================================auto ...

  5. Mac下安装sbt

    为了可以用Eclipse编译基于Scala的Spark Project,需要安装sbt 环境:OS X Yosemite 10.10.3 1.安装Xcode 因为要在终端用macports安装sbt, ...

  6. angularJs的run方法操作

    省掉了控制器 <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv= ...

  7. 【OpenCV】图像增强---灰度变换、直方图均衡化

    图像增强的目的:改善图像的视觉效果或使图像更适合于人或机器的分析处理.通过图像增强,可以减少图像噪声,提高目标与背景的对比度,也可以增强或抑制图像中的某些细节.  ------------------ ...

  8. 基于HP DL388 Gen 9服务器基本配置(ESXI 6.5)

    最近一段时间由于做毕业设计的原因,一直处于忙碌状态,刚做完毕业设计,导师处于项目的原因,买了一台惠普服务器(人民币1.7万),服务器自带的内存仅有16 G,硬盘也就只有600G,而且磁盘还做了raid ...

  9. [转载] Python协程从零开始到放弃

    Python协程从零开始到放弃 Web安全 作者:美丽联合安全MLSRC   2017-10-09  3,973   Author: lightless@Meili-inc Date: 2017100 ...

  10. jquery mobile changepage的三种传参方法介绍

    本来觉得changePage 那么多option,传几个参数应该没问题结果翻遍国内外网站,基本方法只有三种 1,显性传参,就是利用url这个地址把参数带上,然后到changepage后的新页面,用函数 ...