摘要:Background kubernetes是master slave结构,master node是集群的大脑, 当master node发生故障时整个集群都"out of control"。master node中最重要的当属apiserver组件, 它负责处理所有请求, 并持久化状态到etcd。 阅读全文
posted @ 2019-05-28 16:00 gaorong404 阅读(6846) 评论(2) 推荐(1) 编辑
摘要:请结合源码阅读,本文只是总结一下,源码里有详细的注释。基于:go1.12.4 http.Client 表示一个http client端,用来处理HTTP相关的工作,例如cookies, redirect, timeout等工作,其内部包含一个Transport,为RountTripper inter 阅读全文
posted @ 2019-05-21 09:41 gaorong404 阅读(5380) 评论(1) 推荐(0) 编辑
摘要:background docker docker的日志输出可以通过指定driver输出到不同的位置,常用的是 和`json file journald journald json file /var/lib/docker/containers/${docker uid} log opt json f 阅读全文
posted @ 2019-05-17 17:03 gaorong404 阅读(460) 评论(0) 推荐(0) 编辑
摘要:Highlight 本文会介绍kubernetes中关于集群驱逐的相关参数, 合理设置驱逐速率的考虑因素, 但是不会涉及node层面资源的驱逐阈值的设置。 Basic 在kubernetes中, 如果一个node出现故障, 例如节点宕机或与节点网络异常, controller manager中的no 阅读全文
posted @ 2019-05-07 09:31 gaorong404 阅读(594) 评论(0) 推荐(0) 编辑
摘要:kubernetes等容器技术可以将所有的业务进程运行在公共的资源池中,提高资源利用率,节约成本,但是为避免不同进程之间相互干扰,对底层docker, kubernetes的隔离性就有了更高的要求,kubernetes作为一门新盛的技术,在这方面还不够成熟, 近期在一个staging集群就发生了,i 阅读全文
posted @ 2019-03-04 17:42 gaorong404 阅读(1560) 评论(0) 推荐(1) 编辑
摘要:Compile git version inside go binary Abstract 在我们编写的程序中总是希望可以直接查阅程序的版本,通过 参数就会输出如下版本信息。 我们可以直接将版本信息写在源码里面,但是每次都需要修改源码,比较繁琐; golang 提供了 flag在编译时动态注入版本信 阅读全文
posted @ 2018-11-25 20:29 gaorong404 阅读(212) 评论(0) 推荐(0) 编辑
摘要:storage driver的选择依据很多的条件,比如发行版版本,团队技术积累,稳定性等。 device mapper是redhat/centos中最适合的, 稳定性也可以,内核原生支持,基于块设备,对于高负载情况下可以性能较好,支持quota。 缺点是:占用内存较多,启动同一个镜像的多个实例,需要 阅读全文
posted @ 2018-10-03 16:31 gaorong404 阅读(550) 评论(1) 推荐(1) 编辑
摘要:本文主要介绍k8s与LVM结合使用的场景,在原生的k8s中对于本地存储提供了hostPath与emptyDir两种volme,hostPath是直接将文件存储在本地主机上,存在的问题是无法进行quota管理,单个用户就可能将所有的磁盘打满;在kubernetes 1.10 成为beta版本,可以对e 阅读全文
posted @ 2018-07-23 20:42 gaorong404 阅读(971) 评论(0) 推荐(0) 编辑
摘要:在将k8s从1.7.9 升级到1.10.2 之后,发现删除pod一直处于terminating状态, 调查发现删不掉的pod都有一个特点就是pod yaml中command部分写错了,如下所示: 可以看到此时pod中的command为一个不存在的命令,创建该yaml后会返回如下状态: 在宿主机上 可 阅读全文
posted @ 2018-07-06 22:48 gaorong404 阅读(1079) 评论(0) 推荐(0) 编辑
摘要:在敏捷开发的时代, 快速的编码, code review, 测试, 部署, 是提升程序员效率的关键。 同时在基础工具完备的如今, 我们甚至无需过多的操作就可以轻松实现上述步骤, 本文就以gitlab为例, 分享一下golang项目结合gitlab如何实现自动化CI。 在gitlab中执行CI, 需要 阅读全文
posted @ 2018-06-17 19:32 gaorong404 阅读(650) 评论(0) 推荐(1) 编辑