k8s
qiujfeng
这个作者很懒,什么都没留下…
展开
-
读书笔记-k8s- 1.4 基本概念和术语-daemonset
DaemonSet:在每个Node上都调度一个Pod。有且仅有一个。 这种用法适合有这种需求的应用。 ◎ 在每个Node上都运行一个GlusterFS存储或者Ceph存储的Daemon进程。 ◎ 在每个Node上都运行一个日志采集程序,例如Fluentd或者Logstach。 ◎ 在每个Node上都运行一个性能监控程序,采集该Node的运行性能数据,例如Prometheus Node Exporter等。 DaemonSet的Pod调度策略与RC类似,除了使用系统内置的算法在每个Node上进行调度原创 2020-09-16 06:40:08 · 135 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语-ConfigMap
要解决的问题: 我们知道,Docker通过将程序、依赖库、数据及配置文件“打包固化”到一个不变的镜像文件中的做法,解决了应用的部署的难题,但这同时带来了棘手的问题,即配置文件中的参数在运行期如何修改的问题。我们不可能在启动Docker容器后再修改容器里的配置文件,然后用新的配置文件重启容器里的用户主进程。 为了解决这个问题,Docker提供了两种方式: ◎ 在运行时通过容器的环境变量来传递参数; ◎ 通过Docker Volume将容器外的配置文件映射到容器内。 针对上述问题,Kubernetes原创 2020-08-09 17:38:06 · 161 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语-Annotation
Annotation(注解)与Label类似,也使用key/value键值对的形式进行定义。不同的是Label具有严格的命名规则,它定义的是Kubernetes对象的元数据(Metadata),并且用于Label Selector。Annotation则是用户任意定义的附加信息,以便于外部工具查找。在很多时候,Kubernetes的模块自身会通过Annotation标记资源对象的一些特殊信息。 通常来说,用Annotation来记录的信息如下。 ◎ build信息、release信息、Docker镜像信原创 2020-08-09 17:28:21 · 556 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语-Namespace
Namespace(命名空间)是Kubernetes系统中的另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离。Namespace通过将集群内部的资源对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。 Kubernetes集群在启动后会创建一个名为default的Namespace。kubectl get命令将仅显示属于default命名空间的资源对象。 接下来,如果不特别指明Names原创 2020-08-09 17:26:00 · 112 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语-Volume-pv-pvc
Volume(存储卷)是Pod中能够被多个容器访问的共享目录。Kubernetes的Volume概念、用途和目的与Docker的Volume比较类似,但两者不能等价。首先,Kubernetes中的Volume被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下;其次,Kubernetes中的Volume与Pod的生命周期相同,但与容器的生命周期不相关,当容器终止或者重启时,Volume中的数据也不会丢失。最后,Kubernetes支持多种类型的Volume,例如GlusterFS、Ceph等原创 2020-08-12 22:32:55 · 317 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语-job
从1.2版本开始,Kubernetes支持批处理类型的应用,我们可以通过Kubernetes Job这种新的资源对象定义并启动一个批处理任务Job。 Kubernetes在1.5版本之后又提供了类似crontab的定时任务——CronJob,解决了某些批处理任务需要定时反复执行的问题。 Job也控制一组Pod容器。 Job控制Pod副本与RC等控制器的工作机制有以下重要差别: (1)Job所控制的Pod副本是短暂运行的,可以将其视为一组Docker容器,其中的每个Docker容器都仅仅运行一次.原创 2020-08-09 16:23:38 · 110 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语-service
Service服务也是Kubernetes里的核心资源对象之一,Kubernetes里的每个Service其实就是我们经常提起的微服务架构中的一个微服务。 从图1.12中可以看到,Kubernetes的Service定义了一个服务的访问入口地址,前端的应用(Pod)通过这个入口地址访问其背后的一组由Pod副本组成的集群实例,Service与其后端Pod副本集群之间则是通过Label Selector来实现无缝对接的。RC的作用实际上是保证Service的服务能力和服务质量始终符合预期标准。 ..原创 2020-08-09 16:11:09 · 129 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语--StatefulSet
在Kubernetes系统中,Pod的管理对象RC、Deployment、DaemonSet和Job都面向无状态的服务。但现实中有很多服务是有状态的,特别是一些复杂的中间件集群,例如MySQL集群、MongoDB集群、Akka集群、ZooKeeper集群等,这些应用集群有4个共同点。 (1)每个节点都有固定的身份ID,通过这个ID,集群中的成员可以相互发现并通信。 (2)集群的规模是比较固定的,集群规模不能随意变动。 (3)集群中的每个节点都是有状态的,通常会持久化数据到永久存储中。 (4)如...原创 2020-08-09 15:16:11 · 152 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语--Resource Metrics API
从1.7版本开始,Kubernetes自身孵化了一个基础性能数据采集监控框架——KubernetesMonitoring Architecture,从而更好地支持HPA和其他需要用到基础性能数据的功能模块。在Kubernetes Monitoring Architecture中,Kubernetes定义了一套标准化的API接口Resource Metrics API,以方便客户端应用程序(如HPA)从Metrics Server中获取目标资源对象的性能数据,例如容器的CPU和内存使用数据。到了Kuberne原创 2020-08-09 15:03:43 · 264 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语 HPA-Horizontal Pod Autoscaler
HPA与之前的RC、Deployment一样,也属于一种Kubernetes资源对象。通过追踪分析指定RC控制的所有目标Pod的负载变化情况,来确定是否需要有针对性地调整目标Pod的副本数量,这是HPA的实现原理。当前,HPA有以下两种方式作为Pod负载的度量指标。 ◎ CPUUtilizationPercentage。 ◎ 应用程序自定义的度量指标,比如服务在每秒内的相应请求数(TPS或QPS)。 如果某一时刻CPUUtilizationPercentage的值超过80%,则意味着当前Pod副.原创 2020-08-09 15:02:25 · 131 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语 deployment
Deployment在内部使用了Replica Set来实现目的,无论从Deployment的作用与目的、YAML定义,还是从它的具体命令行操作来看,我们都可以把它看作RC的一次升级,两者的相似度超过90%。 Deployment相对于RC的一个最大升级是我们可以随时知道当前Pod“部署”的进度。实际上由于一个Pod的创建、调度、绑定节点及在目标Node上启动对应的容器这一完整过程需要一定的时间,所以我们期待系统启动N个Pod副本的目标状态,实际上是一个连续变化的“部署过程”导致的最终状态。 De.原创 2020-08-09 14:57:34 · 155 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语 rc--rs
RC是Kubernetes系统中的核心概念之一,简单来说,它其实定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,所以RC的定义包括如下几个部分。 ◎ Pod期待的副本数量。 ◎ 用于筛选目标Pod的Label Selector。 ◎ 当Pod的副本数量小于预期数量时,用于创建新Pod的Pod模板(template)。 应用升级时,通常会使用一个新的容器镜像版本替代旧版本。我们希望系统平滑升级,比如在当前系统中有10个对应的旧版本的Pod,则最佳的系统升级方式是...原创 2020-08-09 14:37:51 · 339 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语 lable
lable是实现了分组、选择的功能。用SQL来类比,很形象。 一个Label是一个key=value的键值对,其中key与value由用户自己指定。Label可以被附加到各种资源对象上,例如Node、Pod、Service、RC等,一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上。Label通常在资源对象定义时确定,也可以在对象创建后动态添加或者删除。 我们可以通过给指定的资源对象捆绑一个或多个不同的Label来实现多维度的资源分组管理功能,以便灵..原创 2020-08-04 07:46:11 · 252 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语 pod
pod我的理解,就是多个容器的容器,类似于虚机与进程的关系。 Pod是Kubernetes最重要的基本概念,如图1.4所示是Pod的组成示意图,我们看到每个Pod都有一个特殊的被称为“根容器”的Pause容器。Pause容器对应的镜像属于Kubernetes平台的一部分,除了Pause容器,每个Pod还包含一个或多个紧密相关的用户业务容器。 pod概念之必要性: 1)一组容器怎么判断整体的状态。 2)一组容器怎么互相通信、共享文件 pod就可以解决上面两个问题。 Kuber...原创 2020-08-02 09:48:33 · 210 阅读 · 0 评论 -
读书笔记-k8s- 1.4 基本概念和术语 master node
1.4.1 master 管理节点 1台,高可用3台 在Master上运行着以下关键进程。 入口--大脑--调度 ◎ Kubernetes API Server(kube-apiserver):提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。 ◎ Kubernetes Controller Manager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心,可以..原创 2020-08-02 07:48:44 · 136 阅读 · 0 评论 -
读书笔记-1.4 Kubernetes的基本概念和术语
读得太快记不住,容易忘。 每天读一点。 1)k8s实现了对资源对象的管理,如增、删、改、查。自动控制,自动纠错。 Kubernetes中的大部分概念如Node、Pod、Replication Controller、Service等都可以被看作一种资源对象,几乎所有资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作并将其保存在etcd中持久化存储。从这个角度来看,Kubernetes其实是一个高度自动化的资源控制系统,它通过跟踪对比etcd.原创 2020-07-28 07:46:26 · 145 阅读 · 0 评论