containerd runc docker 之间的关系
从 Docker 1.11 开始,Docker 容器运行已经不是简单的通过 Docker daemon 来启动,而是集成了containerd、runC 等多个组件。Docker 服务启动之后,我们也可以看见系统上启动了 dockerd、docker-containerd 等进程,本文主要介绍新版 Docker(1.11 以后)每个部分的功能和作用。 runC runc是由Docker公司...
从 Docker 1.11 开始,Docker 容器运行已经不是简单的通过 Docker daemon 来启动,而是集成了containerd、runC 等多个组件。Docker 服务启动之后,我们也可以看见系统上启动了 dockerd、docker-containerd 等进程,本文主要介绍新版 Docker(1.11 以后)每个部分的功能和作用。 runC runc是由Docker公司...
对于 unsafe.Pointer,在编程过程中用的不多,但是源码中经常遇到,理解 unsafe.Pointer 有助于更好的理解 Golang 的运行机制。 定义及使用 在 unsafe 包中,unsafe.Pointer 的定义为 ArbitratyType,代表任意类型,代码中的注释说这个类似起占位符的作用,我们就理解成 unsafe.Pointer 是一个可以指向任意类型的指针就可...
目录 一般工作过程 1.队列声明 2.队列初始化 3.往队列里丢事件 4.启动worker 限速器(加入队列时限速) ItemExponentialFailureRateLimiter BucketRateLimiter 限速队列(延时队列+限速器) ...
这里的基本队列是指实现了如下接口的队列,代码路径为:client-go/util/workqueue/queue.go,区别于DelayingInterface,以及RateLimitingInterface,DelayingInterface实现延时加入队列的功能,RateLimitingInterface要配合限速器使用,实现了加入队列时的速率控制。后两者都内嵌了Interface,是基...
本文转载自《Go 内存管理》 前言 编写过C语言程序的肯定知道通过malloc()方法动态申请内存,其中内存分配器使用的是glibc提供的ptmalloc2。 除了glibc,业界比较出名的内存分配器有Google的tcmalloc和Facebook的jemalloc。二者在避免内存碎片和性能上均比glibc有比较大的优势,在多线程环境中效果更明显。 Golang中也实现了内存分配器,原...
本文是对 tonybai 老师的《也谈goroutine调度器》的理解 G-P-M模型 在Go 1.0版本中,Go team实现了一个简单的调度器。在这个调度器中,goroutine被抽象为G,而os thread作为”物理CPU”被抽象为M,这个模型重要不足:限制了Go并发程序的伸缩性,尤其是对那些有高吞吐或并行计算需求高的服务程序,主要体现在如下几个方面: 单一全局互斥锁...
同步控制是指协调多个 goroutine 之间的运行时机,比如想控制两个 goroutine A、B 的执行顺序,A 运行完之后,B 再运行。一个最常见的问题(或者说面试题)是:多个 goroutine 交替打印数字。已知 channel 是 golang 中同步控制的利器,那怎么用 channel 来解决这个问题呢? channel 是一个队列(在学习 golang 时,我先入为主的将 ...
学习一下ReplicaSet Controlelr代码,基于的k8s版本为1.9.6 基本要点 ReplicaSet的目的是运行一组固定数量的pod,一般只用来运行固定数量的pod,这些pod是用同一个template生成的,如果pod被意外删除了,RS控制器帮你自动创建等。 也可以使用 kubectl scale rs/frontend --replicas=2 来扩展或者缩小rs中的...
目录 初始化 Scheduler scheduleOne schedule priority 过程 k8s 1.9 scheduler概述,因为之前工作中是基于1.9版本的,还没有引入scheduler framework。 初始化 Scheduler 初始化scheduler主要涉及两个结构体: SchedulerServer与Scheduler,也就是构造这个两个...
家里有个 windows 台式机,安装了 vmware,通过 vmware 虚拟机搭集群测试时,是不能用 dhcp 的,每次虚拟机重启后,节点 ip 地址变化了,那 K8s 集群就废了。 这里记录下怎么修改 centos ip,并配置为静态 ip。网卡的配置文件在 /etc/sysconfig/network-scripts 目录: [decent@HostGW-Master ~]$ ls...