2.3 容器服务 TKE 及最佳实践¶
课程简介¶
容器服务(Tencent Kubernetes Engine,TKE)是腾讯云基于原生 Kubernetes 提供的高性能、高可扩展的容器管理服务。本课程将从 TKE 的产品定义、架构原理出发,深入剖析集群设计、网络选型、节点管理及 DevOps 持续交付等核心环节的最佳实践,帮助您构建生产级的高可用容器集群。
学习目标¶
通过本课程的学习,您将能够:
- ✓ 理解 TKE 架构:掌握 TKE 的产品定义、底层架构及核心优势。
- ✓ 掌握集群设计:学会选择合适的集群类型、运行时(Containerd/Docker)及 Service 转发模式。
- ✓ 精通网络选型:深入理解 Global Router、VPC-CNI 和 Cilium Overlay 三种网络模式的区别与应用场景。
- ✓ 实施弹性伸缩:掌握 TKE 集群自动伸缩(CA)的策略配置与多可用区容灾方案。
- ✓ 落地 DevOps:了解如何结合 TCR 和 Coding 实现容器化的持续交付。
第一部分:容器服务 TKE 基础¶
本部分导读
了解 TKE 是如何基于腾讯云 IaaS 和 PaaS 层构建的,以及它为何能成为企业云原生的首选平台。
一、TKE 产品概述¶
1.1 产品定义¶
腾讯云容器服务(TKE)是一种高度可扩展的高性能容器管理服务。它允许用户在托管的云服务器实例集群上轻松运行应用程序。 - 无需运维控制平面:TKE 托管了 Kubernetes Master 节点,用户无需安装、运维或扩展集群管理基础设施。 - 标准化 API:通过简单的 API 调用即可启动、停止 Docker 应用程序,查询集群状态。 - 灵活调度:根据资源需求和可用性要求,智能安排容器在集群中的置放。
1.2 产品架构¶
TKE 基于腾讯云强大的 IaaS 和 PaaS 能力构建,向上提供标准的 K8S 服务。
graph TD
User[用户/运维人员] --> API[控制台 / API / Kubectl]
subgraph TKE 容器服务
direction TB
Feature1[集群管理<br>(托管/独立/升级)]
Feature2[应用管理<br>(Helm Chart/镜像)]
Feature3[容器网络<br>(VPC-CNI/Global Router)]
Feature4[运维管理<br>(监控/日志/告警)]
end
API --> TKE
subgraph 基础设施层 (IaaS & PaaS)
IaaS[计算: CVM/EKS<br>网络: VPC/CLB/NAT<br>存储: CBS/CFS/COS]
PaaS[数据库: TDSQL/Redis<br>中间件: TSF/CKafka]
end
TKE --> IaaS
- 底层 IaaS 支持:CVM(计算)、CLB(负载均衡)、VPC(网络)、CBS/CFS/COS(存储)。
- 核心功能模块:
- 集群管理:支持集群托管、独立部署、自定义 OS、平滑升级。
- 网络方案:提供 Global Router、VPC-CNI、Cilium Overlay 等多种模式。
- 应用管理:支持 Helm Chart 和 TCR 镜像仓库集成。
- 运维监控:集成云监控、日志服务 CLS 和事件告警。
1.3 核心优势¶
- 原生兼容:完全兼容原生 K8S API,无缝对接社区生态。
- 简单易用:简化 Master 节点管理,用户仅需聚焦容器应用开发。
- 深度集成:与 CVM、CBS、CLB、VPC 等腾讯云基础设施深度融合。
- 安全可靠:提供多层次安全防护,通过 VPC 实现网络隔离。
第二部分:TKE 集群设计与选型最佳实践¶
本部分导读
一个稳定的容器平台始于正确的架构设计。本节重点讲解在创建集群时需要做出的关键决策。
一、集群与管理模式选型¶
1.1 管理模式:托管 vs 独立¶
| 模式 | 说明 | 适用场景 | 费用与 SLA |
|---|---|---|---|
| 托管集群 (Managed) | 腾讯云代维 Master 节点和 Etcd,Master 资源随规模自动扩容。 | 首选推荐。关注业务应用,不希望运维 K8S 控制平面。 | Master 节点免费(或收管理费),提供 SLA 保障。 |
| 独立集群 (Standard) | 用户自购 CVM 作为 Master,完全掌控参数配置。 | 需要深度自定义 Master 参数(如修改 API Server 启动参数)的特殊场景。 | 需支付 Master 机器费用,不提供控制平面 SLA。 |
| Serverless 集群 | 无需管理任何节点,Pod 直接运行在腾讯云资源池中。 | 突发业务、离线计算、在线推理,不想管理服务器。 | 按 Pod 资源使用量计费。 |
1.2 运行时 (Runtime) 选型¶
- Containerd (推荐):更轻量级、更高性能,调用链更短,是 K8S 社区推荐的默认运行时。
- Docker:成熟度高,但由于 K8S 移除了 Docker Shim,会带来额外的开销。仅建议在极度依赖 Docker in Docker 或特定遗留场景下使用。
1.3 操作系统选型¶
推荐:Tencent Linux (TLinux)
- 内核优化:腾讯云团队维护,针对容器场景优化了内核,解决了常见的 kmem account leakage (内存泄漏) 和 soft lockup 等问题。
- 兼容性:在腾讯内部及大规模生产环境中经过验证,兼容性最好。
- 其他选项:CentOS(已停止维护,不推荐)、Ubuntu(互联网行业常用,兼容性较好)。
二、Service 转发模式选型¶
K8S Service 负责集群内的服务发现和负载均衡,TKE 提供两种模式:
| 模式 | 原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| IPVS (推荐) | 基于内核 LVS 实现四层负载均衡。 | 高性能,支持复杂的负载均衡算法(最小连接、加权等),大规模集群规则刷新快。 | 排查问题需要熟悉 LVS 命令。 | 生产环境首选,特别是大规模集群 (>1000 Service)。 |
| IPTables | 基于 Linux Netfilter 规则。 | 稳定性极高,规则简单直观。 | 规则线性匹配,Service 数量多时性能下降严重。 | 小规模集群,或对稳定性有极致要求的场景。 |
第三部分:容器网络插件选型 (关键)¶
本部分导读
网络模式决定了容器的性能和互通性,一旦选定后期更改极为困难,请务必根据业务场景慎重选择。
TKE 提供三种主要网络插件:
3.1 Global Router 模式 (网桥/路由模式)¶
- 原理:容器网段独立于 VPC,通过 Docker Bridge (cbr0) 连接。跨主机通信依赖 VPC 路由表。
- 特点:
- 容器 IP 不占用 VPC 的 IP 资源。
- 性能略有损耗(经过两次 Bridge)。
- 不支持容器固定 IP。
- 适用场景:对网络性能要求不高、VPC IP 资源紧缺的普通业务场景。
3.2 VPC-CNI 模式 (弹性网卡直通) —— 推荐¶
- 原理:容器直接使用 VPC 的子网 IP(弹性网卡 ENI 或辅助 IP)。
- 特点:
- 高性能:容器与 CVM 处于同一网络平面,无网桥损耗(性能提升约 10%)。
- 支持固定 IP:Pod 重启后 IP 不变(适合传统架构迁移)。
- 支持直通 POD:CLB 直接绑定 Pod IP,流量不经过 NodePort 转发。
- 限制:消耗 VPC IP 资源,受限于节点可绑定的弹性网卡数量。
- 适用场景:对网络时延敏感、高并发、需要固定 IP 或 CLB 直通的场景(如游戏、核心微服务)。
3.3 Cilium Overlay 模式¶
- 原理:基于 eBPF 和 VXLAN 隧道封装。
- 特点:
- 云上节点和第三方节点(混合云)可共享容器网段。
- 解耦底层网络,容器 IP 独立。
- 存在约 10% 的封装性能损耗。
- 适用场景:混合云、分布式云架构,需要跨云统一网络管理的场景。
选型总结表:
| 需求 | 推荐模式 |
|---|---|
| 追求极致性能 | VPC-CNI |
| 需要 Pod 固定 IP | VPC-CNI |
| VPC IP 资源极其有限 | Global Router |
| 混合云/跨环境互通 | Cilium Overlay |
第四部分:节点管理与弹性伸缩¶
一、节点类型选型¶
- 原生节点 (Native Node):基于 CVM 创建,最通用的类型。
- 超级节点 (Super Node):通常指基于 EKS 的虚拟节点,无服务器维护,适合突发流量。
- 注册节点:将用户 IDC 的物理机或虚拟机注册到 TKE,实现混合云管理。
二、集群弹性伸缩 (Cluster Autoscaler, CA)¶
TKE 支持根据 CPU、内存等指标自动增加或减少节点数量。
2.1 最佳实践原则¶
- 基于 Request 扩容:CA 的触发条件是“集群中有 Pod 因为资源不足处于 Pending 状态”。因此,务必为工作负载(Workload)配置合理的
Request值。 - 多伸缩组配置:
- 建议配置多个伸缩组,分布在不同的可用区 (AZ),以实现容灾。
- 混合机型:在伸缩组中配置多种同规格机型,防止某种机型售罄导致扩容失败。
- 成本优化:
- 可以创建包含竞价实例 (Spot Instance) 的伸缩组,用于运行无状态、可中断的离线计算任务,大幅降低成本。
- 节点池管理:使用“节点池”功能对不同配置的节点进行分组管理(如 AI 节点池、Web 节点池),便于定向调度和独立扩缩容。
第五部分:TKE 结合 DevOps 持续交付¶
容器技术是实现 DevOps 的基石。TKE 可以与腾讯云生态工具无缝结合,实现 CI/CD。
5.1 核心组件¶
- TCR (Tencent Container Registry):企业级容器镜像仓库,提供镜像扫描、全球同步等功能。
- Coding / 蓝盾:提供代码托管和 CI/CD 流水线服务。
5.2 自动化流水线场景¶
- 推送代码触发:
- 开发人员提交代码到 Git 仓库。
- 触发 Coding 流水线:编译代码 -> 构建 Docker 镜像 -> 推送到 TCR。
- 触发 TKE 部署:自动更新 Deployment 的镜像版本,完成滚动更新。
- 镜像推送触发:
- 本地构建镜像并推送到 TCR。
- TCR Webhook 触发 TKE 集群的应用更新。
课程总结¶
本课程详细介绍了容器服务 TKE 的全貌。在实际生产落地中,建议遵循以下黄金法则:
- 集群:优先选择托管集群,Master 节点交给腾讯云运维。
- OS:优先选择 Tencent Linux,获得最佳内核支持。
- 网络:性能敏感型业务首选 VPC-CNI 模式;IP 紧缺场景选择 Global Router。
- 代理:Service 转发模式首选 IPVS。
- 伸缩:合理配置 Request 值,利用多可用区和竞价实例伸缩组平衡高可用与成本。
通过合理的架构设计和配置,TKE 将成为您业务高效、稳定运行的坚实底座。