笔者2019下半年需要一个有namespace管理员权限的k8s集群,虽然公司已经有几个大的k8s集群,但是管理方式另外一个部门,相关负责人不肯给namespace内的管理员权限,不肯给的话,要么自建,要么找公有云托管。

问题1,自建还是公有云托管?

自建也好,公有云托管也好,都可以把集群拉起来,但是也会引入一些新的问题

优点缺点
自建拉起集群以及配套的组件,需要一段时间占用运维人力,而且对于运维的要求比较高,笔者这边是研发人员,可能要占用0.2-0.3个开发人力来处理日常的一些运维问题
公有云托管一键拉起集群版本会有一定的延迟,比如华为云,当前最新的k8s版本是1.13, 笔者需要1.16之后的版本(因为1.16之后,有一些非兼容的api更新,例如deployment、daemonset已经更新到app/v1,属于非前向兼容的更新)
新增节点限制比较多
master HA模式下,最小规模的master托管,还是有点贵,具体可以到公有云的网站找一下价格

笔者所在部门可以用公有云托管,也可以用私有云自建,权衡过后决定还是自建。

问题二,哪些点需要重点关注

  1. 重中之重,网络规划,由于网络中保留的网段只有10.0.0.0/172.16.0.0/192.168.0.0,如果你要做一个万核集群,那么久得考虑ip网段的容量问题,也要考虑跨vpc通讯的问题。我用的是Calico插件,BGP模式,这种情况,就要注意IP冲突的问题。
  2. docker storage driver的问题,由于centos现在使用的是xfs格式的文件系统,而docker默认在xfs下使用的是vfs驱动,很不稳定。建议把docker的storage driver改成overlay2驱动,xfs的格式化的时候,ftype要指定为1,不然docker起不来
  3. docker graph存储目录,要改到空间大的分区目录,一个是为了存更多的镜像,另一个是因为笔者的系统主要跑的是机器学习的容器,有大量的输入输出文件,在文件系统容量这块要特别注意
  4. 容灾,HA模式下,master机器一般都有3个,但是为了保险,可以加到5个master。混合云环境,除了master,工作节点也要考虑容灾。

问题三,一些验证过的配套组件

镜像仓库: harbor 我主要用registry和chart museum两个功能,其它功能没验证
CNI组件:Calico插件BGP模式
集群监控组件:kube-prometheus,包含了metric server/prometheus/alarm manager/grafana等插件,几乎是开箱即用
编排工具(helm):helm建议用2.*版本,3.*坑比较多

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