一. 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 crontab命令详解与实例

    内容有重复的,不过本着宁多勿少的原则就都看看吧,就当加深印象啦 基本格式 :* * * * * command分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示第2列表示小时 ...

  2. Spring Security 静态资源访问

    在搞 Spring Security 的时候遇到了一个小坑,就是静态资源加载的问题. 当我们继承了 WebSecurityConfigurerAdapter的时候,会去重写几个方法.去设定我们自己要过 ...

  3. 在Django中使用Q()对象

    转载于:  http://www.smallerpig.com/1000.html 问题 一般我们在Django程序中查询数据库操作都是在QuerySet里进行进行,例如下面代码: >>& ...

  4. HTML的CoreText流畅度超过WebView。CoreText第三方框架DTCoreText的介绍

    为什么要用CoreText(富文本)来取代WebView去显示内容.主要的原因就WebView有很大的问题,性能,FPS,卡顿,与原生不搭.这些都是大问题. WebView的缺点 1.直接使用WebV ...

  5. 【[JXOI2017]加法】

    江西竟然还有省选,而且还是可怜题,实在是有点可怕 这道题还是比较清真的,大概是最简单的可怜题? 首先看到最大值最小,就很容易想到了二分答案 对于一个二分出来的答案\(mid\),去把原数列扫一遍就可以 ...

  6. 线性回归 Python实现

    import numpy as np import pylab def plot_data(data, b, m): x = data[:, 0] y = data[:, 1] y_predict = ...

  7. [luogu1979] 华容道

    题面 ​ 先讲点无关的,这道题是真的恶心... ​ 好了,第一眼看到这道题,肯定是准备暴搜的,但是想了一想,省选难度的题目不可能一上来就让你暴搜吧,于是开启了无穷无尽的分析,我们不妨设指定棋子叫做移动 ...

  8. Kali-linux使用Aircrack-ng工具破解无线网络

    Aircrack-ng是一款基于破解无线802.11协议的WEP及WPA-PSK加密的工具.该工具主要用了两种攻击方式进行WEP破解.一种是FMS攻击,该攻击方式是以发现该WEP漏洞的研究人员名字(S ...

  9. 【问题】 cookie 不保存特殊字符 解决办法

    遇到的问题: 在做项目,用geolocation 获取经纬度,格式如(23.1133,113.2552) ,想保存到cookie中备用.但读取cookie出来之后发现逗号变成了  %2c. 找到的原因 ...

  10. [转]基于C#的开源GIS项目介绍之SharpMap篇

    我是一个刚毕业的GIS本科毕业生,目前在杭州从事GIS软件应用开发.在项目开发中总感觉自己的编程水平还不够,于是想找些开源GIS小项目来研究研究,借以提高自己的编程能力和项目开发能力.在网上搜了一下“ ...