Zlatan Eevee
Jack of all trades and master of none.
-
golang如何解析域名
最近遇到了一个问题。 我们的kube-apiserver配置了OIDC认证,OIDC issuer是添加了dns server记录的,但由于某些原因,我需要覆盖掉dns server的解析,改用hostAlias的IP地址,但是实测发现总是走了DNS解析,虽然/etc/hosts文件已经添加了自定义的hosts记录。而那些没有在dns server注册的域名,还是可以通过 /etc/hosts 解析的。 原因是,kube-apiserver的基础镜像是 busybox ,和 centos 不同,...
-
firecracker
AWS开源了一个新的虚拟化技术,叫做 firecracker. Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models. 确实是解决了doc...
-
kubelet如何做GC(Garbage Collection)
生活处处有GC。 在使用kubernetes的时候,可能会有个疑问:用户在k8s上创建、删除了Deployment就走了,那么在node上残留的docker镜像是谁去删除的?不删除的话,日积月累,迟早耗尽node的硬盘空间。 其实k8s是有Image GC的。不知道你注意到了没有,硬盘空间紧张的时候,会发现下载到某个节点上的image会悄悄消失,其实这就是Image GC在工作。 在每个节点的kubelet配置文件/var/lib/kubelet/config.yaml imageGCHig...
-
更好用的kubectl
zsh kubectl auto completion 配置对多集群的访问 kube-ctx/kubens kube-ps1 kubectl是管理kubernetes集群的命令行工具,实际使用的频率非常之高,因此一个更方便的kubectl通常会带来很大的便利性。下面介绍几个很棒的工具。 zsh 其实我更喜欢用fish(传说中90后都在用),但是fish针对kubectl的生态还不够完善(主要是没有auto completion),因此还是先用zsh。 推荐用oh-my-...
-
http cache在Dragonfly中的应用
阿里开源的Dragonfly对k8s集群上多副本应用的镜像分发有很大帮助,通过p2p网络,可以很好的解决docker registry的压力。 有关蜻蜓的介绍,请参见直击阿里双11神秘技术:PB级大规模文件分发系统“蜻蜓” 首先,docker pull命令,会被dfget proxy截获。然后,由dfget proxy向super node(即cluster manager)发送调度请求,super node在收到请求后会检查对应的下载文件是否已经被缓存到本地,如果没有被缓存,则会从Regi...
-
墙内安装kubernetes教程
准备工作 更换apt源为163 安装docker 增加kubernetes aliyun镜像源 安装kubeadm/kubelet/kubectl 关闭swap 配置docker mirror 拉取k8s的包并tag 开始安装master 部署weave网络 准备计算资源 安装weave scope 去年2月我写过一篇kubernets部署备忘 ,当时基于v1.5.2,...
-
Golang官方包依赖管理工具 go mod 简明教程
go mod是什么 如何使用go mod 更好的控制 go mod是什么 Golang从诞生之初就一直有个被诟病的问题:缺少一个行之有效的“官方”包依赖管理工具。其原因是在Google内部,所有人都是在一个代码库上进行开发的,因此并不是非常需要。但Golang变成一个社区化的工程语言之后,这个问题被放大了。 GOPATH不符合一般开发者习惯,大部分人更习惯maven、node modules之类的方式 GOPATH无法有效的管理版本依赖,没有一个地方能够表明依赖包的具体...
-
kubernetes ingress 健康检测
问题背景: 当node重启或node上docker服务stop时,由于k8s不会快速将该Pod的endpoint从service上摘除,此时需要ingress能快速发现问题,否则请求流量会被nginx转发到故障的Pod上。 nginx-ingress的解决方法: 当前nginx-ingress支持后端服务的重试,例如下面的upstream,当请求到来时,将对server进行重试: max_fails为在fail_timeout 时间内重试的最大次数;当达到max_fails后,将该server的状...
-
kubernetes笔记: NetWork Policies 网络策略
NetworkPolicy 资源 默认NetworkPolicy 默认禁止所有入方向流量 默认允许所有入方向流量 默认禁止所有出方向流量 默认允许所有出方向流量 默认禁止所有出入方向流量 Kubernetes通过namespace支持了多租户,不同租户间可以通过ResourceQuota来保证资源的隔离,也无法查看其他namespace的Pod信息等。但默认kubernetes并不限制访问Pod的网络请求...
-
如何自然的将Harbor集成到kubernetes集群中
我们计划使用Harbor来做镜像管理。相对原生的docker registry,Harbor有一些优势,例如可以集成用户认证、提供项目的概念、项目间可以隔离、镜像复制等功能。 Harbor的认证一般可以采用DB或者LDAP的方式,在安装Harbor时指定 auth_mode 为 db_auth 或 ldap_auth 。以LDAP为例,安装后,用户可以使用LDAP账户/密码,登录到Harbor的web页面,也可以 使用LDAP账户/密码, docker login 到Harbor,Harbor会去...