在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一次k8s升級,滴滴直接故障12小時?

小林coding ? 來源:小林coding ? 2023-12-08 15:45 ? 次閱讀

前段時間滴滴的故障相信大家都知道了。

中斷業務 12 小時定級為 P0 級故障一點都不冤。

45f005c2-9595-11ee-8b88-92fbcf53809c.jpg

故障回顧

網上有傳言是運維人員升級 k8s 時,本來計劃是從 1.12 版本升級到 1.20,但是操作失誤選錯了版本,操作了集群降級到低版本。

從下面滴滴技術的博客中也可以看到滴滴的升級方案:

4603b1c6-9595-11ee-8b88-92fbcf53809c.jpg

滴滴為了降低升級成本,選擇了原地升級的方式。首先升級 master,然后升級 node。我們一起看一下 k8s 官方架構:

462f33c8-9595-11ee-8b88-92fbcf53809c.jpg

img

master(官網圖中叫 CONTROL PLANE) 節點由 3 個重要的組件組成:

cloud-controller-manager:負責容器編排;

kube-api-server:為 Node 節點提供 api 注冊服務;

scheduler:負責任務調度。

Node 節點向 kube-api-server 注冊成功后,才可以運行 Pod。從滴滴的博客中可以看到,采用原地升級的方式,升級了 master 之后,逐步升級 Node,Node 會有一個重新注冊的過程,不過既然選擇這個方案,運維人員應該反復演練過,重新注冊耗時應該非常短,用戶無感知。

但是 master 選錯版本發生降級時,會把 kube-api-server 污染,Node 節點注冊 master 失敗,又不能快速回滾,這樣 Node 節點被集群認為是非健康節點,上面的 pod 被 kill 掉,服務停止。

集群隔離

463d72bc-9595-11ee-8b88-92fbcf53809c.png

這次故障大家討論的話題還有一個比較熱門的就是 k8s 集群隔離,因為多個業務比如打車業務、單車業務同時掛,說明都在一個集群上,沒有單獨建集群來做隔離,這可能也是博客中說的“最大集群規模已經遠遠超出了社區推薦的5千個 node 上限”的原因。

當然也有可能當時野蠻生長的時候,為了快速上線開展業務,就多個業務建在了一個集群上,后來可能也有過拆分的想法,但發現業務上升空間已經很小,現有集群可以維持,所以就擱置了。

拆分成多個集群好處很明顯,業務隔離,故障隔離,可靠性增加,就拿這次升級來說,先升級一個不太關鍵、業務量也比較小的集群做試點,升級成功了再逐個升級其他集群。

但缺點也很明顯,運維復雜度增加,成本增加。

升級方案

工作這些年,也參與過一些大規模的平臺重構,但原地升級真的是沒有接觸過,主要原因就是架構師們不太愿意選擇原地升級的方案。而他們主要出于下面考慮:

業務系統原地重構升級,不像推翻重做能夠更徹底地升級改造;

考慮對業務影響最小,一般是要通過灰度發布漸進地把流量切過去;

替換升級的方案,更能展現團隊的產出。

對于滴滴這樣的大公司,相信運維團隊大咖如云,無論采用哪種方案,肯定都是經過反復驗證的,或許不要選錯版本,原地升級也沒有問題。

降本增效

看了微博上滴滴道歉的留言區,好多人猜測這次事故的原因是降本增效,裁掉了一線高成本的運維,保留了成本低的新人

從數據上來看,出于降本增效的目的,滴滴這兩年確實少了很多人,但我不相信這是造成事故的直接原因。

在快速增長的階段,確實需要投入大量的技術人員來建設系統。但國內互聯網規模也基本見頂了,一個業務經營這么多年,不會再有爆發式地增長,系統也已經非常穩定。這樣的背景下,公司確實用不了這么多技術人員了,留下部分人員來維護就夠了。

所以,無論哪家公司,降本增效是業務穩定后必定會經歷的階段。想想滴滴這次 12 小時故障的損失,能比養 1000 個技術人員的成本高嗎?

對于我們研發人員,如果有機會進入快速增長的公司,那就抓住機會多掙錢,被裁員的時候平常心看待就可以了,想在一家公司干到退休太難了。同時也要看到自己給公司帶來的價值,千萬不要認為我們技術厲害就比那個 PPT 工程師更有價值。

總結

本文根據網上流傳的滴滴故障的原因,分析了升級方案和降本增效。

最后,又快年末了,希望大家都能維護好自己的系統,不要發生嚴重故障影響自己的年底考核。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 節點
    +關注

    關注

    0

    文章

    218

    瀏覽量

    24431
  • MASTER
    +關注

    關注

    0

    文章

    104

    瀏覽量

    11288
  • 滴滴
    +關注

    關注

    1

    文章

    193

    瀏覽量

    12974

