本文基于 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...
在这篇文章中,我们来扮演一个应用开发者的角色,使用我们已经搭建好的 Kubernetes 集群发布第一个容器化应用。 在开始实践之前,我们先来了解一下 Kubernetes 里面与开发者关系最密切的几个概念。作为一个应用开发者,你首先要做的,是制作容器镜像。而有了容器镜像之后,你需要按照 Kubernetes ...
部署 Kubernetes 的 Master 节点在上篇文章中介绍了如何使用 kubeadm 一键部署 Master 节点。不过,既然要在本篇文章中部署一个“完整”的 Kubernetes 集群,那不妨提高一下难度:通过配置文件来开启一些新功能。 所以,这里编写了一个 kubeadm.yaml 文件: ...
Kubernetes 项目依托着 Borg 项目的理论优势,在短短几个月内迅速站稳了脚跟,进而确定了一个如下图所示的全局架构: Kubernetes 项目的架构跟它的原型项目 Borg 非常类似,都由 Master 和 Node 两种节点组成,而这两种角色分别对应着控制节点和计算节点。其中,控制节点,即 Ma...
这一次,我要用 Docker 部署一个用 Python 编写的 Web 应用。 这个应用的代码部分(app.py)非常简单: 而将这样一个应用容器化的第一步,是制作容器镜像。不过,相较于之前介绍的制作 rootfs 的过程,Docker 为你提供了一种更便捷的方式,叫作 Dockerfile,如下所示。...
Page 4 / 7