Hello, World!

~ Enjoy Today ~

Fluent Bit介绍
Fluent Bit Fluent Bit 是一款开源的日志收集组件,资源开销非常小,小到甚至能在嵌入式系统上运行,支持日志解析&过滤&转发,同时作为云原生基金会下的一个子项目,天然支持容器和 k8s 场景。 基本概念 大部分日志收集组件都将系统大致分为输入、缓冲区、输出三大部分,输入部分负责采集日志,采集了之后放在缓冲区,然后输出部分将其再转发到其他系统。 Fluent Bit 将这三大部分细分成了:输入、解析、过滤、缓冲区、路由、输出六个部分:......
手动实现一个Linux容器
容器 容器技术的出现,彻底颠覆了传统的应用交付部署方式,交付的边界不再仅限于代码,而是一整套能 run everywhere 的基础设施,正如容器化领域的集大成者 Docker 的标语所言,这是一个新的时代了: Accelerate how you build, share and run modern applications. 容器本质上就是一个软件包,包含了业务服务及其依赖组件,比如我有一个Java服务,依赖了jdk 14.0.1以及几个外部 jar包,同时我们还依赖发行版的一些特性,需要运行在 debian buster发行版上,那么我们可以把这些通通打......
Kubernetes权限管理概述
对于一个多用户系统而言,权限管理始终是无法忽略的一环,系统规模越大,权限管理就越重要。 以 Git 系统为例,你有一个代码仓库,你是这个仓库的管理员,你们组的同学具有提交代码的权限,你们部门的同学具有只读权限,公司的其他人全部无法查看,这就是一个典型的权限管理场景。 通常在校验权限中分为两个流程,认证和鉴权。 即先判断你是谁:认证,然后再鉴权,判断你有没有这个资源的权限。 毫无疑问,复杂的Kubernetes也具......
Kubectl基本概念&常用命令
基本概念 容器化 + Kubernetes 逐渐成为云计算领域计算资源编排调度管理的事实标准,而 kubectl 则提供了一种非常直观和强大的观察操控 k8s集群的方式。 kubectl 是 kubernetes自带的 21 个命令行程序中的一个,其本身的逻辑并不复杂,使用 cobra 来解析命令行参数,读取 .kube/config中存储的认证信息经由 k8s restful api 和集群交互。 kubectl 命令基本格式如下: kubectl [子命令] [资源类型] [资源名称] [选项] 和 docker、git这种复杂的命令行程序一......
如何准确的获取CPU占用率[Linux][Go]
如果我们想要获取系统的 CPU 占用率,首先,Go 语言本身是没有帮我们封装这样的 API 的,所以我们只能自己通过其他方式直接向操作系统要,而不同的操作系统“要”的方式都不太一样,我们这里主要基于 Linux 场景来分析。 虽然有现成的 ps 和 top 等工具我们可以读到现成的值,但是这些工具也是基于 proc 文件解析的,对于人眼可读性较友好,但是代码解析时就不那么方便了。 PROCESS 文件系统 在许多 Unix 类系统中,都存在一个 procfs (Process File System) 进程文件系统的概念,用于将内......
VPN是如何工作的
VPN 想象一下这两种场景: 你下班家,公司线上一台机器出事故了,这个时候你需要远程到这台机器上来排查并处理问题。 你在其他城市实习,这个时候学校需要选下学期的课了,但是教务网站只对校园网开放。 在这两种场景中,都离不开一种关键的技术:VPN(Virtual Private Network:虚拟局域网)。 VPN提供了一种在公网上安全的加入局域网的方式,可以我们这里就以开源的 OpenConnect VPN 为例,探讨一下 VPN 这种技术是如何安全的将局域网在互......
Minikube安装教程
Minikube 是一个迷你版的 k8s,部署极其简单(相较于正常一套完整的k8s系统而言),对于想要学习k8s或者本地开发调试的人而言都是一个非常不错的选择。 注:以下操作均基于 CentOS 7,其他发型版流程大致一样,不过包管理部分会略有差异 安装容器引擎: Docker Kubernetes 是一个容器编排调度系统,但是容器实体还是需要其他系统来创建的,常见的有如:docker、virtual box、kata等,这里我们以最常见的 docker 为例进行安装,如果系统上已......