在今天这篇文章中,我将通过一个实际的例子,再次为你深入解读一下部署一个 StatefulSet 的完整流程。我选择的实例是部署一个 MySQL 集群,这也是 Kubernetes 官方文档里的一个经典案例。 首先,用自然语言来描述一下我们想要部署的“有状态应用”。 是一个“主从复制”(Maser-Slave...
在今天这篇文章中,我们来继续解读 StatefulSet 对存储状态的管理机制。这个机制,主要使用的是一个叫做 Persistent Volume Claim 的功能。在前面介绍 Pod 的时候,曾经提到过,如果要在一个 Pod 里面声明 Volume,只要在 Pod 里面加 spec.volumes 字段即可。...
实际上,Deployment 并不足以覆盖所有的应用编排问题。因为它认为,一个应用的所有 Pod,是完全一样的。所以它们之间没有顺序,也无所谓运行在哪台主机上。需要的时候,Deployment 就可以通过 Pod 模版创建新的 Pod;不需要的时候,Deployment 就可以“杀掉”任意一个 Pod。但是,在实...
在今天这篇文章中,详细讲解一下,Kubernetes 中第一个控制器模式的完整实现:Deployment。 Deployment 看似简单,实际上它实现了 Kubernetes 项目中的一个非常重要的功能:Pod 的“水平扩展 / 收缩”(horizontal scaling out/in)...
本文基于 go version go1.23.3 darwin/arm64 来对Golang中的 HTTP 标准库实现原理进行深入解读。 整体框架在 Golang 当中,启动一个 http 服务非常方便: 在上述代码中,做了两件事: 调用 http.HandleFunc 方法,注册了对应请求路...
接下来,我们就一起来看看“编排”这个 Kubernetes 项目最核心的功能吧。实际上,你可能已经有所感悟:Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。 Kubernetes 操作这些 Pod 的逻辑,都由控制器(Controller)完成。在前面的文章中,我们曾经使用过 De...
在本篇,我们就先从一种特殊的 Volume 开始,来帮助你更加深入地理解 Pod 对象各个重要字段的含义。 这种特殊的 Volume,叫做 Projected Volume,你可以把它翻译为“投射数据卷”。 备注:Projected Volume 是 Kubernetes v1.11 之后的新特性 在 Ku...
凡是调度、网络、存储、以及安全相关的属性,基本上是 Pod 级别的。 这些属性的共同特征是,它们描述的是“机器”这个整体,而不是里面运行的“程序”。 接下来,先介绍一下 Pod 中几个重要字段的含义和用法。NodeSelector:是一个供用户将 Pod 和 Node 进行绑定的字段, 用法如下所示: ...
在前面的文章中,详细介绍了 Kubernetes 中部署一个应用的过程。在这些讲解中,提到了这样一个知识点:Pod,是 Kubernetes 项目中最小的 API 对象。如果换一个更专业的说法,我们可以这样描述:Pod,是 Kubernetes 项目的原子调度单位。不过,我相信你在学习和使用 Kubernetes...
在 Kubernetes 项目初期,它的部署完全要依靠一堆由社区维护的脚本。除了将各个组件编译成二进制文件外,用户还要负责为这些文件编写对应的配置文件、配置自启动脚本,以及为 kube-apiserver 配置授权文件等等诸多运维工作。 目前,各大云厂商最常用的部署方法,是采用 SaltStack、Ansib...
Page 4 / 8