精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

三年的Kubernetes生產經驗,我們學到了什么

云計算
Kubernetes最終使我們的生活變得更簡單,但這是一個艱難的過程。不僅僅是我們的技能和工具集,我們的設計和思維都發生了徹底的轉變。我們必須采用多種新技術,并大量投入,以提升團隊和基礎設施的能力。

【編者的話】Kubernetes之旅的主要收獲。

我們在2017年開始創建我們的第一個Kubernetes集群,當時版本為1.9.4。我們有兩個集群,一個是運行在裸金屬RHEL虛機上,一個是跑在AWS EC2上。

如今,我們的Kubernetes基礎設施由400多臺分布在多個數據中心的虛機組成。該平臺承載了很多高可用的關鍵任務的應用和系統,以管理一個擁有近4000萬臺活躍設備的大規模實時網絡。

[[416051]]

Kubernetes最終使我們的生活變得更簡單,但這是一個艱難的過程。不僅僅是我們的技能和工具集,我們的設計和思維都發生了徹底的轉變。我們必須采用多種新技術,并大量投入,以提升團隊和基礎設施的能力。

回顧過去三年Kubernetes在生產環境的經歷,我們總結了一些重要的經驗教訓。

Java應用上奇怪的問題

談到微服務和容器化,工程師們傾向于避免使用Java棧,主要是因為它臭名昭著的內存管理。不過現在情況發生了變化,多年來Java的容器兼容性得到了改善。畢竟,像Apache Kafka和Elasticsearch這類無處不在的系統都在Java上運行。

在2017-18年,我們有一些應用運行在Java 8版本上。它們通常難以理解像Docker這樣的容器環境,且常因堆內存問題和非尋常的垃圾回收機制而崩潰。我們了解到,這些都是由JVM的問題以及Linux的cgroups和namespaces引起,而這些都是容器化技術的核心點。

不過從那時起,Oracle就開始持續改善Java在容器領域的兼容性問題,甚至Java 8的后續補丁也引入了實驗性的JVM標志XX:+UnlockExperimentalVMOptions和 XX:+UseCGroupMemoryLimitForHeap來解決這些問題。

但是盡管有了這些改進,不可否認的是,與Python或Go等同行相比,Java仍然在內存占用和啟動時間慢等方面存在壞名聲。這主要是由JVM的內存管理和類加載器造成的。

現在,如果我們不得不選擇Java,那么我們要確保其是在Java 11版本或以上。我們的Kubernetes內存限制是在JVM的最大堆內存(-Xmx)的基礎上配置多1GB用于預留。例如,如果JVM使用8GB用于堆內存,那么我們為該應用在Kubernetes上的資源限制將為9GB。有了這個后,應用穩定了很多。

Kubernetes生命周期升級

Kubernetes生命周期管理例如升級或特性增強過程是很麻煩的,尤其是當你的集群構建在裸金屬設備或VM上。對于升級,我們意識到最簡單的方法就是使用最新的版本搭建一個新的集群并將工作負載從就集群遷移到新集群。為原地節點升級所做的努力和規劃是不值得的。

Kubernetes有多個活動組件需要配合升級。從Docker到CNI插件,例如Calico或Flannel,你必須小心翼翼將其拼湊在一起以使其正常工作。雖然有像Kubespray,Kubeone,Kops,Kubeaws這類工具使它更容易,但它們都有各自的短板。

我們使用Kubespray在RHEL虛機上搭建我們的集群。Kubespray很不錯,它有用于搭建集群,添加和移除節點,版本更新,以及幾乎所有我們需要在生產環境上操作Kubernetes的操作的playbook。但是,用于升級的playbook附帶了一個免責聲明,其阻止我們跳過小版本。因此要完成目標版本升級需要經歷所有中間的各個版本升級。

如果你計劃使用或者是已經在使用Kubernetes,思考下生命周期活動以及你的解決方案如何解決這個問題。構建和運行集群相對容易,但是生命周期管理是一個全新的問題,其中包含了很多活動的組件。

