• Azure中国提供了gcr.io/k8s.gcr.io镜像代理服务

    Azure 中国 提供了 gcr.io 及k8s.gcr.io容器仓库的镜像代理服务,安装kubernetes时拉取镜像失败的同学有福了。 测试了下,服务很稳定,速度也不错,基本>1MB/s(杭州电信),推荐。 拉取时需要改一下前缀,等pull完了以后再tag为新的镜像名。 docker pull gcr.azk8s.cn/google_containers/<imagename>:<version> Azure开源镜像站点提供了很多镜像服务。运营主体是Azur...


  • yummy: 基于LVM的local volume完全自动动态供给

    在kubernetes支持local volume中我有提到,目前local volume还无法完全自动完成动态供给。 为了解决这个问题,我在春节期间撸了一个小项目:yummy。 yummy会监听local volume类型的PVC,在创建LVM的机器上,动态创建LV并挂载,然后再通过external storage发现新挂载的目录、创建PV,从而自动完成动态供给。 yummy分为schedule和agent,其中scheduler负责监听将PVC调度到合适的node上,而各个node上的ag...


  • golang modules代理: GOPROXY

    golang写代码,有个地方特别不爽:没有一个成熟的包管理机制。前文 Golang官方包依赖管理工具 go mod 简明教程里介绍了golang 1.11版本推出的go module功能,但是实际使用时还是会遇到网络原因无法访问golang.org上的包的问题,我们可以通过配置镜像代理来解决。 众所周知,golang是google推出的,而google又长期处于404状态;我们有时会遇到一些托管在golang.org, k8s.gcr.io的库,在go mod之前可以从github拖下来改下名字,...


  • kubernetes支持PodSecurityPolicy

    PodSecurityPolicy是什么 开启PodSecurityPolicy 授权策略 示例 PodSecurityPolicy是什么 PodSecurityPolicy是一种用来控制Pod安全相关配置的全局资源。 在开启RBAC的kubernetes集群上,如果允许用户使用kubectl,那么必须开启PodSecurityPolicy,否则用户可能会使用一些特权资源(例如privileged,hostNetwork,hostPath等等),影响node机器的稳定性。 ...


  • kubernetes支持local volume

    local volume 创建一个storage class 静态创建PV 使用local volume PV 动态创建PV local volume kubernetes从1.10版本开始支持local volume(本地卷),workload(不仅是statefulsets类型)可以充分利用本地快速SSD,从而获取比remote volume(如cephfs、RBD)更好的性能。 在local volume出现之前,statefulsets也可以利用本地SSD,方法是...


  • 小工具:查找哪些clusterRole定义了某个resource

    在开启了RBAC的kubernetes集群上,经常会遇到这样一个问题: 应用启动的时候,报了权限不足的错误,想给它的sa加一下rolebinding,但是又不知道到底是哪个clusterRole定义了该权限。 所以我写了个小工具,可以根据resource来反向查找哪些clusterRole定义了该资源: kube-role-finder。 使用起来很简单。 kube-role-finder -resource services Those clusterRole has resource ...


  • 炫龙耀9000(Clevo P95)拆机加内存

    要说2018年买的最值的电子产品,可能就要数这台 炫龙 耀9000 了。 您可能要问了,炫龙是什么?没关系,您知道神船吗?炫龙呢,就是神船的互联网子品牌,比神船还神船,还要有性价比(因为阉割了线下售后啊)。您可能又要问了,那稳吗,不会上烈士墙吗?别怕,都是蓝天出品,稳的一比。 之所以买这台炫龙耀9000,主要是因为之前用的笔记本显卡配置太差了,玩堡垒之夜,只能开最低画质,路边的树都有雪花屏,必须要升级了。装个台式机还是继续笔记本?按我的生活习惯,肯定还是笔记本。 这台耀9000,厚度比一元硬币...


  • kubernetes上部署Dragonfly

    部署supernode 部署df-daemon 修改Docker daemon配置 Dragonfly可以很好的节省kubernetes集群下载镜像的带宽,下文记录了在一个已经配置好的kubernetes集群中如何部署Dragonfly。 Dragonfly分为两部分,均部署到namespace kube-system中: supernode,部署在master节点 df-daemon,部署在所有节点 部署supernode 由于supernode需要在/home...


  • fish shell支持kubectl自动补齐

    我在更好用的kubectl里提到,fish shell针对kubectl自动补齐,社区有个项目fish-kubectl-completions可以支持,但是我之前用的时候非常慢,经常需要十几秒才能tab出来结果,试着调试过几次,没找到原因(可能是complete注册太多?),所以姑且先用了zsh。 zsh默认不支持命令行基于历史自动补齐(用过fish的人都知道这个多好用),社区有个插件zsh-autosuggestions,能满足一定的基于历史自动补齐,但是它不完善的一点是,它的历史是所有控制台共...


  • golang如何解析域名

    最近遇到了一个问题。 我们的kube-apiserver配置了OIDC认证,OIDC issuer是添加了dns server记录的,但由于某些原因,我需要覆盖掉dns server的解析,改用hostAlias的IP地址,但是实测发现总是走了DNS解析,虽然/etc/hosts文件已经添加了自定义的hosts记录。而那些没有在dns server注册的域名,还是可以通过 /etc/hosts 解析的。 原因是,kube-apiserver的基础镜像是 busybox ,和 centos 不同,...