摘自 Kubernetes 实践指南需求与背景Kubernetes 默认不支持原地升级,使用腾讯云容器服务也一样,也没有集成相关插件来支持,可以安装开源的 openkruise 来实现,本文介绍如何在腾讯云容器服务上利用
腾讯云原生 TKE 团队 【校招生】招募中! 团队介绍 腾讯云原生TKE是一款基于 Kubernetes 构建的高度可扩展的高性能容器管理服务,是腾讯集团对内和对外统一的云原生技术底座,实现了云上云下、任意位置、任意类型资源的统一管理,运行了数千万核心规模的业务 TKE 团队独创了“原生节点”和“超级节点”产品形态、推出云上首个在离线混部产品化方案,开创了 FinOps 与云原生结合的模式,最早落地了 K8s on K8s 架构,稳定支撑了公司内外数万个 Kubernetes 加入我们,你将深入参与到腾讯云原生产品建设,服务微信、QQ、腾讯会议、王者荣耀、小红书、富途、微众等重点业务,构建稳定、高性能、低成本的TKE平台,让你的每一分技术都创造切实的价值! 汇聚腾讯云原生技术 云说新品、云研新术、云赏资讯 x
李波,腾讯云后台研发工程师,负责 TKE 版本发布及k8s技术支持。 背景 TKE 发行版(TKE Kubernetes Distro)是由腾讯云 TKE 发布的 K8s 发行版本,用于帮助用户创建安全可靠的 K8s 集群。 用户可依托 TKE 发行版在自建或者托管机房、物理机或者虚机上,运行与 TKE 完全一致的 K8s 服务。TKE 发行版集群可无缝与腾讯云 TKE 集成,进而组建混合云。 每一个 TKE 发行版都遵循腾讯云 TKE 和 K8s 社区标准新版本兼容性的流程。 TKE 发行版在保证兼容性的基础上,对 K8s 进行了扩展,并且与腾讯云 TKE 服务保持版本一致。 对于有实用价值 KEP 会先于社区支持,让用户提前享受到云原生技术进步。
林顺利,腾讯云原生产品经理,负责分布式云产品迭代和注册节点客户扩展,专注于云原生混合云新形态的推广实践。 但是当下,我们面临的是云原生的新场景而非单纯的上云,因此,我们基于传统混合云的解决方案进一步深入思考,首创出 IDC 轻量级云原生解决方案 - 注册节点 :IDC 节点和 TKE 打通,云上作为管控面来提供管理 注册节点,IDC 轻量级云原生最佳路径 TKE 注册节点是针对混合云部署场景,全新升级的节点产品形态,解决了企业在 IDC 运维过程中面临的各类问题: 资源利旧和利用率提升 充分利用 IDC 资源,并通过 节点托管运维 免去在本地搭建、运维 K8s 集群的成本,无缝集成腾讯云云原生相关服务,涵盖日志、监控、审计、存储、容器安全等能力,用户仅需要运维本地服务器即可,并提供节点声明式运维的能力,支持节点快速升级及回滚 总结 腾讯云 TKE 中提供了 3 种节点运维的新范式: 声明式节点运维-原生节点; 有节点的 Serverless – 超级节点; IDC 轻量上云–注册节点; 3 种节点类型分别面向客户不同的业务场景
在系列文章(1)中,实现了用云原生监控采集TKE集群中节点上守护进程的监控指标。接下来,进一步描述下如何用云原生监控来采集TKE集群外组件的监控指标,比如Kong。 前提:网络互通 采集方案 image.png 1 云原生监控支持的监控配置入口有三个:ServiceMonitors、PodMonitors、RawJobs,其中ServiceMonitors是已k8s 2 k8s集群中的service对象,可以单独创建endpoints来关联。 subsets: - addresses: - ip: 192.0.2.42 ports: - port: 8001 name: http 2 在云原生监控控制台上创建
构建分层精准的云原生技术方案 腾讯云TKE提供三种核心资源模式,形成完整技术支柱: 云函数(SCF):实现毫秒级热启动(20ms)与秒级冷启动(10s),按实际代码运行时长计费,实现“自来水式”付费。 原生节点:深度融合腾讯自研内核增强与FinOps能力,支持CPU Burst、内存压缩等优化技术。 实现资源利用率与成本的结构性优化 通过FinOps框架与系列优化技术,TKE助力客户实现资源效能的显著提升: 某客户集群通过CPU Burst和动态内存压缩技术,在处理93核(分配率51%,利用率2%) 智能辅助驾驶场景的算力错峰实践 某智能辅助驾驶企业采用TKE构建动态GPU资源池,解决海量数据处理(日处理1600+TB数据)与高成本挑战: 方案:通过智能调度器,使离线处理任务在在线任务释放资源的空闲时段 腾讯云TKE的技术领先性与客户验证 TKE集成了腾讯自研的TencentOS RUE资源隔离技术,确保在线与离线业务混部的稳定性。
数据来源: 2024 腾讯全球数字生态大会 (Tencent Global Digital Ecosystem Summit) 主讲人: 何鹏飞 一、 产品定位与核心亮点 TKE AppFabric 是腾讯云推出的全生命周期高可用的云原生应用平台 二、 产品应用场景 针对当前云原生应用管理中的核心瓶颈,TKE AppFabric 主要服务于以下业务场景: 多集群容灾与资源调度场景 痛点: 应用创建时难以控制资源在不同物理位置的分布比例,不满足容灾要求 复杂的应用运维与观测场景 痛点: 管理大量 K8S 资源门槛高,资源间缺乏统一归属关系;资源分散在多个集群,难以统一观测和控制。 受众: 研发与运维人员,特别是需要频繁进行灰度发布和流量管理的团队。 功能框架 TKE AppFabric 将应用定义为一系列 K8S 资源对象的集合(如 Subscription、Globalization、Load、Service、Configmap、HPA 等),通过抽象层屏蔽底层集群差异 低门槛使用: 仅需学习应用如何编排,使用门槛低;声明式编排符合云原生规范。 应用视角管理: 更接近应用维护场景,易于观测、运营,管理性更强。 5. 荣誉背书 文中未提及具体奖项或第三方认证信息。
在TKE集群中,有些组件是以daemonSet或者二进制的方式运行在集群中的节点上,作为了节点上的守护进程。对于这类组件的监控采集,也是支持接入到TKE的云原生监控中。 云原生监控 云原生监控的数据采集配置支持了三个配置入口:ServiceMonitor、PodMonitor、RawJob,其中ServiceMonitor、PodMonitor属于promethues 本文描述的Docker Daemon的监控采集也主要是基于云原生监控的RawJob配置入口来实现。 采集方案 [image2021-2-25_14-34-49.png] 1 通过新增RawJob配置,应用到云原生监控,来采集TKE集群中节点上的docker daemon的监控。 2 云原生监控通过k8s服务发现配置(kubernetes_sd_config)自动从TKE集群同步所有的node实例,并作为当前RawJob的target实例。
以下通过视频方式来分别介绍“搭建wordPress”、“腾讯云TKE容器创建Nginx”和“手工搭建Hello world 服务”,因为很多细节不能整理入博客建议视频方式学习,并同步以下讲义进行学习的回顾与操作 搭建wordPress:https://www.bilibili.com/video/BV1AK411M7TR 腾讯云TKE容器创建Nginx:https://www.bilibili.com/video 腾讯云TKE容器创建Nginx 在使用容器前首先要创建集群,并购买cvm服务器资源。 查看构建结果 docker images 上传镜像到腾讯云镜像仓库,先打标签。
3 本节内容本节内容做为多租户系列方案的第一篇,会介绍如何采用腾讯云的TKE容器集群和云原生Kong网关实现多租户的应用架构。关于多租户方案的其他部分会在后续章节中介绍。 腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景 5.1 基于服务的网关多租户方案云原生Kong网关中的网关服务可以直接关联后端TKE集群上的服务,并配置路由策略,配置后从Kong网关的管理台可以看到后端TKE容器集群上的服务列表,如下图:图片该方案适用于上一章节中基于容器命名空间的隔离 在云原生Kong网关中创建一组网关服务,分别关联后端TKE容器集群上不同租户的服务。与之前章节中相同。2. 在云原生Kong网关中启用“JWT“插件,可以在Global、服务或者路由级别。 图片6 小结在本章节中,我们介绍基于腾讯云TKE容器集群和云原生Kong网关实现的多租户架构方案,适用于云原生的微服务容器化的多租户应用。后续我们会持续介绍更多的多租户方案。
-l8xrw": Error response from daemon: mkdir /var/lib/docker/aufs/mnt/1f09d6c1c9f24e8daaea5bf33a4230de7dbc758e3b22785e8ee21e3e3d921214 问题十:Pod 状态一直 Pending,旧 pod 无法解挂 cbs 云盘 问题描述:旧 pod 无法解挂 cbs 云盘。 cbs云盘,但由于磁盘未被之前的节点解挂,所以新的节点无法进行挂载导致pod一直pending。 解决方案:在腾讯云控制台找到对应的云主机或磁盘,手动对磁盘进行卸载,然后pod自动重启时就可以成功挂载了(也可以delete pod让它立即重新调度) 图片.png 问题十一:Pod 状态一直 Pending TKE托管集群通常不会出现此情况,master 不受节点安全组限制 如果是TKE独立集群,检查节点安全组是否对master节点放通了 10250 端口,如果没放通会导致 apiserver 无法访问 kubelet
开发者学习 kubernetes 可以使用的环境有几种: 使用云厂商提供的套装 在云主机上自己安装和配置 在开发者主机上安装和配置 从成本上来说,在开发者主机上安装和配置是比较方便的。 user: kind-hello-k8s name: kind-hello-k8s - context: cluster: kind-test user: kind-test 集群,例如这里有两个kind创建的集群:kind-hello-k8s 和 kind-test 以及一个 minikube 创建的集群minikube context 列出了每个 k8s 集群对应的上下文信息 Pod是 K8s 的最小可部署单元。 worker 两种节点 我们也掌握了安装 k8s 的概念 kubectl 可以用来和 k8s 集群通讯,是 k8s 的命令行客户端 使用 minikube/kind 可以创建学习环境 k8s 集群 使用
worker node and list the interfaces using, ip route and filter interface matching the pod IP. root@k8s-node calixxxxxxxxx -w /opt/capture.pcap & https://iximiuz.com/en/posts/container-learning-path/ https://learnk8s.io
TKE(Tencent Kubernetes Engine) 是腾讯云提供的容器服务PAAS 平台,基于kubernetes, 集成了腾讯云vpc网络,负载均衡,存储等IAAS 资源,提供容器调度、日志 在腾讯云上使用容器服务,到底是自建k8s 集群,还是直接使用TKE, 这篇文章从以下几个方面来说明各自的优势和风险。 1. 托管k8s集群,master 节点托管在腾讯云的服务器上,用户只需要购买node节点即可,无需用户自己购买和维护master 节点,适合希望节省资源成本和运维成本的用户。 自建: 使用TKE提供的CloudProvidor 插件,和腾讯云vpc 打通 使用社区的网络插件,在公有云上,基于路由协议的网络插件(如calico, flannel host-gw)都无法和vpc 丰富的集群运维经验 TKE 团队到目前为止运维了线上几千个集群,版本包含k8s 1.7 到 k8s 1.12, 遇到过各类k8s 问题,可以很快给出合理的解决方案。且有很多问题已经通过产品化规避。
腾讯云 TKE Mesh 在 Kubecon-CloudNativecon China 2019 上对外发布, 以下是同场活动中「Application Level Networking」的现场demo 2.3 安装base环境的服务 install/base_apps.yaml 包含了商城系统的9个微服务, 是k8s标准的无状态服务: deployment和service. 这时候网格里的服务还无法被外网访问到, 我们还需要对网格边缘流量进行配置. 2.4 创建 ingress gateway Istio 使用 Gateway 定义网格边缘的流量行为, 对比原生的k8s ingress , k8s ingress 依赖云平台解析和实现ingress rule, 同时k8s ingress rule只能定义简单的七层路由规则和virtual host. LB, TKE Mesh Gateway对这些组件进行和整合, 用户只需要配置Gateway的基本流控规则, TKE Mesh会自动实现相关的service, proxy pod 以及腾讯云LB的配置.
腾讯云TKE“无损业务”升级TKE节点的方法 原理 1. 设置TKE节点为不可调度,记TKE节点名为a; 2. 驱逐节点下的非DaemonSet类型的pod。 移除TKE节点a; 4. 重新将TKE节点a所在CVM加入TKE集群,TKE节点a的会被升级为TKE集群主节点大版本的最新release版本; 5. 依次将所有TKE节点执行步骤1至4,完成所有TKE节点的版本升级; 核心指令/界面操作 查看节点: kubectl get nodes 设置节点为不可调度 kubectl cordon <NodeName 节点版本 设置节点不为不可调度 驱逐节点下的非DaemonSet类型的pod 部分pod驱逐失败时,手工结束不能正常结束的pod 部分pod驱逐失败时,重新部署不能正常驱逐的pod 移除TKE 节点 重新将TKE节点a所在CVM加入TKE集群 节点成功加入口,确认TKE节点版本已升级为最新
作者王涛,腾讯云高级工程师,从事云计算行业8年,拥有5年多容器研发经验,近两年主要负责腾讯自研业务上云的大规模云原生平台的研发设计工作。 大家从文章8天扩容100万核,腾讯会议是如何做到的?[1]都知道腾讯会议背后的计算资源已过百万核,如此体量的业务,如何通过云原生技术提升研发和运维效率,是一个非常有价值的课题。 这里我将为大家揭秘腾讯自研上云容器平台TKEx在支持腾讯会议全量云原生化上云背后的技术。 TKEx平台是以腾讯云容器服务(Tencent Kubernetes Engine, TKE)为底座,服务于腾讯自研业务的容器平台。腾讯自研业务类型众多、规模超大,云原生上云面临的挑战可想而知。 腾讯自研业务在TKE上沉淀的优秀组件和方案,后面会在公网TKE产品中提供给公网客户,也在计划开源,敬请期待。 参考资料 [1] 8天扩容100万核,腾讯会议是如何做到的?
应对混合云资源管理与成本控制的核心挑战 企业上云过程中面临IDC物理机资源利旧困难、GPU利用率低(仅10%-20%)、自建K8s集群运维成本高(需专门团队维护监控/日志系统)、云上云下资源无法统一调度以及边缘节点弱网连接等核心痛点 通过注册节点实现轻量化云原生转型 腾讯云TKE注册节点提供专线版和边缘版两种模式,将非腾讯云主机托管至TKE集群:用户提供计算资源,TKE负责全生命周期管理。 核心能力包括: 资源利旧与利用率提升:通过Request推荐、动态调度、节点超卖及qGPU算力隔离技术提升资源效率 节点托管运维:集成云原生监控、日志服务CLS、容器安全等能力,用户仅需维护本地服务器 腾讯会议混合云:边缘节点50个节点20分钟完成部署,成本从百万级降至十万以内级 典型客户实践验证方案有效性 PCG:将深圳、上海IDC机器接入同地域TKE集群,实现云上云下一致体验(运行时/K8s版本 (x86/ARM/多种OS) 腾讯云内部大规模运营经验沉淀的自动巡检与故障自愈能力 该方案已获多家行业头部客户部署验证,成为企业实现IDC资源云原生转型的首选技术方案。
数据与观点来源: 2024腾讯全球数字生态大会(主讲人:何鹏飞) 一、 产品定位与核心亮点 TKE AppFabric 是一款全生命周期高可用的云原生应用平台,旨在为应用管理提供稳定底座与灵活引擎。 二、 产品应用场景 目标受众:面临跨集群部署与大规模云原生应用管理的研发与运维团队。 资源碎片化与管理低效:应用本质上是一系列 K8S 资源(如 Workload, Service, Configmap, HPA 等)的集合。 功能框架 TKE AppFabric 的底层架构分为两大核心模块:服务应用高可用与强大的多集群引擎。 2. 声明式应用编排能力: 提供纯粹的应用视角,易于日常观测与运营,完全符合云原生规范。 支持应用级的多可用区扩缩容、流量治理。 发布管控:支持变更分批、暂停、回滚,确保发布不影响线上服务。
摘自 Kubernetes 实践指南概述本文介绍在腾讯云容器服务上如何安装 KubeSphere 及其踩坑与注意事项。 安装步骤具体安装步骤参考 KubeSphere 官方文档:在腾讯云 TKE 安装 KubeSphere。 踩坑与注意事项cbs 磁盘容量以 10Gi 为倍数腾讯云容器服务默认使用 CBS 云硬盘作为存储,容量只支持 10Gi 的倍数,如果定义 pvc 时指定的容量不是 10Gi 的倍数,就会挂盘失败。 kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_tke_cloud_tencent_com_pod_type scrape-config.yaml修改 Prometheus CR:kubectl -n kubesphere-monitoring-system edit prometheuses.monitoring.coreos.com k8s