Mathew's Blog

我干了什么 究竟拿时间换了什么

使用operator-sdk开发operator

编写一个 operator 本文来演示如何创建一个operator, 该operator会自动监管应用的pod数量。并且,把这个operator部署在k3s 集群上,让它真正运行起来。 安装operator-sdk    Mac 直接用 brew 安装即可。其它平台可以参考https://github.com/operator-framework/operator-sdk/blob/ma......

Cobra介绍

Cobra介绍   Cobra是一个golang库,其提供简单的接口来创建强大现代的CLI接口,类似于git或者go工具。同时,它也是一个应用,用来生成个人应用框架,从而开发以Cobra为基础的应用。Docker及K8s源码中都使用了Cobra做为命令行框架,这里一窥究竟方便后续撸K8s源码。 概念   Cobra基于三个基本概念commands,arguments和flags。其中comm......

Flag包概述

flag 包概述 flag 包实现了命令行参数的解析。定义 flags 有三种方式 1)(),其中 Xxx 可以是 Int、String,Bool 等,返回一个相应类型的指针,如: 1var mask = flag.Int("flagname", 2345, "help message for flagname") 第一个参数 :flag名称为flagname 第二个参数 :flagna......

Docker基础技术cgroups

Cgroups cgroups(control group)是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu、memory、io等等)的机制。最初由google工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段。 Cgroups可以做什么?    Cgroups最初的目标是为资源管理......

Docker基础技术namespaces

Namespace概述   Linux内核实现namespace的一个主要目的,就是为了实现轻量级虚拟化(容器)技术服务。在同一个namespace下的进程可以感知到彼此的变化,而对外界的进程一无所知。这样就可以让容器中的进程产生错觉,仿佛自己只剩余一个独立的系统环境中,以达到隔离的目的    完成一个基本容器需要六项隔离,Linux内核中提供了六种隔离的系统调用: NS 作用 内核版......

Docker架构及核心组件

Docker架构 Docker使用了C/S体系架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。 namespaces:实现资源隔离......

Docker简介

了解Docker的前生LXC   LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。 与传统虚拟化技术相比,它的优势在于: 与宿主机使用同一个内核,性能损耗小;......

Lxcfs调研测试

Summary 1-2 sentence summary of what this document is about and why we should work on it.   为什么需要对容器的资源进行可视化隔离?   容器可以通过cgroup的方式对资源的使用情况进行限制,包括: 内存,CPU等。但是需要注意的是,如果容器内的一个进程使用一些常用的监控命令,如: free, top......

Metrics Server介绍

Metrics Server本身是以deployment方式部署,只需要配置多副本集到不同节点即可满足高可用,了解下Metrics Server背景和工作流程。 一、Metrics Server背景 kubernetesv1.11以后不再支持通过heaspter采集监控数据,支持新的监控数据采集组件metrics-server,比heaspter轻量很多,也不做数据的持久化存储,提供实......
k8s

CentOS8介绍

1. CentOS8新特性之桌面环境 CentOS8的GNOME Shell的GUI版本已经更新到基于3.28版本。    GNOME会话和GNOME显示管理器使用Wayland作为默认的显示服务器。 更强的安全模型 改进的多显示器处理 改进的用户界面(UI)扩展 桌面可以直接控制窗口处理。 2. CentOS8新特性之关于网络功能更新 CentOS8的网络部分已经进行了以下新的修......