摘要: Linux系统调用 概念:系统调用为用户态进程提供了硬件的抽象接口。并且是用户空间访问内核的唯一手段,除异常和陷入外,它们是内核唯一的合法入口。保证系统的安全和稳定。 调用号:在Linux中,每个系统调用被赋予一个独一无二的系统调用号。当用户空间的进程执行一个系统调用时,会使用调用号指明系统调用。 阅读全文
posted @ 2020-05-27 23:57 虾敏四把刀 阅读(2068) 评论(0) 推荐(0) 编辑
摘要: 本文内容主要分为三部分: main goroutine 的调度运行 非 main goroutine 的退出流程 工作线程的执行流程与调度循环。 main goroutine 的调度运行 runtime·rt0_go中在调用完runtime.newproc创建main goroutine后,就调用了 阅读全文
posted @ 2020-05-27 12:31 虾敏四把刀 阅读(1715) 评论(0) 推荐(0) 编辑
摘要: 概述 本文核心问题是:如何升级应用。 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod。好处是,同一时间只会有一个版本的应用存在;缺点是,应用有一段时间不可用。 二是先创建新Pod,再删除旧Pod。可以一次性创建全部,再删除全部,也可以逐渐创建删除。好处是应用一直可用,缺点是要同 阅读全文
posted @ 2020-05-26 16:56 虾敏四把刀 阅读(673) 评论(0) 推荐(0) 编辑
摘要: Downward API 我们已经了解到,使用ConfigMap和Secret向应用传递配置数据,这对于运行前预设的数据是可行的。但是对于那些不能预先知道的,就需要使用Downward API。 Downward API允许我们通过环境变量或者卷的方式向应用传递元数据。可传递的数据包括:Pod的IP 阅读全文
posted @ 2020-05-26 09:29 虾敏四把刀 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 概述 本文的核心是:如何处理应用程序的数据配置。 配置应用程序可以使用以下几种途径: 向容器传递命令行参数 为每个容器配置环境变量 通过特殊的卷将配置文件挂载到容器中 向容器传递命令行参数 在Kubernetes中定义容器时,镜像的ENTRYPOINT和CMD都可以被覆盖(但是在Docker中,镜像 阅读全文
posted @ 2020-05-25 22:07 虾敏四把刀 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 接上一篇继续分析一下runtime.newproc方法。 函数签名 newproc函数的签名为 newproc(siz int32, fn funcval) siz是传入的参数大小(不是个数); fn对应的是函数,但并不是函数指针,funcval.fn才是真正指向函数代码的指针。 关键字go 在go 阅读全文
posted @ 2020-05-25 11:19 虾敏四把刀 阅读(1010) 评论(0) 推荐(0) 编辑
摘要: 简介 卷是Pod的一部分,与Pod共享生命周期。它不是独立的Kubernetes对象,因此不能单独创建。 卷提供的存储功能不但可以解决容器重启后数据丢失的问题,还可以使数据在容器间共享。 一些卷的类型: emptyDir:用于存储临时数据的空目录 hostPath:用于将目录从工作节点挂载到pod 阅读全文
posted @ 2020-05-24 19:02 虾敏四把刀 阅读(481) 评论(1) 推荐(0) 编辑
摘要: 本文所使用的Golang为1.14,dlv为1.4.0。 源代码 开始调试 可以看到最开始是从_rt0_amd64_linux执行,然后直接跳转到_rt0_amd64。执行si进入_rt0_amd64。 继续执行,runtime.rt0_go() /root/go/src/runtime/asm_a 阅读全文
posted @ 2020-05-24 09:23 虾敏四把刀 阅读(1793) 评论(0) 推荐(0) 编辑
摘要: 服务介绍 服务是一种为一组相同功能的pod提供单一不变接入点的资源。当服务存在时,他的IP和端口不会改变。客户端通过IP和端口建立连接,这些连接会被路由到任何一个pod上。如此,客户端不需要知道每个单独提供服务的pod地址,这些pod也可以随时被创建、删除。 服务通过标签选择器决定选择哪些pod。 阅读全文
posted @ 2020-05-23 23:03 虾敏四把刀 阅读(843) 评论(1) 推荐(0) 编辑
摘要: 本文所使用的golang为1.14,gdb为8.1。 一直以来对于函数调用都仅限于函数调用栈这个概念上,但对于其中的详细结构却了解不多。所以用gdb调试一个简单的例子,一探究竟。 函数调用栈的结构(以下简称栈) 栈包含以下作用: 存储函数返回地址。 保存调用者的rbp。 保存局部变量。 为被调用函数 阅读全文
posted @ 2020-05-23 08:40 虾敏四把刀 阅读(1631) 评论(2) 推荐(0) 编辑