• 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会去...


  • 终于我也求助了工信部

    我的手机是电信的199家庭套餐。这段时间发现话费花的很快,刚充了没多久就提示余额不足。觉得很奇怪,就查了下话费,好家伙,原来从2月份开始就给我开通了一个30块钱1GB的流量包月。 我他X的。 30块钱什么概念呢,其实30块钱是可以直接开一个无限流量的包月的(我的套餐因为之前有个合同没到期,如果要改159不限量套餐的话要交个三百块的违约金,电话问了下10000号说不终止套餐的话可以办一个30块无限流量的包月)。谁会去开这么缺心眼的包月呢? 努力回想了下,应该是2月份春节的时候,流量用超了,临时开...


  • Golang: 常量、枚举,以及魔幻的iota

    常量 枚举 常量 Golang里的constants就是constants,在编译时创建。常量可以是这几种: numbers, characters (runes), strings or booleans。因为是在编译时处理的,所以常量的值必须是编译器可以搞定的,比如1,”abc”,以及 len(“abc”)。 注意最后这种也是可以的。 和变量不同,常量可以定义了,但是不用。为什么?因为下面要用常量来定义枚举,谁能保证所有枚举就一定会用到呢? package main imp...


  • 迈向serverless

    什么是serverless 有哪些serverless选手 kubeless kubeless安装 kubeless架构 什么是serverless 啥?怎么就serverless了? 要说serverless,得先从最近几年的XaaS说起。 AWS,阿里云,Azure,GCP等等,最先提供的,是IaaS,基础设施即服务,卖卖ECS各种云服务器,用户不用自己去买硬件服务器、建设机房各种操心了,点点鼠标就有了。 后来出现了PaaS...


  • kubernetes笔记: HPA

    Source descriptions: Output descriptions: pkg/controller/podautoscaler/horizontal.go:169 // Run begins watching and syncing. func (a *HorizontalController) Run(stopCh <-chan struct{}) { defer utilruntime.HandleCrash() defer a.queue.ShutDown...


  • kubernetes笔记: Cephfs

    cephfs 内核mount 用户态mount 限定用户态mount的size cephfs用作Volume cephfs用作PV/PVC cephfs用作storage class 有了前面ceph RBD的基础,再来看cephfs就简单很多了。本文介绍了kubernetes上使用cephfs的方法,重点介绍了kubernetes上用cephfs支持storage class的解法。 cephfs cephfs类似...


  • kubernetes笔记: Ceph RBD

    背景 ceph集群 node上准备ceph RBD用作volume RBD用作PV/PVC RBD用作storage class 总结 背景 为什么k8s需要RBD呢?以前用到的volume,有 configmap 、empty dir、hostpath,configmap通常是用来向容器注入配置的,而empty dir、hostpath 也能够用来存储数据,但他们都有一个致命的问题:如果容器被删除了,数据也就跟着丢失了。这对一些无状态应用来说没什么,因为他们的数据...


  • kubernetes笔记: LimitRanges

    前面我们介绍了kubernetes的resourceQuota,现在再来介绍下limitRanges。 Resource Quota区分的粒度是namespace,其目的是为了不同namespace之间的公平,防止某些流氓team占用了太多的资源。而limitRange区分的粒度则是container,则是在为了在同一个namespace下,限制container的最大最小值。另外, 在设置了resourceQuota的namespace下,如果用户创建Pod时没有指定limit/request,...