Hello, World!

~ Enjoy Today ~

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 为例进行安装,如果系统上已......
小米路由器4A百兆版刷OpenWRT
我其实不怎么喜欢写这种教程类的博客,不过苦于刷机过程中资料过少,踩坑过多,特此系统性的捋一下,分享给有缘人,我手上的型号是百兆版的,4A千兆版刷OpenWRT的流程也基本一样,不过需要注意镜像地址什么的自行替换一下。 前提:需要安装 git、python3 以及熟悉基本的终端操作。 OpenWRT 首先我们要对 OpenWRT 有一些最基本的概念,OpenWRT 是一种 Linux 发行版,本质上是一个操作系统,和我们的常见的 Windows、And......
Git实现原理
基本概念 概述 Git 是一个基于快照的文件版本管理系统,其实现原理是为每个文件计算一个 hash 值然后压缩存储到 .git/objects 目录内,普通文件为 blob 对象,而文件夹也会生成一个对象:tree,这样一个版本的文件就能被根目录串联起来,这个版本的再上层会有一个 commit 对象,commit 对象会有一到多个 parent 指针,指向上一个提交,这样就把一个个版本串联了起来。 commit 的上层还有一个概念叫分支,分支是一个指向 commit 的指针,相当于是对这一系列 commit 的抽象。 这是一......