kubernetes 总结

2017/09/26 更新

  • 性能问题查明,是文件系统导致,与服务无关。测试环境上用的是NFS。

2017/09/18 更新

  • kubernetes 1.7.4版本上,go服务并发150,升级到1.7.5后,并发400+。
  1. 系统
  • 尝试过centos和ubuntu,由于网上大部分参考都是centos,最终还是选择了centos 7.3。
  1. 安装工具
  • 尝试过ubuntu下的conjure-up, kubespray,kubeadm,最终选择了kubeadm;
  • 无论什么工具,都严重依赖翻墙下镜像。可以通过docker hub或者其他方式转存镜像。但,直接翻墙最简洁。
  • 工具越智能,出错越难排查。conjure-up和kubespray很方便,但是出错的时候就麻烦了。
  • kubeadm简洁,官方支持,出错也能清楚知道错在哪一步。另外github上有非官方的HA方案,其他工具则只支持单master。
  1. 网络组件选择
  • 尝试过calico, flannel(host-gw, vxlan),weave;
  • calico网络下,服务的端口访问有问题,如dashboard开了30001端口,pod部署在node1上,则:
    • 通过node1的IP+30001,本地和外网都能访问。
    • 通过其他node或者master+30001,本地能访问,外网不能。
  1. docker版本

    • 官方建议是到1.12版本为止,而我尝试的是17.0.6,结果出现问题,需要另外配置防火墙。
  2. 对外端口

    • 尝试过NodePort,性能不好放弃;
    • 尝试过ingree+ nginx,发现后端pod变化时,要相当长的时间在ingress上生效。一段时间内会出现服务访问不到。
    • 尝试过 ingress+ nginx+ keeapalived+ vip, 考虑到上云后无法获得vip,故放弃此方案。
    • 最终决定使用ingress+traefik,本地建nginx模拟LB。上云后使用ELB。
  3. 遗留问题

    • 通过ingress测试java服务和web,性能很不错。但是测试后台go程序,性能只有原先的1/6。通过ingress请求java服务调用其他java服务的情况下,性能损耗也巨大。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 千军万马过桥梁,满怀信心入考场。 大展身手传四方,深藏不露惊满座。 才高八斗压众人,满腹经纶定乾坤。 学富五车无人...
    我爱吃任何鱼阅读 1,521评论 1 5
  • 不知道是什么时候开始喜欢上写作,也许很久之前就喜欢这种感觉,只是没有特意的去写,直到现在我开始拿起笔每天都写一篇,...
    等风的树阅读 1,534评论 0 0
  • 1、课桌上的书被风吹到随便哪一页,旁边放一支没有笔芯的空笔筒,心满意足地摸着背后收拾好的书包,然后在后背用手指比划...
    酸辣笋尖阅读 2,994评论 0 0