原文標題:一次 k8s 升級,滴滴直接故障 12 小時?

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解決方案與選型對比

    摘要: 今天,日志服務再次升級Kubernetes(k8s)的日志解決方案。1分鐘內即可完成整個集群部署,支持動態擴容,提供采集宿主機日志、容器日志、容器stdout等所有數據源的站式采集。點此
    發表于 02-28 12:49

    如何利用K8S全面擁抱微服務架構?

    K8S是第個將“切以服務為中心,切圍繞服務運轉”作為指導思想的創新型產品,它的功能和架構設計自始至終都遵循了這指導思想,構建在
    的頭像 發表于 10-08 15:59 ?2.7w次閱讀

    OpenStack與K8s結合的兩種方案的詳細介紹和比較

    OpenStack與K8S結合主要有兩種方案。K8S部署在OpenStack平臺之上,二是K8S和OpenStack組件集成。
    的頭像 發表于 10-14 09:38 ?2.7w次閱讀

    如何使用kubernetes client-go實踐個簡單的與K8s交互過程

    【導讀】Kubernetes項目使用Go語言編寫,對Go api原生支持非常便捷。 本篇文章介紹了如何使用kubernetes client-go實踐個簡單的與K8s交互過程
    的頭像 發表于 02-02 11:16 ?6857次閱讀
    如何使用kubernetes client-go實踐<b class='flag-5'>一</b>個簡單的與<b class='flag-5'>K8s</b>交互過程

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對強大的集群,成千上萬的容器,突然感覺不香了。 這時候就需要我們的主角 Kubernetes 上場了,先來了解K8s 的基本概念,后面再介紹實踐,由淺入深步步為營
    的頭像 發表于 06-02 11:56 ?3445次閱讀

    簡單說明k8s和Docker之間的關系

    這篇文章主要介紹了k8s和Docker關系簡單說明,本文利用圖文講解的很透徹,有需要的同學可以研究下 最近項目用到kubernetes(以下簡稱k8s,ks之間有
    的頭像 發表于 06-24 15:48 ?3416次閱讀

    K8S集群服務訪問失敗怎么辦 K8S故障處理集錦

    問題1:K8S集群服務訪問失?。?? ? 原因分析:證書不能被識別,其原因為:自定義證書,過期等。 解決方法:更新證書即可。 問題2:K8S集群服務訪問失??? curl: (7) Failed
    的頭像 發表于 09-01 11:11 ?1.6w次閱讀
    <b class='flag-5'>K8S</b>集群服務訪問失敗怎么辦 <b class='flag-5'>K8S</b><b class='flag-5'>故障</b>處理集錦

    K8S(kubernetes)學習指南

    K8S(kubernetes)學習指南
    發表于 06-29 14:14 ?0次下載

    mysql部署在k8s上的實現方案

    的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之。這里主要講 mysql 部署在 k8s 上,mysql 部署在 k8s 上的優勢主要有以下幾點。
    的頭像 發表于 09-26 10:39 ?2514次閱讀

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡稱K8s,是個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful
    發表于 07-19 13:14 ?1116次閱讀

    什么是K3sK8s?K3sK8s有什么區別?

    Kubernetes,通??s寫為 K8s,是領先的容器編排工具。該開源項目最初由 Google 開發,幫助塑造了現代編排的定義。該系統包括了部署和運行容器化系統所需的切。
    的頭像 發表于 08-03 10:53 ?7562次閱讀

    k8s生態鏈包含哪些技術

    1. Apache APISIX Ingress 定義 ? 在 K8s 生態中,Ingress 作為表示 K8s 流量入口的種資源,想要讓其生效,就需要有個 Ingress Con
    的頭像 發表于 08-07 10:56 ?1243次閱讀
    <b class='flag-5'>k8s</b>生態鏈包含哪些技術

    K8S落地實踐經驗分享

    k8s 即 Kubernetes,是個開源的容器編排引擎,用來對容器化應用進行自動化部署、 擴縮和管理。
    的頭像 發表于 01-02 11:45 ?1163次閱讀
    <b class='flag-5'>K8S</b>落地實踐經驗分享

    k8s云原生開發要求

    Kubernetes(K8s)云原生開發對硬件有定要求。CPU方面,建議至少配備2個邏輯核心,高性能CPU更佳。內存至少4GB,但8GB或更高更推薦。存儲需至少20-30GB可用空間,SSD提升
    的頭像 發表于 10-24 10:03 ?222次閱讀
    <b class='flag-5'>k8s</b>云原生開發要求

    k8s和docker區別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術的兩大流行工具。Docker關注構建和打包容器,適用于本地開發和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環境,具備自動化
    的頭像 發表于 12-11 13:55 ?104次閱讀
    主站蜘蛛池模板: 嘿嘿午夜| 午夜日韩精品| 羞涩妩媚玉腿呻吟嗯啊销魂迎合| 色天使视频| 国产乱淫a∨片免费视频| 人人插视频| 免费看真人a一级毛片| 国产精品毛片久久久久久久| 午夜精品久久久久久91| 天天干夜夜想| 玖操在线| 男女交性永久免费视频播放| 四虎最新网站| 四月婷婷七月婷婷综合| 狠狠色噜噜狠狠狠狠奇米777| 天天色天天干天天| 在线二区| 三级黄色免费| 伊人网视频| 91大神在线免费观看| 亚洲精品二区中文字幕| 69久久夜色精品国产69| 亚洲伊人网站| 黄色片视频网| 亚洲看片| 在线免费视频一区二区| 色偷偷97| 天天综合色天天综合网| 特黄aaaaaa久久片| 久久夜色精品国产亚洲| 丰满放荡岳乱妇91www| 天堂视频网| 久久亚洲精品玖玖玖玖| 成人影院免费观看| 色天使色婷婷在线影院亚洲| 天天操婷婷| 中国男女全黄大片一级| 免费看特级淫片日本| 波多野结衣福利| 啪啪黄色片| 国产精品久久久久久久久免费 |