误删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实例接手的备援机制。

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管理向来很难,云端基础架构不见得很透明,最后则是容器不一定真的顺利容器化了。

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

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

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的塬生功能模组之上,用户可以自由地使用高阶元件,或是使用低阶平台塬语,也能根据需求混合使用。

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

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

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。

—完—

误删50节点K8s集群为何3小时才能复原?Spotify揭自家事故幕后经验相关推荐

  1. 基于VMware采用kubeadm方式部署单节点k8s集群(练习使用)

    1.虚拟机安装centos7.6 1.1 导入镜像 这里选择的版本是:CentOS-7-x86_64-DVD-2207-02.iso(即centos7.6的镜像) 镜像下载地址: http://mir ...

  2. kubernetes (二):通过Tectonic在本地搭建多节点k8s集群

    下载文件 我的环境是window系统 (要安装vagrant 和virtualbox) 通过vagrantfile 创建 在当前目录运行  vagrant up 就可以了 会通过virtualbox ...

  3. master节点重置后添加node报错_超强教程!在树莓派上构建多节点K8S集群!

    在很长一段时间里,我对于在树莓派上搭建Kubernetes集群极为感兴趣.在网络上找到一些教程并且跟着实操,我已经能够将Kubernetes安装在树莓派上,并在三个Pi集群中工作.然而,在master ...

  4. 从零开始搭建K8S集群(二)-- 搭建K8S集群

    一.下面我们开始搭建K8S集群 配置K8S的yum源(自v1.6.0起,Kubernetes默认启用了CRI,Container Runtime Interface,详情请查看官网:https://k ...

  5. K8S(一)VMware Fusion 构建基本k8s集群

    文章目录 背景 准备 网络配置 系统初始化 kubeadm部署k8s集群 harbor私有镜像仓库构建(optional) 功能验证 harbor 私有镜像仓库功能验证 k8s集群功能验证 背景 参考 ...

  6. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造

    作者 | 张振(守辰)阿里云云原生应用平台高级技术专家 导读:2019 年阿里巴巴核心系统 100% 以云原生方式上云,完美地支撑了 双11 大促.这次上云的姿势很不一般,不仅是拥抱了 Kuberne ...

  7. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造...

    2019 年阿里巴巴核心系统 100% 以云原生方式上云,完美地支撑了 双11 大促.这次上云的姿势很不一般,不仅是拥抱了 Kubernetes,而且还以拥抱 Kubernetes 为契机进行了一系列 ...

  8. 搭建K8S集群之node节点部署

    在上一篇文章中,我们完成了K8S系列之K8S集群之Master节点部署,在这篇文章中,我们将开始部署Node节点相关的组件.在node节点上,需要部署kubelet和kube-proxy两个K8S组件 ...

  9. k8s集群节点无法创建pod解决:错误提示(Docker error : “/sys/fs/cgroup/memory/xxxx“ “no space left on device“)

    前言 最近部门的k8s 集群为了扩展,增加了两个节点,结果用了一段时间后莫名出现了以下问题,新增的这两个节点上无法创建pod 从rancher发现事件报错信息如下: 问题排查步骤 第一步: 报错信息说 ...

最新文章

  1. Bittrex交易所宣布:BCH正式加入美元交易市场
  2. memcpy-结构体的复制
  3. OpenStack监控测量服务Ceilometer安装及 API说明
  4. hdu-3342-Legal or Not--拓扑排序//两种解法
  5. cron和crontab
  6. NLP:词向量与ELMo模型笔记
  7. CSS之flex需要知道的一切(一)
  8. VScode自动跳转到某一行代码
  9. Python打包成.exe文件详细实例
  10. Effictive Java学习笔记1:创建和销毁对象
  11. Matlab Tricks(七)—— 矩阵列/列的归一化/单位化(normalize)
  12. python从入门到精通 明日科技 电子书-Python从入门到精通(明日科技出版) 源代码+课件+视频 全套...
  13. Silverlight 4常用StringFormat格式总结(转)
  14. 【PC工具】windows免安装录屏绿色软件,无需注册无水印绿色录屏软件
  15. 阿里巴巴矢量图标 iconfont 下载图标分辨率小一点、并占得内存小一点呢
  16. Java快速入门笔记-02 Java基础(基本数据类型、变量和常量、运算符、数组、字符串)
  17. ABAP的PO接口调用
  18. Idea 2022 创建 Artifacts 运行 Tomcat 步骤
  19. root精灵2020,ROOT精灵手机版
  20. 面试题 收集请求k千里马

热门文章

  1. ios 拍照 实现 连拍_如何在iOS设备上使用连拍模式拍照
  2. pta7-7旅游规划(dijkstra算法)
  3. github的使用教程
  4. centos 新建swap区文件
  5. 《微软云计算Microsoft Azure部署与管理指南》即将上市!!!
  6. javascript深拷贝和浅拷贝
  7. POJ 3080 Blue Jeans (后缀数组)
  8. c++ memcpy与strcpy的比较
  9. 网规:第4章 网络安全-4.5IDS和IPS
  10. 手把手教你学Dapr - 2. 必须知道的概念