構建和部署

準備好重新設計你的整個構建和部署流水線。我們的構建流程和部署必須經過一個完整的轉變以適應Kubernetes環境。重構的工作不僅包含Jenkins流水線,還有使用Helm等新工具,調整新的Git流程和構建策略,給Docker鏡像打標簽,還有版本化Helm部署charts。

你將需要策略用于維護的不僅僅是代碼,還有Kubernetes部署文件,Dockerfiles,Docker鏡像,Helm charts,并設計一個新的方式將它們聯系起來。

經過幾次迭代,我們確定了以下設計。

  • 應用代碼和對應的helm chart存放在不同的Git倉庫,這允許我們來分別對它們進行版本管理。
  • 我們保存了一個包含應用版本的chart版本的組合,用來跟蹤發布。例如,app-1.2.0使用charts-1.1.0部署。如果只有Helm values文件發生變更,那么只有chart的patch版本會發生改變(例如從1.1.0升級到1.1.1)。所有的這些版本號都由每個倉庫中的版本說明文件RELEASE.txt決定。
  • 像Apacha Kafka或Redis這類無需我們構建和修改其代碼的系統應用,其工作方式有所不同。也就是說,我們沒有使用兩個Git倉庫,因為Docker標簽就是Helm chart版本管理的一部分。如果我們因升級修改了Docker的標簽,那么我們將升級chart標簽中的主版本號。 ### 存活探針和就緒探針(這是一把雙刃劍)

Kubernetes的就緒探針和存活探針是其自動解決系統問題的極好的功能。它們能在失敗時重啟容器并將流量從非健康實例上移除。但在某些特定故障條件下,這些探針將成為一個雙刃劍,會影響你的應用程序的啟動和恢復,特別是有狀態的應用例如消息平臺或者是數據庫。

我們的Kafka系統就是這個問題的受害者。我們跑了一個3 Broker 3 ZooKeeper的有狀態集群,用了replicationFactor: 3和minInSyncReplica: 2的配置。問題發生在Kafka在意外的系統故障和崩潰后啟動的時候。這導致它在啟動過程中執行額外的腳本來修改損壞的索引,根據不同的嚴重程序將耗費10-30分鐘時間。由于這個額外的啟動時間,存活探針將會不斷失敗,引發一個Kill信號讓Kafka發生重啟。由此阻礙Kafka修復索引,也無法完全啟動。

唯一的解決方法就是配置存活探針檢測中的initialDelaySeconds配置來延遲容器啟動后的評估。但是問題是很難假定一個具體的數值。有時恢復過程甚至需要一個小時,而且我們需要提供足夠的空間來考慮這個問題。但是initialDelaySeconds值設置越高,你的服務的恢復能力就越慢,因為Kubernetes在啟動失敗時將需要更長的時間來完成啟動容器。

所以折中路線就是為initialDelaySeconds字段評估一個值,以便更好地平衡你在Kubernetes中尋求的彈性和應用程序在所有故障條件(磁盤故障、網絡故障、系統崩潰等)下成功啟動的時間。

如果你使用了較新版本的Kubernetes,那么你可以使用第三類探針類型,即“Startup探針”。其會在容器啟動成功之前禁用存活和就緒探針,以確保容器的啟動過程不會被中斷。

使用外部IP暴露

我們了解到,使用靜態外部IP暴露服務會對內核的連接跟蹤機制造成巨大的損失。除非有很周密的計劃,否則它在大規模時很容易發生崩潰。

我們的集群使用了Calico CNI并使用BGP作為Kubernetes中的路由協議,同時與邊緣路由器對等。對于Kube-proxy,我們使用IPTables模式。我們在Kubernetes中托管了一個通過外部IP暴露的大規模服務,每天處理了數百萬個請求。由于所有來自SDN的SNAT和偽裝(masquerading),Kubernetes需要一個機制來跟蹤所有這些邏輯流。為了實現這一點,它使用了內核中的Conntrack

