摘要:
设计背景 关于个人笔记,每个人有每个的方案,就我而言大致经历了以下几个阶段: 笔记软件,比如 印象笔记,有道笔记 等。 优点:隐私性强,跨终端。 缺点:个人用起来不是很舒服,可定制化程度低。 开放博客,用作技术分享,比如某DN,某CTO,某书等等。 优点:使用方便。 缺点:广告多,可定制化程度低,博 阅读全文
摘要:
准入控制器 准入控制器(Admission Controller)位于 API Server 中,在 对象被持久化 之前,准入控制器会拦截对 API Server 的请求,一般用来做身份验证和授权。主要包含两个特殊的控制器,分别用作配置的变更和验证。 MutatingAdmissionWebhook 阅读全文
摘要:
HPA 使用 Deployment 的时候知道了可以通过 kubectl scale 的方式调整集群中 Pod 的副本数以满足业务的需求。 在生产环境中,应用的资源使用率通常都有高峰和低谷的时候,如何削峰填谷,提高集群的整体资源利用率,并且尽可能的减少人工干预。Kubernetes 提供了这样一种资 阅读全文
摘要:
Job Job 负责处理任务,主要为仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。 Job 的资源清单如下所示: apiVersion: batch/v1 kind: Job metadata: name: job-demo namespace: default spec: # 阅读全文
摘要:
DaemonSet 通过控制器名称可以看出:Daemon,就是用来部署守护进程的。 DaemonSet 用于在每个 Kubernetes 节点中将守护进程的副本作为后台进程运行,说白了就是在每个节点部署一个 Pod 副本,当新的节点加入到 Kubernetes 集群中,Pod 会被调度到该节点上运行 阅读全文
摘要:
StatefulSet Deployment 控制器对于无状态的服务的编排很容易,但是对于有状态的服务就显得无能为力了。 当然,在使用 docker 的时候就有提到过,对于有状态的服务,是不建议放到容器中的。 无状态服务(Stateless Service):服务不会在本地存储持久化数据,多个实例对 阅读全文
摘要:
Deployment 已经知道 ReplicaSet 控制器是用来维护集群中运行的 Pod 数量,但生产中一般不会直接使用它,而是会使用更上层封装的控制器,比如 Deployment。 Deployment(部署),和名字一样,其核心的功能就是实现了 Pod 的滚动更新。这对于线上的服务做到不中断发 阅读全文
摘要:
控制器 在实际应用中,一般不会直接使用 Pod,而是会使用各种 Pod 的上层封装 控制器 来满足使用需求。Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望状态保持一致。 控制器会监听资源创建、更新、删除事件,并触发 Reconcile 调谐函数,该过程称为 Reconcile 阅读全文
摘要:
Pod Pod 是 Kubernetes 最基本的调度单元。 在一个复杂的系统中,往往某些应用的关系是非常密切的,它们需要共享某些资源。如果都运行在同一个容器内,会面临一个问题,容器运行时的管理进程是 PID=1 的进程,如果容器以多进程运行,那么里面的某些进程挂了,就会成为僵尸进程,没办法进行管理 阅读全文
摘要:
资源清单 在使用 docker 部署容器的时候,使用 docker run 进行容器的运行,但是对于复杂的需求,如果还是使用 docker run,就会变得极其复杂和难以管理。于是便有了 docker compose。 在 kubernetes 中也会存在类似 docker run 一样的命令用于运 阅读全文
摘要:
分层架构 Kubernetes 设计理念和功能其实就是一个类似 Linux 的分层架构,如下图所示: 具体说明: 核心层:Kubernetes 最核心的功能,对外提供 API 构建高层的应用,对内提供插件式应用执行环境。 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现 阅读全文