专栏首页腾讯云容器服务团队的专栏使用腾讯云容器服务TKE VS 自建k8s 集群
原创

使用腾讯云容器服务TKE VS 自建k8s 集群

TKE(Tencent Kubernetes Engine) 是腾讯云提供的容器服务PAAS 平台,基于kubernetes, 集成了腾讯云vpc网络,负载均衡,存储等IAAS 资源,提供容器调度、日志、监控、镜像仓库,Helm编排,自动弹性伸缩,微服务治理,DevOps 等功能,为客户提供完整的企业级容器服务。

在腾讯云上使用容器服务,到底是自建k8s 集群,还是直接使用TKE, 这篇文章从以下几个方面来说明各自的优势和风险。

1. 集群安装和升级

TKE:

通过web页面一键安装,10分钟以内完成安装,提供两种集群管理模式。

  1. 托管k8s集群,master 节点托管在腾讯云的服务器上,用户只需要购买node节点即可,无需用户自己购买和维护master 节点,适合希望节省资源成本和运维成本的用户。
  2. 独立Master集群,用户购买Master 节点,灵活配置,可跨可用区,适合希望自主可控master 节点的用户。

自建:

虽然社区提供了kubeadm 这样的工具,但是安装一个高可用的k8s 集群也还是没那么轻松;需要手动创建api-server 的负载均衡,手动安装docker、kubelet、kubectl ,考虑证书过期问题,cni 网络插件选型问题等等。

k8s 1.14 官方文档也有说明:

You should also be aware that setting up HA clusters with kubeadm is still experimental and will be further simplified in future versions. You might encounter issues with upgrading your clusters,

使用kubeadm 安装高可用集群还在实验阶段,在未来的版本中会更简单,你可能在升级集群的过程中也会遇到问题。

2. 网络

TKE:

提供两种网络方案:

1. 全局路由方案

TKE 容器网络和腾讯云VPC 网络打通,容器网络和节点网络在同一平面内,可以实现在任何vpc内容器网络和节点网络互通,容器网络和客户IDC 网络互通,且没有额外的性能开销,性能接近节点网络。

image-20190327172137735.png

如图:在管理面,TKE 在创建集群时会让让用户选择一个容器网络,如10.0.0.0/16, 安装集群时,给每个node 节点从这个网段中划分一个子网,作为Pod Cidr, Pod 创建时从Pod Cidr 选择IP 。将Pod cidr 和node的对应关系下发到全局路由表里,让容器IP 在vpc 内可路由。

在数据面,容器网络通过cbr0 在同一节点通信,eth0 出节点,在物理宿主机上完成封包、路由及解包,转发给目标pod 所在的虚拟机。

2. vpc-cni 方案

利用腾讯云弹性网卡功能,自研ipamd 及 cni 插件,实现容器直接使用vpc 内的ip 地址。同时也实现了基于StatefulSet 的podip 固定, Pod ip 自定义使用范围等高级特性。适合有历史包袱或者特殊网络安全策略的业务;比如数据库的安全组策略,业务要求只能放通某些ip 或者某个IP 范围。

自建:

  1. 使用TKE提供的CloudProvidor 插件,和腾讯云vpc 打通
  2. 使用社区的网络插件,在公有云上,基于路由协议的网络插件(如calico, flannel host-gw)都无法和vpc 的路由打通,所以只能使用隧道模式的网络插件,但隧道模式的网络插件都需要在cvm 上再做一次vxlan 封包,我们做了压力测试,性能损耗大概在30%左右,如图:
image-vxlan.png

测试详情:https://cloud.tencent.com/developer/column/1075

3. 存储

TKE:

支持腾讯云的快存储,文件存储,对象存储;文件存储和块存储目前已经支持手动或者StorageClass 的方式自动创建pv pvc, 对象存储也即将支持。

自建:

