APP下载

Container周报第103期:误删50节点K8s丛集为何3小时才能复原?Spotify揭自家事故幕后经验

消息来源:baojiabao.com 作者: 发布时间:2024-05-10

报价宝综合消息Container周报第103期:误删50节点K8s丛集为何3小时才能复原?Spotify揭自家事故幕后经验

5/30~6/12重要Container新闻精选

#失败经验 #Spotify
误删50节点K8s丛集为何3小时才能复原?Spotify揭自家事故幕后经验

线上音乐串流服务Spotify一位基础架构工程师David Xia,在今年欧洲KubeCon大会上分享了自家Kubernetes丛集一次意外事件。拥有上亿用户的Spotify,旗下开发者高达1千人,经常要在上万台VM上部署程式码。Spotify主要使用了GCP云端服务,在云端容器服务GKE上拥有3套生产丛集,分别负责欧洲、亚洲和美国,每小时会自动备份一次。

2018年11月时,有一次工程师为了测试GKE的新功能,新增了一个测试用的丛集,完成测试后,工程师要删除这个测试丛集来节省资源,却不小心删除了负责美国区用户的一个50节点的丛集。David眼看着删除指令关闭了一个又一个节点,问遍同事如何紧急停止这个删除指令,“完全没办法阻止,只能重建丛集。”他坦言,后来Spotify足足花了3.25小时才重建了这个丛集。

为何这么久?重建过程中,他才发现,丛集建立Scrips有臭虫,参考文件的内容不完整也不尽正确,导致他们设计的丛集建立程式,无法反复使用。一个月,Spotify试图将防止误删丛集的做法,列入自家的开发管理规范中,并采用了基础架构管理工具Terraform来避免丛集部署的意外,但是,这又引发了另一起事故。这次是要将两个现成丛集合并成一个新的丛集时,建立新丛集时因为权限不够而失败,工程师后来扩充了权限后才能执行。尽管合并工作顺利完成后,却导致Terraform误判丛集需要异动,而删除了整个亚洲区丛集,甚至连美国区丛集也一起删除。

David表示,出错难免,但失败也要有因应计划。后来,Spotify采取了3个因应对策,第一是执行K8s服务合并时,分批进行。第二是改变在K8s上登录服务的作法,第三是建立K8s实例出错时,可以快速由非K8s实例接手的备援机制。

#失败经验 #Datadog
SRE注意,要小心Kubernetes常见十大类问题

监控工具服务商Datadog两位工程师Laurent Bernaille和Robert Boll在今年欧洲KubeCon分享了自家经验中,管理Kubernetes常遇到的十种问题。Datadog投入Kubernetes专案超过2年多,自家服务也大力拥抱,最大规模的一个K8s丛集高达2千个节点,平均K8s丛集节点数也多有1,000~1,500之多。第一类问题是DNS管理问题,而且最常造成K8s事故的问题也多半是DNS问题。第二类常见问题则是任务启动失败而导致映像档抓取失效。第三是kubectl命令列工具操作出错。再者,应用程序Pod排程没有考虑到新节点,Log档10倍速度暴增塞满储存空间、大量副本和重制导致Pod失踪、Cassandra丛集内有鬼(未预期的操作)、部署程序越来越慢、容器化过程出包、关超慢的Pod关闭过程(Termination)。他们提醒,要避免出错得特别留意4件事,使用管理Pod的DaemonSet要小心,认清DNS管理向来很难,云端基础架构不见得很透明,最后则是容器不一定真的顺利容器化了。

#GKE #云端排程
Google正式推出云端排程工作服务,GKE也能自动派工

Google正式推出其云端托管的排程工作(Cron Job)服务Cloud Scheduler,使用者可以用Cloud Scheduler来触发任何批次、大资料或是云端基础设施操作,而且这个功能不只可以在GCP上使用,还能从用户本地端或是第三方资料中心来触发目标工作。包括GCP容器服务GKE、Compute Engine、Cloud Run以及Cloud Functions等多项GCP服务,甚至可以是在本机端应用程序,都可以透过Cloud Scheduler来自动派工。更多报导

#Fargate #基础架构管理
Pulumi开源基础架构即程式码框架Crosswalk,能简化AWS各类部署工作

基础架构即程式码供应商Pulumi开源了一个可用于部署AWS工作负载的框架Pulumi Crosswalk for AWS,提供基础架构即程式码元件,并内建AWS最佳实践,帮助用户根据需求,将应用程序部署到AWS上。可支援多种AWS服务,包括无服务器服务Lambda和API Gateway,还有容器服务ECS以及Fargate,以及像是热门的Kubernetes服务EKS、跨网络的VPC和SecurityGroups,而监控服务Cloudwatch Dashboards与Alarms等都有支援。由于Crosswalk的模块建构在AWS的原生功能模组之上,用户可以自由地使用高阶元件,或是使用低阶平台原语,也能根据需求混合使用。更多报导

#DevOps #Git
强化Azure DevOps程式码提交机制,微软释出Multi-Cherry-Pick扩充套件

为了让Azure DevOps开发者,可以更简单地同时对多分支的应用提交,微软释出了PR Multi-Cherry-Pick扩充套件,该套件是使用git Cherry-Pick指令,能够自动应用程序码变更到多个分支上。扩充套件Multi-Cherry-Pick的名称来自git指令Cherry-Pick,这是用来接受一个或多个现有的提交(Commit),并将每个提交的更改当作新的提交,应用到不同的分支上的操作。更多报导

#架构重构 #Kubernetes #IBM
IBM花2年改用K8s重新打造自家云端平台,部署上万内部应用的现代化IT新架构首度公开

2年前,IBM展开了旗下云端平台产品的大整顿,不光只是重整品牌,还找来了20年前开发出IBM第一代SOA和Web产品的IBM Watson和云端平台首席架构师Andrew Hately,大力采用Docker、Kubernetes、Linux和Cloud Foundry,设计出全新的现代化IT架构。3年前,IBM开始研究跨云管理架构,决定大力投入Kubernetes开源专案,2年前,IBM悄悄地展开了自家内部平台的架构改造任务,甚至不惜重构自家云端平台,要将大部分的IBM软件和云端平台,都搬上Kubernetes。IBM先从数据库平台开始着手改造,例如将天气预测应用改部署到IBM云上的Kubernetes环境中,后来更进一步扩大到所有的分析和AI产品,都转而部署到Kubernetes环境上。Andrew Hately表示,去年终于完成了这个庞大的平台重构计划,除了用来管理基础架构上运算、储存和网络的控制台程式,以及基础架构的虚拟机器(VM)不是采用Kubernetes,IBM其余的云端服务,甚至内部所用的上万支应用程序,几乎全都搬上了Kubernetes。完整报导

责任编辑/王宏仁

更多Container动态

  • 红帽和容器储存新创联盟,要打造K8s上的HCI平台
  • Information Builders分析软件开始提供Docker映像档安装版本,方便用户部署到公云

@资料来源:iThome整理,2019年5月

2019-06-18 10:59:00

相关文章