-
Jan 28, 2018 作者:刘畅
本文简介 本文主要叙述在 ubuntu 16.04 环境上搭建 ceph 集群,并介绍 k8s 集群以 storageclass 方式使用 ceph 的两种方式。本文测试环境共 4 台机器:...
-
Nov 19, 2017 作者:刘畅
kubernetes CRI kubernetes是一个容器编排系统,可以便捷的部署容器,它同时支持Docker和Rocket两种容器类型。然而不管是Docker还是Rocket都需要通过内部、不太稳定的接口直接集成到kubelet的源码中,这样的集成过程需要开发者十分熟悉kubelet内部原理,同时维护起来也非常麻烦。在kubernetes1.5版本中,提供了一个清晰定义的抽象层消除了这些障碍,开发者可以专注于构建他们的容器运行时,这个抽象层称作Container Runtime Interface(CRI)接口,下面介绍一下CRI这个概念。 CRI CRI是一个插件接口,这个接口的引入使得kubelet不用重新编译的情况下管理多种容器类型。CRI主要由gRPC API和protocol buffers组成,它的架构图如下所示: kubelet与容器运行时(或者是CRI shim)之间的通信是借助gRPC框架通过unix套接字完成的,kubelet作为client,CRI shim作为server来实现。对于docker容器而言,dockershim是kubelet的CRI shim,它负责与kubelet的gRPC客户端进行通信。 CRI shim的gRPC...
-
Oct 27, 2017 作者:刘畅
容器编排服务变更策略调研 本文调研目前流行的三款容器编排平台的服务变更策略,包括kubernetes、swarm、nomad。 其中它们的版本信息如下: 平台 版本 kubernetes v1.8 swarm v1.2.8 nomad v0.6.3 下面分别介绍一下这些平台的服务变更策略。 kubernetes 在Kubernetes中,是由deployment控制器来控制服务变更的过程,它目前提供了两种服务变更策略,分别是: Recreate...
-
Sep 26, 2017 作者:刘畅
Linux Namespace简介 Linux Namespace提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的Namespace中,来实现资源隔离的目的。不同Namespace的程序,可以享有一份独立的系统资源。目前Linux中提供了六类系统资源的隔离机制,分别是: Mount: 隔离文件系统挂载点 UTS: 隔离主机名和域名信息 IPC: 隔离进程间通信 PID: 隔离进程的ID Network: 隔离网络资源 User:...
-
May 5, 2017 作者:刘畅
背景 学习操作系统这门课的时候,曾不止一次的接触到操作系统的段页式管理机制,但当是都是浅尝辄止,不知道操作系统为啥要有这个机制。如今时间过去很久,关于这个机制的背后的原理和实现机制,早已忘记很久了。。最近在看操作系统方面的知识,借此把自己的理解记录一下。 要理解段页式管理机制的发展历程,还得从早期的处理器的寻址方式说起。 内存寻址方式的发展历程 首先简单的介绍下内存寻址的概念,现代计算机是基于冯.诺依曼的体系结构,这个体系结构是以存储为中心的,也就是说所有的运算的前提都是先从内存中取得数据,所以内存寻址技术从某种程度上代表了计算机技术。 直接寻址 在处理器发展的早期阶段,Intel 公司推出了第一款8位的处理器–8080,它的内存寻址的方式简单粗暴,程序都是通过硬编码的形式绝对定位到内存地址。这种情况下的程序都有明显的缺点:可控性弱、难以重定位、难以维护等。 分段 很快在 Intel 推出的另一款处理器 8086 中,它可以寻址空间达到 1M,即地址线扩展到了...
-
Apr 24, 2017 作者:刘畅
写在前面 在kubernetes集群中运维生成环境的服务已经长达半年多时间,我们遇到了很多问题,也踩到了很多坑,其中因为 Docker Registry 的故障而导致的不可用事件还是挺多的,这些问题常常被用户埋怨。 Docker Registry 作为镜像仓库、数据中心,在整个服务发布流程中是异常关键的一环。由于之前初期我们搭建的 Docker Registry 是通过 docker run 跑在单机的方式,这种情况下不仅有单点问题,还面临着磁盘损坏和镜像丢失的危险性。 后来为了提高平台的稳定性和可靠性,也为了我的毕业论文,特地的花时间来调研...