自己维护一套存储软件,如ceph, glusterfs 或者通过TKE 提供的csi插件(https://cloud.tencent.com/document/product/457/18545)使用腾讯云块存储。

4. 负载均衡

TKE:

TKE 支持类型为LoadBalancer 的svc, 自动创建4层LB, 支持ingress 的方式暴露7层LB, 给服务暴露公网或者vpc 内网访问。 当然客户习惯使用nginx-ingress 或者treafik-ingress, TKE 也平滑支持。

自建:

使用TKE 提供的servicecontroller 插件,创建类型为LoadBalancer的svc, 使用腾讯云4层LB, 使用nginx 或者 traefik ingress 提供7层LB。

5. 镜像仓库

TKE提供的镜像仓库具有以下特性

  • 免费,无镜像数限制
  • 可靠,高可用设计,多registry 实例,对接后端对象存储
  • 急速,腾讯云云主机上内网访问,p2p 镜像分发也在实现中。

6. 集群运维

TKE 有专门的团队来维护用户集群,从3个方面来说:

1. 集群Master 可用性

  • etcd 连接数及延时监控
  • master各系统组件实时数据采集. 健康检测. 展示及告警, 及时发现集群潜在问题。
  • service/ingress pending状态资源采集及告警

2. 集群节点可用性

  • dockerd, kubelet 健康检查 及热重启
  • 基于ntp组件(node-problem-detector) 实现节点内存碎片化的监控,主要监测两件事情(cgroup oom和system oom),并且通过event的方式上报给k8s。可以通过kubectl describe node查看到上报的事件。

3. 丰富的集群运维经验

  • TKE 团队到目前为止运维了线上几千个集群,版本包含k8s 1.7 到 k8s 1.12, 遇到过各类k8s 问题,可以很快给出合理的解决方案。且有很多问题已经通过产品化规避。

7. 技术支持

  • TKE产品及架构师团队定期拜访客户及技术交流
  • TKE架构师及研发团队在线问题支持

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯云云原生混合云-TKE发行版

    徐蓓,腾讯云专家工程师,深耕云计算、K8s、离在线混部领域,K8s 社区贡献者,Memory QoS with cgroups v2 KEP 作者。 李波,...

    腾讯云原生
  • 于广游:TKE——贯穿云端,一站式云原生容器 PaaS 平台

    12月15日,由腾讯云主办的首届“腾讯云+社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能、大数...

    云加社区技术沙龙
  • 中秋福利 | 15个系列100+篇超实用云原生原创干货合集(内含腾讯彩蛋)

    还有2天,就要迎来中秋小长假啦 这个中秋节你打算怎么过? ? 小云选择把这篇干货全部拿下! 云原生技术干货文章合集,来咯~ ? 2021 年,要说咱们技术圈...

    腾讯云原生
  • 腾讯云 Serverless 弹性容器服务 EKS x 可信云:首批+先进级认证

    ? 2021年7 月 27日 - 28日,由中国信息通信研究院指导,中国通信标准化协会主办,云计算开源产业联盟承办的 2021 可信云大会在北京召开。大会上,...

    腾讯云原生
  • 10月容器产品技术月报|2021 腾讯数字生态大会【云原生专场】重磅来袭

    ? 2021年10月 ? ? VOL:18 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性10月上新 ...

    腾讯云原生
  • 12月容器月报 | 降低 65% 业务成本的弹性容器EKS「竞价实例」上线

    ? 2020年12月 ? ? VOL:08 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 12月上新...

    腾讯云原生
  • tke-kms-plugin插件开源

    tke-kms-plugin是Kubernetes腾讯云KMS provider插件,支持腾讯云容器服务TKE集群(及用户在腾讯云的自建K8s集群)利用腾讯云...

    腾讯大讲堂
  • 8月容器产品技术月报来袭 | 技术书籍等你拿

    腾讯云云原生监控服务(Tencent Prometheus Service)是分布式的监控部署方案,提供更加易用的的监控配置流程和适配大规模监控场景的高性能架构...

    腾讯云原生
  • 11月容器技术产品月报 | 云原生监控正式公测

    ? 2020年11月 ? ? VOL:07 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 11月上新...

    腾讯云原生
  • 3月容器产品技术月报|留言抢定制款T恤

    ? 2021年3月 ? ? VOL:11 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 3月上新 ?...

    腾讯云原生
  • 直播报名中|腾讯云容器服务 K8s 日志一站式解决方案部署实践

    ? 日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储等多项服务,当用户运行过程中遇到问题时,...

    腾讯云原生
  • SuperEdge的新特性和未来之路

    王冬,腾讯云高级研发工程师,专注于Kubernetes、容器等云原生领域,SuperEdge 核心开发人员,现负责腾讯云边缘容器TKE Edge私有化相关工作...

    腾讯云原生
  • 转发有礼 | 50篇+云原生系列干货文章汇总,请查收!

    云原生技术干货文章合集,来咯~ ? 2020 年,要说咱们技术圈子里什么最火? 云原生肯定是那 NO.1 ? 截止目前,我们不难看出,K8s 容器、服务...

    腾讯云原生
  • 开工必备!50+篇超实用云原生技术干货合集

    kai 开 gong 工 da 大 ji 吉 新年新气象,更要1G棒 2020年没写完的代码,现在还有思路吗? 2021年开始使用云原生技术了吗? 一开工就遇...

    腾讯云原生
  • TKEStack 容器混合云能力介绍(1):统一基石

    刘晨,腾讯云后台开发工程师,TKEStack社区核心成员,负责TKEStack的设计开发维护及混合云项目相关工作。 胡晓亮,腾讯云专家工程师,专注云原生领域。...

    腾讯云原生
  • 8月腾讯云容器产品技术月报|留言抢腾讯定制T恤

    ? 2021年8月 ? ? VOL:16 ? ? ? ? 腾小云告诉你最前线的产品新特性 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 8月上新 ? ...

    腾讯云原生
  • 腾讯云原生混合云-第三方集群弹EKS应对突发流量的利器

    何鹏飞,腾讯云专家产品经理,曾作为容器私有云、TKEStack的产品经理兼架构师,参与腾讯云内部业务、外部客户容器化改造方案设计,目前负责云原生混合云产品方案...

    腾讯云原生
  • 冲上云霄-云从业人员随笔(2)

    在上一篇中,我讲述了运维开发的必经之路,如何构建一个流畅的开发环境,其实有点像搭建了一个钩子,将本地环境的代码勾进了远程开发机中(开发机即代表有中间件/语言解析...

    StatLee
  • 6月月报|容器女团齐庆建党百年

    ? ‍ 2021年6月 ‍ ? ? VOL:14 ? ? ? ? 腾小云告诉你最前线的产品新特性, 总有一款让你心动~ ? 云说新品 ? 容器产品新特性 ...

    腾讯云原生

扫码关注云+社区

领取腾讯云代金券