03
2018
04

kubernetes资源对象--持久化存储Persistent Volume和Persistent Volume Claim

存储管理跟计算管理是两个不同的问题。理解每个存储系统是一件复杂的事情,特别是对于普通用户来说,有时并不需要关心各种存储实现,只希望能够安全可靠地存储数据。为了简化对存储调度,K8S对存储的供应和使用做了抽象,以API形式提供给管理员和用户使用。要完成这一任务,引入了两个新的API资源:Persistent Volume(持久卷,以下简称PV)和Persistent Volume Claim(持久卷申请,以下简称PVC)。PV是集群中的一块网络存储,跟Node一样,也是集群的资源。PV跟Volum
03
2018
04

Kubernetes核心概念总结

1、基础架构1.1 Master  Master节点上面主要由四个模块组成:APIServer、scheduler、controller manager、etcd。    APIServer。APIServer负责对外提供RESTful的Kubernetes API服务,它是系统管理指令的统一入口,任何对资源进行增删改查的操作都要交给APIServer处理后再提交给etcd。如架构图中所示,kubectl(Kubernetes提供的客户端工具,该工具内部就是对Kubernetes API的调用)

03
2018
04

kubernetes资源对象--Volume

在Docker的设计实现中,容器中的数据是临时的,即当容器被销毁时,其中的数据将会丢失。如果需要持久化数据,需要使用Docker数据卷挂载宿主机上的文件或者目录到容器中。在K8S中,当Pod重建的时候,数据是会丢失的,K8S也是通过数据卷挂载来提供Pod数据的持久化的。K8S数据卷是对Docker数据卷的扩展,K8S数据卷是Pod级别的,可以用来实现Pod中容器的文件共享。支持的类型EmptyDirHostPathGCE PersistentDiskAWS ElasticBlock StoreN
03
2018
04

kubernetes--应用程序健康检查

本文基于kubernetes 1.5.2版本编写K8S的应用程序健康检查分为livenessProbe和readinessProbe,两者相似,但两者存在着一些区别。livenessProbe在服务运行过程中检查应用程序是否运行正常,不正常将杀掉进程;而readness Probe是用于检测应用程序启动完成后是否准备好对外提供服务,不正常继续检测,直到返回成功为止。livenessProbe许多应用程序经过长时间运行,最终过渡到无法运行的状态,除了重启,无法恢复。通常情况下,K8S会发现应用程序
03
2018
04

kubernetes资源对象--ResourceQuotas

概念Resource Quotas(资源配额,简称quota)是对namespace进行资源配额,限制资源使用的一种策略。 K8S是一个多用户架构,当多用户或者团队共享一个K8S系统时,SA使用quota防止用户(基于namespace的)的资源抢占,定义好资源分配策略。Quota应用在Namespace上,默认情况下,没有Resource Quota的,需要另外创建Quota,并且每个Namespace最多只能有一个Quota对象。限额资源类型计算资源:limits.cpu、requests.
03
2018
04

kubernetes--Init Container

概念Init Container就是做初始化工作的容器。可以有一个或多个,如果有多个,这些 Init Container 按照定义的顺序依次执行,只有所有的InitContainer 执行完后,主容器才启动。由于一个Pod里的存储卷是共享的,所以 Init Container 里产生的数据可以被主容器使用到。Init Container可以在多种K8S资源里被使用到如Deployment、DaemonSet, PetSet/StatefulSet、Job等,但归根结底都是在Pod启动时,在主容器
03
2018
04

kubernetes资源对象--limitranges

概念LimitRange(简称limits)基于namespace的资源管理,包括pod和container的最小、最大和default、defaultrequests等。一旦创建limits,以后创建资源时,K8S将该limits资源限制条件默认/强制给pod,创建后发现不符合规则,将暂停创建pod。在创建资源时,用户可以为pod自定义资源管理限制,在创建时会去检查和匹配limits值,发现不匹配将在创建时报错。创建后,该pod的资源使用遵守自定义规则,而不会遵守namespace的limit
03
2018
04

kubernetes--资源管理

概念默认情况下,kubernetes不会限制pod等资源对象使用系统资源,单个pod或者容器可以无限制使用系统资源。kubernetes的资源管理分为资源请求(request)和资源限制(limit),资源请求能够保证Pod有足够的资源来运行,而资源限制则是防止某个Pod无限制地使用资源,导致其他Pod崩溃。kubernetes1.5之前的版本只支持CPU和内存这两种资源类型。三种方式kubernetes的资源管理有3种方式,分别是单个资源对象的资源管理(以下简称resource)、limitr
03
2018
04

kubernetes利用yaml文件创建pod

kubernetes创建pod的yaml文件,参数说明apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中   kind: Pod #指定创建资源的角色/类型   metadata: #资源的元数据/属性     name: web04-pod #资源的名字,在同一个namespace中必
03
2018
04

kubernetes资源对象--deployment详细描述

概念Deployment(中文意思为部署、调度)提供了一种更加简单的更新RC和Pod的机制,K8S版本1.2实现的。通过在Deployment中描述所期望的集群状态,Deployment Controller会将现在的集群状态在一个可控的速度下逐步更新成所期望的集群状态。Deployment主要职责同样是为了保证pod的数量和健康,90%的功能与RC完全一样,可以看做新一代的RC。功能Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