十、应用存储和持久化数据卷 – 存储快照与拓扑调度
快照 锁定某一个磁盘的状态,被锁定的数据无法修改 如果需要修改被锁定的数据,就复制一份,再进行修改 未修改的数据,磁盘只保留一份,共正常使用和作为快照 快照是磁盘内容的一部分,占用磁盘空间,不能存到其他磁盘 存储快照产生背景 提高数据操作的容错性 支持快速 restore 存储快照用户接口-Snapshot K8s 中通过 pvc 以及 pv 的设…
九、应用存储和持久化数据卷 – 核心知识
Volumes 介绍 Pod Volumes 场景一:如果 pod 中的某一个容器在运行时异常退出,被 kubelet 重新拉起之后,如何保证之前容器产生的重要数据没有丢失? 场景二:如果同一个 pod 中的多个容器想要共享数据,应该如何去做? 有状态的容器,就需要卷。 根据使用场景,临时文件直接用 host 的形式存到宿主机,非;临时的可以往云盘…
八、应用配置管理
需求来源 可变的配置不能放到容器里,否则配置改变,需要重新构建镜像 ConfigMap —— 资源 敏感信息的存储和使用 Secret —— 资源 认证相关,例如容器访问集群的 kube-apiserver ServiceAccount —— 资源 容器在节点上运行的资源要求 Resources —— spec 字段 容器是共享内核的,统一 nod…
七、应用编排与管理:Job 和 DaemonSet
Job 背景问题 我们如何保证 Pod 内进程正确的结束? 如何保证进程运行失败后重试? 如何管理多个任务,且任务之间有依赖关系? 如何并行地运行任务,并管理任务的队列大小? Job:管理任务的控制器 Job 可以创建指定数量的 Pod ,并监控它是否成功地运行或终止 可以根据 Pod 的状态来给 Job 设置重置的方式及重试的次数 为什么要根据 …
六、应用编排与管理: Deployment
背景问题 如何保证集群内可用 Pod 数量 运行期间宿主机故障 更新时,需要停止之前的节点 为所有 Pod 更新镜像 replicaset好像可以,它和Deployment的区别是? 更新过程中,发现问题如何回滚已更新的节点 Deployment:管理部署发布的控制器 每个 Deployment 管理的一组相同的应用 Pod (副本) Contro…
五、应用编排与管理:核心原理
资源元信息 资源对象 Spec 部分用来描述期望的状态 Status 部分用来描述观测到的状态 元数据 Labels 标签主要用来筛选资源和组合资源 Annotations 描述资源,系统或者工具用来存储资源的非标示性信息 阿里云负载器的证书 ID nginx 接入层的配置信息 上一次 kubectl 操作的资源的 json 的描述 OwnerRe…
四、理解 Pod 和容器设计模式
为什么需要 Pod 容器的本质 一个视图被隔离、资源受限的进程 容器里 PID = 1 的进程就是应用本身 管理虚拟机 = 管理基础设施;管理容器 = 管理应用本身 Kubernetes 云时代的“操作系统” 容器就是这个操作系统的软件安装包 进程组 有的应用由多个进程组成,这些进程共享应用的资源,相互协作以达到应用的功能。 容器管理多进程的应用 …
利用 Spring Boot Admin 对 Spring Boot 应用监控以及配置认证
前言 Spring Boot Admin 是一个优秀的 Spring Boot 应用监控,可以查看应用的各项性能指标,修改日志级别(生产环境利器,不用动不动就上 Arthas),dump 线程等功能。如果是微服务可以使用 Eureka 来做服务的注册与发现,单体应用的话直接往 Spring Boot Admin 的 Server 端注册就行。 这里…
三、Kubernetes 核心概念
什么是 Kubernetes 企业级的容器编排平台。 Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。联想一下 Docker 的集装箱,不难想到 k8s 是想成为运送集装箱的轮船,来管理集装箱,也就是管理容器。 “k8s”,是通过将8个字母“ubernete ”替换为“8”而导致的一个缩写。(这种缩短名称的方式还是第一…
二、容器基本概念
容器与镜像 什么是容器? 操作系统里的进程 进程之间可以相互看到、相互通信; 使用的是同一个文件系统,可以对同一个文件进行读写操作; 使用相同的系统资源。(文件系统也算系统资源吧?) 存在的问题 进程被其他进程影响,高级权限的进程可以攻击其他进程; 不同进程对相同文件的使用可能存在冲突; 抢占系统资源,影响其他进程。 如何给应用提供独立的运行环境 …