kubernetes的资源管理

什么是资源 在Kubernetes中,资源指的是可以被pod或容器“请求”,“分配”,“消费”的那些东西。例如:CPU,内存,硬盘。资源又分为可压缩资源和不可压缩资源,目前CPU是唯一支持的可压缩资源,内存和硬盘是不可压缩资源。对于CPU这种可压缩资源,如果pod中服务使用CPU超过限额,该pod不会被kill掉但会被限制,而对于内存这种不可压缩资源,如果pod中服务使用内存超过限额,该po...

使用kubeadm安装kubernetes

前言 kubeadm是kubernetes官方提供的快速安装kubernetes集群的工具,相比以前手动安装各个组件,kubeadm可以说是非常方便了。我在安装的过程中遇到了很多坑,而引起这些坑的根本原因就是网络不通,因为要去拉谷歌的镜像,如果服务器没有配代理的话,会遇到各种各样的问题。所以,建议大家在安装前先配好代理,如果没有代理只能墙内安装,需要从其他镜像仓库把各个镜像拉下来,并修改各个...

docker部署go应用

前言 因为go的应用就是一个可执行的二进制文件,所以使用docker部署go应用非常简单。 编写一个go应用 下面是一个打印Hello World的简单go应用: //hello.go package main import ( "fmt" ) func main() { fmt.Println("Hello, World!") } 执行go build编译生成可执...

go的包管理工具godep和dep

前言 目前go并没有官方的包管理工具,比较流行的是godep。godep从go 1.0开始就可以使用了,是比较老的包管理工具,早期使用go的人应该都用过godep。而dep是2017年初才发布的包管理工具,要求go >= 1.7,目前还不太成熟了,用的人很少,不过却是最有可能被纳入官方的包管理工具。下面分别介绍下godep和dep的使用。 godep install godep使用起...

理解FastCGI和PHP-FPM

前言 由于我一直对CGI、FastCGI、PHP-CGI、PHP-FPM这几个概念都比较模糊,所以最近花了点时间去详细了解了一下,并在此做个学习记录。 CGI和FastCGI CGI(Common Gateway Interface)全称是通用网关接口,是web服务器与应用程序之间数据交换的一种与语言无关的协议,它规定了要传递给web服务器的数据和格式,如URL、查询字符串、POST数据、...

git使用技巧

有些东西一段时间不用就特别容易忘,最近在使用git的时候老是要去查文档,所以在这里记录git的一些用法,以方便以后查阅。 回滚 对于已经push过的代码,回滚到某个版本,可以使用git reset和git revert两种方法。 例如:远程提交记录是A -> B -> C -> D,要回滚到B那个版本: git reset git reset --hard B git ...

Nginx设置FastCGI Cache

前言 Nginx包含一个FastCGI模块,该模块具有缓存PHP后端提供的动态内容的指令。设置此操作将无需额外的页面缓存解决方案,如反向代理或特定于应用程序的插件。也可以根据请求方法,URL,Cookie或任何其他服务器变量不缓存某些内容。 开启FastCGI Cache 编辑nginx.conf配置文件,在Server{}模块的上面添加以下内容: fastcgi_cache_path /...

go的变量命名

名字的重要性 可读性是定义良好代码的标准,好的名字对于可读性至关重要,这是对于Go的变量命名来讲的。 好的变量名 一个好的变量名的标准: 一致(容易猜测) 简短(容易声明) 准确(容易理解) 经验法则 变量声明的地方与使用它的地方隔的越远,则变量名应该越长。 使用大小写混合 Go中的变量名应该使用大小写混合,而不应使用names_with_underscores这种下划...

使用docker搭建mongodb集群

最近在搞公司内网开发环境,需要基于docker容器搭建一套mongodb复制集群,这我以前没搭过啊,于是我去Google了一下,发现还挺简单,但其中也遇到了坑,所以这里记录一下,避免以后再次踩坑。 思路 这里搭建集群是在单台物理机上搭建的,大致思路基本都是这样:使用mongo基础镜像启3个docker容器,一个主服务器两个备份服务器,将容器内的27017端口映射到物理机上三个端口,然后进入...

go的锁机制

go是一门并发特性非常强大的语言,我们在实现并发编程时,往往会碰到多个线程同时访问同一个变量的情况,也就是所谓的竞态,这种情况可能会导致数据混乱出错,因此,这个时候就需要对变量上锁,来保证一次只有一个线程能修改该变量,下面将详细介绍go的锁机制。 sync go语言中的锁机制是通过自带的sync包来实现的,该包包含了以下几种锁类型。 sync.Mutex Mutex是互斥锁,其定义方式很...