随笔分类 - 容器&k8s
摘要:幕后英雄:SIG-Node与CRI kubelet 本身,也是按照“控制器”模式来工作的。它实际的工作原理,可以用如下所示的一幅示意图来表示清楚。 可以看到,kubelet 的工作核心,就是一个控制循环,即:SyncLoop(图中的大圆圈)。而驱动这个控制循环运行的事件,包括四种: Pod 更新事件
阅读全文
摘要:Kubernetes的资源模型与资源管理 我在前面的文章中已经提到过,在 Kubernetes 里,Pod 是最小的原子调度单位。这也就意味着,所有跟调度和资源管理相关的属性都应该是属于 Pod 对象的字段。而这其中最重要的部分,就是 Pod 的 CPU 和内存配置,如下所示: apiVersion
阅读全文
摘要:浅谈容器网络 而所谓“网络栈”,就包括了:网卡(Network Interface)、回环设备(Loopback Device)、路由表(Routing Table)和 iptables 规则。对于一个进程来说,这些要素,其实就构成了它发起和响应网络请求的基本环境。 在大多数情况下,我们都希望容器进
阅读全文
摘要:PV、PVC、StorageClass,这些到底在说啥? 一个示例 PV 描述的,是持久化存储数据卷。这个 API 对象主要定义的是一个持久化存储在宿主机上的目录,比如一个 NFS 的挂载目录。 apiVersion: v1 kind: PersistentVolume metadata: name
阅读全文
摘要:为什么我们需要Pod? Kubernetes 项目所做的,其实就是将“进程组”的概念映射到了容器技术中,并使其成为了这个云计算“操作系统”里的“一等公民”,即 pod 在 pod 内的所有 container 是具有“超紧密关系”,共享网络、存储,即处于相同 Namespace 之下。 Pod 的实
阅读全文
摘要:谈谈Kubernetes的本质 我们可以看到,Kubernetes 项目的架构,跟它的原型项目 Borg 非常类似,都由 Master 和 Node 两种节点组成,而这两种角色分别对应着控制节点和计算节点。 控制节点,即 Master 节点,由三个紧密协作的独立组件组合而成,它们分别是负责 API
阅读全文
摘要:容器网络:我修改了/proc/sys/net下的参数,为什么在容器中不起效? 在容器中运行的应用程序,如果需要用到 tcp/ip 协议栈的话,常常需要修改一些网络参数(内核中网络协议栈的参数)。很大一部分网络参数都在 /proc 文件系统下的/proc/sys/net/目录里。 修改这些参数主要有两
阅读全文
摘要:容器文件系统:我在容器中读写文件怎么变慢了? 这个问题具体是我们在宿主机上,把 Linux 从 ubuntu18.04 升级到 ubuntu20.04 之后发现的。在我们做了宿主机的升级后,启动了一个容器,在容器里用 fio 这个磁盘性能测试工具,想看一下容器里文件的读写性能。结果我们很惊讶地发现,
阅读全文
摘要:容器内存:我的容器为什么被杀了? 如何理解 OOM Killer? OOM 是 Out of Memory 的缩写,顾名思义就是内存不足的意思,而 Killer 在这里指需要杀死某个进程。那么 OOM Killer 就是在 Linux 系统里如果内存不足时,就需要杀死一个正在运行的进程来释放一些内存
阅读全文
摘要:理解进程(1):为什么我在容器中不能kill 1号进程? 问题再现 在 k8s 如何不更换 pod id 前提下重启 pod?进入容器 kill -9/-15 1号进程,但实际上不起作用~ 知识详解 如何理解 init 进程? 使用容器的理想境界是一个容器只启动一个进程,但这在现实应用中有时是做不到
阅读全文