08 2017 档案
摘要:Kubernentes中的身份验证kubernetes 系统的各组件需要使用 TLS 证书对通信进行加密,本文档使用 CloudFlare 的 PKI 工具集cfssl 来生成 Certificate Authority (CA) 和其它证书;生成的 CA 证书和秘钥文件如下:ca-key.pemc...
阅读全文
摘要:相当复杂的现代Web服务大多数都不是由单体应用提供。为了处理复制的操作,应用程序通常被分解成许多服务,分别处理业务逻辑或数据存储的不同部分。这些服务可能部署在不同的机器甚或是不同的数据中心。在CloudFlare,随着服务的增加,应用程序之间安全通信的需求也在增长。他们需要一种简单、可维护的方法来确...
阅读全文
摘要:K8S的应用程序健康检查分为livenessProbe和readinessProbe,两者相似,但两者存在着一些区别。livenessProbe在服务运行过程中检查应用程序是否运行正常,不正常将杀掉进程;而readness Probe是用于检测应用程序启动完成后是否准备好对外提供服务,不正常继续检测...
阅读全文
摘要:当用户请求删除含有pod的资源对象时(如RC、deployment等),K8S为了让应用程序优雅关闭(即让应用程序完成正在处理的请求后,再关闭软件),K8S提供两种信息通知:1)、默认:K8S通知node执行docker stop命令,docker会先向容器中PID为1的进程发送系统信号SIGTE...
阅读全文
摘要:kubectlkubectl controls the K8S cluster manager. Find more information at https://github.com/K8S/K8S.Basic Commands (Beginner): create Create...
阅读全文
摘要:概念Label机制是K8S中一个重要设计,通过Label进行对象弱关联,灵活地分类和选择不同服务或业务,让用户根据自己特定的组织结构以松耦合方式进行服务部署。Label是一对KV,对用户而言非常有意义的,但对K8S本身而言没有直接意义的。Label可以在创建对象时指定,也可以在后期修改,每个对象可以...
阅读全文
摘要:概念默认情况下,kubernetes不会限制pod等资源对象使用系统资源,单个pod或者容器可以无限制使用系统资源。kubernetes的资源管理分为资源请求(request)和资源限制(limit),资源请求能够保证Pod有足够的资源来运行,而资源限制则是防止某个Pod无限制地使用资源,导致其他P...
阅读全文
摘要:MongoDB 聚合原文地址:http://www.runoob.com/mongodb/mongodb-aggregate.htmlMongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。aggrega...
阅读全文
摘要:概念Resource Quotas(资源配额,简称quota)是对namespace进行资源配额,限制资源使用的一种策略。 K8S是一个多用户架构,当多用户或者团队共享一个K8S系统时,SA使用quota防止用户(基于namespace的)的资源抢占,定义好资源分配策略。Quota应用在Namesp...
阅读全文
摘要:概念LimitRange(简称limits)基于namespace的资源管理,包括pod和container的最小、最大和default、defaultrequests等。一旦创建limits,以后创建资源时,K8S将该limits资源限制条件默认/强制给pod,创建后发现不符合规则,将暂停创建po...
阅读全文
摘要:概念Init Container就是做初始化工作的容器。可以有一个或多个,如果有多个,这些 Init Container 按照定义的顺序依次执行,只有所有的InitContainer 执行完后,主容器才启动。由于一个Pod里的存储卷是共享的,所以 Init Container 里产生的数据可以被主容...
阅读全文
摘要:不知你是否已清楚,Kubernetes 是支持 Docker 和 rkt(当前是这两种)的容器调度系统。除了下面这些优美的特性,比如简易部署,配置管理,服务发现,等等,它还允许我们以一种更高效的方式来管理计算资源。本文将阐述如下问题,Kubernetes 资源模型如何工作,为什么你应该总是限制容器资...
阅读全文
摘要:概念HPA全称Horizontal Pod Autoscaling,即pod的水平自动扩展。自动扩展主要分为两种,其一为水平扩展,针对于实例数目的增减;其二为垂直扩展,即单个实例可以使用的资源的增减。HPA属于前者。HPA的操作对象是RC、RS或Deployment对应的Pod,根据观察到的CPU实...
阅读全文
摘要:原理很多生产环境中的应用程序配置较为复杂,可能需要多个config文件、命令行参数和环境变量的组合。使用容器部署时,把配置应该从应用程序镜像中解耦出来,以保证镜像的可移植性。尽管Secret允许类似于验证信息和秘钥等信息从应用中解耦出来,但在K8S1.2前并没有为了普通的或者非sec...
阅读全文
摘要:为什么我不使用Kubernetes的Ingress 很不幸,据我所知Kubernetes的文档不是很完美,这就是为什么有很多同学在使用它的时候会遇到很多的坑,Ingress这个组件就是这些坑中的一个。那什么是ingress呢?非常简单!Ingress就是依靠hostname或者path为不同的ser...
阅读全文
摘要:Ingress在K8S1.1之前还没有。概念Ingress是一种HTTP方式的路由转发机制,为K8S服务配置HTTP负载均衡器,通常会将服务暴露给K8S群集外的客户端。Ingress是一个允许入站连接到达集群服务的规则集合。Ingress能把Service(K8Sservice)配置成外网可访问集群...
阅读全文
摘要:PetSet首次在K8S1.4版本中,在1.5更名为StatefulSet。除了改了名字之外,这一API对象并没有太大变化。注意:以下内容的验证环境为CentOS7、K8S版本1.5.2,并部署SkyDNS。http://blog.csdn.net/liyingke112/article/detai...
阅读全文
摘要:概念存储管理跟计算管理是两个不同的问题。理解每个存储系统是一件复杂的事情,特别是对于普通用户来说,有时并不需要关心各种存储实现,只希望能够安全可靠地存储数据。为了简化对存储调度,K8S对存储的供应和使用做了抽象,以API形式提供给管理员和用户使用。要完成这一任务,引入了两个新的API资源:Persi...
阅读全文
摘要:Kubernetes存储之Persistent Volumes简介简介 管理存储和管理计算有着明显的不同。PersistentVolume子系统给用户和管理员提供了一套API,从而抽象出存储是如何提供和消耗的细节。在这里,我们介绍两种新的API资源:PersistentVolume(简称PV)和P...
阅读全文
摘要:CentOS 7 安装配置 NFS环境nps 192.168.1.97client 192.168.1.98一、yum 安装在server和client都要安装yum -y install nfs-utils rpcbindnfs 的配置文件 /etc/expots默认为空vi /etc/expo...
阅读全文
摘要:在K8s中创建StatefulSet遇到的问题:使用Deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,Replication Controller会再run一个来保证可用性,但是由于是无状态的,Pod挂了的时候与之前的Volume的关系就已经断开了,新起来的Pod...
阅读全文
摘要:在最新发布的 Kubernetes 1.5 我们将过去的 PetSet 功能升级到了 Beta 版本,并重新命名为StatefulSet。除了依照社区民意改了名字之外,这一 API 对象并没有太大变化,不过我们在向集合里部署 Pod 的过程中加入了“每索引最多一个”的语义。有了顺序部署、顺序终结、唯...
阅读全文
摘要:概念 DaemonSet能够让所有(或者特定)的节点运行同一个pod。当节点加入到K8S集群中,pod会被(DaemonSet)调度到该节点上运行,当节点从K8S集群中被移除,被DaemonSet调度的pod会被移除,如果删除DaemonSet,所有跟这个DaemonSet相关的pods都会被...
阅读全文
摘要:近年来容器技术不断成熟并得到应用。Docker作为容器技术的一个代表,目前也在快速发展中,基于 Docker的各种应用也正在普及,与此同时 Docker对传统的运维体系也带来了冲击。我们在建设运维平台的过程中,也需要去面对和解决容器相关的问题。Docker的运维是一个体系,而监控系统作为运维体系中重...
阅读全文
摘要:制作基础镜像注意:需要在CentOS6下操作准备工作yum -y install febootstrap下载ISO镜像文件到服务器mkdir /mnt/centos6/mount -o loopCentOS-6.8-x86_64-bin-DVD1.iso /mnt/centos6/安装基础包febo...
阅读全文
摘要:镜像操作build 使用dockerfile方式创建镜像使用dockerfile文件docker build dockerflle/,dockerfile文件默认位于dockerflle/Dockerfile 可以在这里设置cgroupcommit通过容器创建本地镜像。注意:如果要push到d...
阅读全文
摘要:secret概念secret对象类型主要目的是保存和处理敏感信息/私密数据,比如密码,OAuth tokens,ssh keys等信息。将这些信息放在secret对象中比 直接放在pod或docker image中更安全,也更方便使用。一个已经创建好的secrets对象有两种方式被pod对象使用,其...
阅读全文
摘要:在Docker的设计实现中,容器中的数据是临时的,即当容器被销毁时,其中的数据将会丢失。如果需要持久化数据,需要使用Docker数据卷挂载宿主机上的文件或者目录到容器中。在K8S中,当Pod重建的时候,数据是会丢失的,K8S也是通过数据卷挂载来提供Pod数据的持久化的。K8S数据卷是对Docker数...
阅读全文
摘要:为了适应快速的业务需求,微服务架构已经逐渐成为主流,微服务架构的应用需要有非常好的服务编排支持。K8S中的核心要素Service便提供了一套简化的服务代理和发现机制,天然适应微服务架构。实现原理Service是一种抽象概念,定义了一个Pod逻辑集合以及访问它们的策略。目标是提供一个代理服务器...
阅读全文
摘要:podPod是K8S的最小操作单元,一个Pod可以由一个或多个容器组成;整个K8S系统都是围绕着Pod展开的,比如如何部署运行Pod、如何保证Pod的数量、如何访问Pod等。特点Pod是能够被创建、调度和管理的最小单元;每个Pod都有一个独立的IP;一个Pod由一个或多个容器构成,并共享所有资源,主...
阅读全文
摘要:Replication Controller(RC) RC是K8S中的另一个核心概念,应用托管在K8S后,K8S需要保证应用能够持续运行,这是RC的工作内容。主要功能确保pod数量:RC用来管理正常运行Pod数量,一个RC可以由一个或多个Pod组成,在RC被创建后,系统会根据定义好的副本数来创...
阅读全文
摘要:Deployment(中文意思为部署、调度)提供了一种更加简单的更新RC和Pod的机制,K8S版本1.2实现的。通过在Deployment中描述所期望的集群状态,Deployment Controller会将现在的集群状态在一个可控的速度下逐步更新成所期望的集群状态。Deployment主要职责同样...
阅读全文
摘要:Kubernetes服务之“运行单实例的有状态服务”,kubernetes实例目标 在你的环境中创建一个PV 创建一个MySQl的Deployment 在集群中以DNS名称的方式,将MySQL暴露给其他的pod开始之前 你需要一个Kubernetes集群,一个可以连接到集群的kubectl命...
阅读全文
摘要:apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中kind: ReplicationController #指定创建资源的角色/类型metadata: #资源的元数据/属性 name: test-rc #资源的名字,在同一个namespace中必须唯一...
阅读全文
摘要:比自己不加薪更痛苦的是什么?别人加薪了。比别人加薪更痛苦的是什么?“别人”没有我努力(加班多)。其实,老板都看得见。无论是你天天留下来加班到八九点,还是你P了十分钟图晒的朋友圈,聪明又善良的老板都会勤勤恳恳的点赞。 然而,点赞是因为老板的职业素养,而不是你的看上去很勤奋。说的再直白点,点赞因为我是个...
阅读全文