和netfilter工具來管理這些連接到靜態IP的外部連接,然后轉換成內部服務IP,然后到你的Pod IP。這都是通過conntrack表和IPTables實現的。

然而conntrack表有所限制,當你觸發限制時,你的Kubernetes集群(OS內核底層)將不再能接收新的連接。在RHEL系統上,你能通過以下命令檢查。

 

  1. $ sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_maxnet.netfilter.nf_conntrack_count = 167012  
  2. net.netfilter.nf_conntrack_max = 262144 

一些解決這個問題的方法是將多個節點和邊緣路由器對等,這樣連接到你的靜態IP的連接可以分散到你的集群上。所以如果你的集群有大量的機器,累積起來你看似可以有一個大的conntrack表來處理大量傳入的連接。

早在2017年我們開始的時候,這問題就使我們感到非常困惑,但最近Calico在2019年發表了一份關于這個問題的詳細研究報告,題目說的很貼切,“為什么conntrack不再是你的朋友”。

靈魂拷問:你絕對需要Kubernetes嗎?

三年來,我們仍然每天都在繼續發現和學習新的東西。這是一個復雜的平臺,有它自己的一些問題,特別是在建設和維護環境方面的開銷。它將改變你的設計、思維和架構,并需要提高你的團隊技能和規模,以滿足轉型的需要。

然而,如果你在云上,并且能將Kubernetes作為一種“服務”來使用,它可以減輕你的大部分開銷,主要是由平臺維護工作這方面,比如“我如何擴大我的內部網絡CIDR?”或“我如何升級我的Kubernetes版本?”

現在,我們已經意識到,你需要問你自己的第一個問題就是“你絕對需要Kubernetes嗎”。這可以幫助評估你的問題,以及Kubernetes在多大程度上解決了這個問題。

Kubernetes改造并不容易。你為它付出的代價必須能對得上你的使用范例以及它真的能正面影響提升你的平臺。如果答案是肯定的,那么可以說Kubernetes可以極大地提高你的生產力。

請記住,為技術而技術是沒有意義的。

 

責任編輯:未麗燕 來源: Dockone.io
相關推薦

2020-10-13 18:10:46

Kubernetes容器化云計算

2020-09-14 15:30:23

開發技能代碼

2020-09-22 08:09:13

Kubernetes 集群裸機

2011-12-23 10:23:45

GoogleMozilla

2015-09-06 16:03:57

2011-10-18 11:43:25

UNIXC語言丹尼斯·里奇

2023-04-26 22:52:19

視覺人臉檢測人臉對齊

2023-10-16 08:55:43

Redisson分布式

2011-10-17 10:24:33

C語言

2022-06-02 16:46:55

5G4G通信

2020-03-05 17:38:19

物聯網安全網絡安全

2021-07-29 18:46:52

可視化類型圖形化

2021-03-09 09:55:02

Vuejs前端代碼

2023-04-10 07:40:36

GraphQLRest通信模式

2024-07-31 09:28:56

2022-07-19 08:04:04

HTTP應用層協議

2023-06-03 00:05:18

TypeScriptJSDoc掃描器

2024-11-13 09:22:40

2009-03-19 10:40:02

職業分析經驗行業

2024-08-12 15:44:06

點贊
收藏

51CTO技術棧公眾號

