随笔分类 - Kubernetes专题精讲
摘要:Pod 常见状态 一、Pod 状态(第一阶段) 1)Pending Pod已经被创建,但还没有完成调度,或者说有一个或多个镜像正处于从远程仓库下载的过程。处在这个阶段的 Pod 可能正在写数据到 etcd 中、调度、pull镜像或启动容器。 2)Running 该 Pod 已经绑定到了一个节点上,P
阅读全文
摘要:金丝雀部署 StatefulSet 控制器的资源 一、金丝雀部署 将处于暂存状态的更新操作的 partition 定位于 Pod 资源的最大索引号,即可放出一只金丝雀,由其测试第一轮的更新操作,在确认无误后通过修改 partition 属性的值更新其他的 Pod 对象是一种更为稳妥的更新操作。 St
阅读全文
摘要:StatefulSet资源升级 自 Kubernetes 1.7 版本起,StatefulSet 资源支持自动更新机制,其更新策略由 spec.updateStrategy 字段定义,默认为 RollingUpdate,即滚动更新。 一、滚动更新操作 滚动更新 StatefulSet 控制器的 Po
阅读全文
摘要:StatefulSet资源扩缩容 StatefulSet 资源的扩缩容与 Deployment 资源相似,即通过修改资源的副本数来改动其目标 Pod 资源数量。 对 StatefulSet 资源来说,kubectl scale 和 kubectl path 命令均可实现此功能,也可以使用 kubec
阅读全文
摘要:StatefulSet控制器 应用程序存在 "有状态" 和 "无状态" 两种类别。Kubernetes 系统中,Deployment、ReplicaSet 和 DaemonSet 等常用于管理无状态应用,但实际情况,应用本身是分布式的集群,也有不少有状态的应用,下面我们聊聊 "有状态" 应用的管理。
阅读全文
摘要:Secret资源 Secret 资源的功能类似于 ConfigMap,但它专用于存放敏感数据,例如密码、数字证书、私钥、令牌 和 SSH key 等。 一、Secret概述 Secret 对象存储数据的方式及使用方式类似于 ConfigMap 对象,相同的是,都以键值方式存储数据,在 Pod 资源中
阅读全文
摘要:应用程序配置管理及 ConfigMap 资源 说到配置中心,大家接触过微服务的话,应该不陌生,像国内的分布式配置中心相关开源项目有 Diamond(阿里)、Apollo(携程)、Qconf(奇虎360)和 disconf(百度)等。 作为分布式系统的 Kubernetes 也提供了统一配置管理方案—
阅读全文
摘要:利用环境变量(env.value or env.valueFrom)配置容器应用 在 Kubernetes 中使用此类镜像启动容器时,也可以在 Pod 资源或 Pod 模板资源的定义中,为容器配置段使用 env 参数来定义所使用的环境变量列表。 环境变量配置容器化应用时,需要在容器配置段中嵌套使用
阅读全文
摘要:容器应用配置的配置方式 如何为容器中的应用提供配置信息呢?传统时间中,通常有这么几种途径:启动容器时直接向命令传递参数、将定义好的配置文件编码于(嵌入)镜像文件中、通过环境变量(Environment Variables)传递配置数据,以及基于 Docker 卷传送配置文件等。 一、通过命令行参数进
阅读全文
摘要:downwardAPI存储卷 有时候,应用程序需要基于其所在的环境信息设定运行特性等,这类环境信息包括节点及集群的部分详细属性信息等,例如,Nginx 进程可根据节点的 CPU 核心数量自动设定要启动的 worker 进程数,JVM 虚拟机可根据节点内存资源自动设定其堆内存大小。类似地,托管运行于
阅读全文
摘要:PV 和 PVC 的生命周期 PV 是 Kubernetes 集群的存储资源,而 PVC 则代表着资源需求。创建 PVC 时对 PV 发起的使用申请,即为 "绑定"。PV 和 PVC 是一一对应的关系,可用于响应 PVC 申请的 PV 必须要能够容纳 PVC 的请求条件,它们二者的交互遵循如下声明周
阅读全文
摘要:存储类(StorageClass) 存储类(storage class)是 Kubernetes 资源类型的一种,它是由管理员为管理 PV 之便而按需创建的类别(逻辑组),例如可按存储系统的性能高低分类,或者根据其综合服务质量级别进行分类、依照备份策略分类,甚至直接按管理员自定义的标准进行分类等。
阅读全文
摘要:持久存储卷 通过前面使用持久存储卷(Persistent Volume)的示例可知,Kubernetes 用户必须要清晰了解所用到的网络存储系统的访问细节才能完成存储卷相关的配置任务,例如:NFS存储卷的 server 和 path 字段的配置就依赖于 NFS 服务器地址和共享目录路径。这与 Kub
阅读全文
摘要:GlusterFS存储卷 GlusterFS(Gluster File System)是一个开源的分布式文件系统,是水平扩展存储解决方案 Gluster 的核心,具有强大的横向扩展能力,GlusterFS 通过扩展能够支持数 PB 存储容量和处理数千客户端。 GlusterFS 借助 TCP/IP
阅读全文
摘要:RBD存储卷 Ceph 是一个专注于分布式的、弹性可扩展的、高可靠的、性能优异的存储系统平台,同时支持提供块设备、文件系统和 REST 三种存储接口。它是一个高度可配置的系统,并提供了一个命令行界面用于监视和控制其存储集群。Ceph 还包含鉴证和授权功能,可兼容多种存储网关接口,如 OpenStac
阅读全文
摘要:网络存储卷 Kubernetes 拥有众多类型的用于适配专用存储系统的网络存储卷。这类存储卷包括传统的 NAS 或 SAN 设备(如 NFS、iSCSI、fc)、分布式存储(如 GlusterFS、RBD)、云端存储(如 gcePersistentDisk、azureDisk、cinder 和 aw
阅读全文
摘要:节点存储卷 hostPath hostPath 类型的存储卷是指将工作节点上某文件的目录或文件挂载于 Pod 中的一种存储卷,它可独立于 Pod 资源的生命周期,因而具有持久性。但它是工作节点本地的存储空间,仅适用于特定情况下的存储卷使用需求,例如,将工作节点上的文件系统关联为 Pod 的存储卷,从
阅读全文
摘要:存储卷基本介绍 应用程序在处理请求时,可根据其对当前的处理是否受影响于此前的请求,将应用划分为有状态应用和无状态应用两种。而对于有状态应用,数据持久化是必然之需。 Kubernetes 提供的存储卷(Volume)属于 Pod 资源级别,共享于 Pod 内的所有容器,可用于在容器的文件系统之外存储应
阅读全文
摘要:使用Ingress发布Java服务(以Jenkins为例) 假设有这样一套环境:Kubernetes 集群上的 java-deploy 控制器生成了两个运行于 Pod 资源中的 java 实例,java-svc 是将它们统一暴露于集群中的访问入口。现在需要通过 Ingress 资源将 java-sv
阅读全文
摘要:Ingress 资源 Kubernetes 提供了两种内建的云端负载均衡机制(cloud load balancing)用于发布公共应用,一种是工作于传输层的 Service 资源,它实现的是 "TCP负载均衡器",另一种是 Ingress 资源,它实现的是 "HTTP(S)负载均衡器"。 一、In
阅读全文