激情图区综合网| 国产精品99一区二区三| 精品福利视频导航| 欧美影视一区二区| 亚洲一级片免费看| 欧美人成网站| 亚洲色图色老头| 国产资源中文字幕| 裤袜国产欧美精品一区| 国产精品久久久久婷婷二区次| 亚洲自拍中文字幕| 丰满少妇xoxoxo视频| 五月天久久久| 日韩成人在线免费观看| 污网站在线免费| 国产精选在线| 中文字幕一区二区三区精华液| 国产高清一区视频| 自拍偷拍第八页| 在线欧美一区| 久久久成人av| 久久久久久久毛片| 国产福利资源一区| 欧美日韩综合色| 青青草视频在线免费播放| 天堂аⅴ在线地址8| 国产69精品久久久久毛片| 国产精品九九久久久久久久| 国产一级片免费看| 99精品综合| 亚洲社区在线观看| 精品国产人妻一区二区三区| 动漫一区二区三区| 欧美天天综合网| 日日摸日日碰夜夜爽av| 91福利区在线观看| 亚洲色图丝袜美腿| 亚洲mv在线看| 黄色网址在线播放| 99国产精品久久久久久久久久久| 91牛牛免费视频| 亚洲精品国产欧美在线观看| 国产精品综合色区在线观看| 欧美日韩福利在线观看| 黄色精品视频在线观看| 国产欧美日韩视频在线| 日韩精品极品视频| 丰满岳乱妇一区二区| 一区二区视频| 日韩美女在线视频| 女教师高潮黄又色视频| 高清亚洲高清| 欧美日韩在线直播| 午夜激情在线观看视频| **在线精品| 欧美性xxxx极品hd满灌| 鲁一鲁一鲁一鲁一澡| √天堂8资源中文在线| 亚洲一区二区av在线| 永久免费网站视频在线观看| 成人免费网址| 一区二区三区在线看| 国内自拍中文字幕| 亚洲第一图区| 亚洲h在线观看| 草b视频在线观看| 国产黄大片在线观看| 狠狠做深爱婷婷久久综合一区| 国产成人无码精品久久久性色| 美女视频在线免费| 一本色道a无线码一区v| 韩国中文字幕av| 97欧美成人| 在线不卡欧美精品一区二区三区| www.桃色.com| japanese色系久久精品| 亚洲国产精品va在线观看黑人| 亚洲天堂成人av| 国产亚洲一区二区三区不卡| 在线观看日韩www视频免费| 国产中文字幕久久| 欧美欧美全黄| 55夜色66夜色国产精品视频| 日本欧美www| 韩国视频一区二区| 国产精品免费一区二区| 男人久久精品| 亚洲欧洲成人av每日更新| 亚洲熟妇无码av在线播放| av资源中文在线| 色欧美片视频在线观看| www.污污视频| 欧美高清视频看片在线观看 | 欧美成在线视频| 18精品爽视频在线观看| 久久99伊人| 亚洲一区二区三区在线免费观看| 黄频在线免费观看| 国产亚洲女人久久久久毛片| 黄瓜视频免费观看在线观看www| 青青在线视频| 欧美艳星brazzers| 国产精品99精品无码视亚| 日韩欧美ww| 精品国产依人香蕉在线精品| 亚洲一区二区91| 蜜桃av一区二区三区电影| 91九色对白| 国产免费av高清在线| 亚洲在线视频免费观看| 国产黄色特级片| 一本一道久久a久久| 一区二区福利视频| 日韩高清精品免费观看| 麻豆91精品视频| 免费一区二区三区在在线视频| av网站网址在线观看| 日本久久精品电影| jjzz黄色片| 日韩国产在线| 日本亚洲欧美成人| 欧美熟女一区二区| 18成人在线观看| 久久久久久香蕉| 丁香婷婷成人| 欧美另类在线观看| 一区二区三区播放| 国产亚洲短视频| 中文字幕无码精品亚洲35| 日韩高清在线观看一区二区| 在线色欧美三级视频| 国产精品777777| 成人午夜碰碰视频| 日本a级片在线观看| 四虎国产精品免费久久| 国产一区二区日韩| 日韩在线播放中文字幕| 成人精品国产一区二区4080| 国产卡一卡二在线| 久久er热在这里只有精品66| 亚洲日本成人女熟在线观看| 色婷婷av国产精品| av男人天堂一区| 美女扒开大腿让男人桶| 中文字幕一区二区三区四区久久| 久久亚洲影音av资源网| 亚洲系列在线观看| 成人免费在线播放视频| 国产女同无遮挡互慰高潮91| 欧美激情偷拍自拍| 国产精品丝袜视频| 亚洲视频tv| 欧美日韩一区二区三区免费看| 国产成人福利在线| 免费看欧美美女黄的网站| 视频在线观看成人| 91国内外精品自在线播放| 国产一区二区三区在线视频| 波多野结衣家庭主妇| 国产亚洲一区二区三区在线观看 | 日韩欧美电影一二三| 欧洲猛交xxxx乱大交3| 国产福利一区二区三区在线视频| 欧美做受777cos| 成人爽a毛片| 97视频免费在线观看| 日本在线一二三| 91福利在线导航| 人妻无码一区二区三区免费| 久久99久久久久| 日本aa在线观看| 麻豆一区二区麻豆免费观看| 日本sm极度另类视频| 97超碰国产一区二区三区| 欧美欧美午夜aⅴ在线观看| 来吧亚洲综合网| 高清视频一区二区| jizzjizzxxxx| 久久高清免费| 999国内精品视频在线| 高潮在线视频| 中文字幕亚洲一区在线观看| 国产欧美综合视频| 午夜精品福利视频网站| 欧美日韩高清丝袜| 国产在线精品免费| 久久这里只有精品23| 久久99久久人婷婷精品综合 | 国产视频一区不卡| 91 视频免费观看| 亚洲国产一区二区精品专区| 日本一区二区三区免费观看| 免费看日产一区二区三区 | 国产日本久久| 欧美精品久久久久久久| www黄在线观看| 日韩欧美另类在线| 无码人妻一区二区三区线 | 国产精品6666| 欧美国产精品一区| 亚洲色图欧美另类| 奇米777欧美一区二区| 国产av熟女一区二区三区 | 宅男一区二区三区| 美女av一区| 成人欧美一区二区三区在线 | 欧美中文字幕在线观看| 国产黄大片在线观看画质优化| 亚洲精品久久视频| av网站免费大全| 色婷婷综合久久久中文一区二区| 日韩影院一区二区| 国产欧美日韩另类一区| 99热超碰在线| 国产做a爰片久久毛片| 茄子视频成人免费观看| 欧美日韩99| 中文网丁香综合网| 欧美激情在线免费| 国产精品美女诱惑| 精品欧美视频| 国产精品视频男人的天堂| 超碰一区二区| 国内精品久久影院| 中文字幕在线观看播放| www欧美日韩| 成人在线免费观看| 亚洲欧洲日产国码av系列天堂| 亚洲美女性生活| 欧美一卡二卡在线观看| 97精品久久人人爽人人爽| 日本精品视频一区二区三区| 日韩免费一级片| 一片黄亚洲嫩模| 爱爱视频免费在线观看| 国产精品二区一区二区aⅴ污介绍| 91中文字幕永久在线| 99免费精品在线| caopor在线| 成人免费视频一区二区| 国产精品99久久久精品无码| 国产美女精品在线| www.日本久久| 国内国产精品久久| 亚洲国产日韩在线一区| 韩日欧美一区二区三区| 亚洲小视频网站| 激情综合色播激情啊| 8x8x成人免费视频| 激情欧美日韩一区二区| 天天看片天天操| 国产原创一区二区三区| 国产福利精品一区二区三区| 精品一区二区三区在线观看| 91福利免费观看| 国产一二三精品| 亚洲av午夜精品一区二区三区| 国产精品12区| www国产视频| 97久久精品人人做人人爽| 亚洲蜜桃精久久久久久久久久久久| 成人av电影在线播放| 影音先锋人妻啪啪av资源网站| 91网站在线播放| 男人舔女人下部高潮全视频| 欧美激情一区不卡| 中文字幕亚洲欧美日韩| 亚洲一区在线观看免费观看电影高清| 国产在线拍揄自揄拍| 亚洲成人午夜影院| 国产精品久久久久久人| 欧美日韩欧美一区二区| 99精品视频免费看| 亚洲精品成人久久电影| 玖玖综合伊人| 久久在线精品视频| 九色porny自拍视频在线播放| 国产999精品| 91麻豆精品| aa日韩免费精品视频一| 西野翔中文久久精品国产| 色一情一乱一伦一区二区三区丨| 亚洲第一偷拍| 国产精品无码av在线播放| 日本欧美一区二区三区| 久久久久久久久久毛片| 91在线视频播放地址| 国产精品成人在线视频| 亚洲综合成人在线视频| 国产成人无码av| 91麻豆精品国产综合久久久久久| 婷婷丁香花五月天| 中文一区二区视频| 日本性爱视频在线观看| 国产www精品| 中文字幕一区二区三区日韩精品| 欧美主播一区二区三区美女 久久精品人| 欧美国产小视频| 少妇无码av无码专区在线观看| 麻豆91在线播放免费| 超碰97在线资源站| 亚洲欧洲国产日韩| 黄瓜视频在线免费观看| 欧美一级片免费看| 青青青免费视频在线2| 欧美成人精品一区| 少妇精品视频一区二区免费看| 成人9ⅰ免费影视网站| 欧美手机视频| 激情深爱综合网| 国产一二三精品| 天天干天天操天天拍| 欧美日韩免费一区| 成 人 黄 色 片 在线播放 | 超碰在线免费播放| 国产成人中文字幕| 国产精品超碰| 日韩中文字幕在线不卡| 奇米四色…亚洲| 最新中文字幕视频| 亚洲电影一级黄| av中文字幕免费在线观看| 在线日韩第一页| 久久精品女人天堂av免费观看| 国产视色精品亚洲一区二区| 国产电影一区二区在线观看| 日本黄网站免费| 91蜜桃网址入口| 日韩欧美激情视频| 亚洲精品一区二区三区香蕉| a级毛片免费观看在线| 91精品国产综合久久香蕉最新版| 欧美日韩在线播放视频| 国产99久久九九精品无码| 成人污视频在线观看| 日本青青草视频| 91精品国产91久久久久久一区二区 | 欧美哺乳videos| 国产黄色在线观看| 成人在线观看视频网站| 欧美高清视频在线观看mv| 日韩一级理论片| 国产亚洲综合在线| 老熟妇一区二区三区| 亚洲色图25p| 日韩免费福利视频| 欧洲精品久久| 久久婷婷麻豆| 天天躁日日躁aaaa视频| 色婷婷综合久久久久中文| 日本中文字幕电影在线观看| 日本欧美中文字幕| 成人同人动漫免费观看| 午夜免费看视频| 中文字幕一区二区三区四区| 国产伦精品一区二区三区视频痴汉| zzijzzij亚洲日本成熟少妇| 久久亚洲资源中文字| 99精品视频网站| 国产精品91一区二区| 国产在线一区视频| 亚洲精品不卡在线| 日韩美女在线看免费观看| 日韩精彩视频| 理论片日本一区| 国产97免费视频| 亚洲国产福利在线| 欧美成人影院| 在线观看精品视频| 国产成人亚洲精品青草天美 | 欧美综合亚洲图片综合区| jizz在线免费观看| 亚洲最大成人在线| 国产精品久久久久久久免费软件| 偷拍夫妻性生活| 欧美精三区欧美精三区| 男女在线视频| 免费看成人午夜电影| 黄页网站大全一区二区| 免费毛片在线播放免费| 亚洲精品成人久久电影| 国产精品原创视频| av动漫在线播放| 久久日韩精品一区二区五区| 一级久久久久久久| 97国产在线观看| 色喇叭免费久久综合| 日本精品一二三| 在线观看视频一区| 污污的视频在线观看| 欧美精品七区| 国产激情一区二区三区| 亚洲精品中文字幕乱码三区91| www.日韩欧美| 一区二区三区韩国免费中文网站| 久久精品亚洲天堂| 色悠悠久久综合| 欧美日韩经典丝袜| 五月天丁香综合久久国产| 成人黄色a**站在线观看|