概要
您是否正在嘗試應(yīng)該怎樣學(xué)習(xí) Kubernetes
肾胯?如果是這樣,你可能會(huì)有這樣的問題 “ Kubernetes 會(huì)是下一件大事嗎耘纱?” 或 “ Kubernetes 太繁瑣了敬肚?” 或 “ Kubernetes 很難學(xué)習(xí)嗎?”之類的問題揣炕。我的希望是消除任何混亂帘皿,并幫助您確定Kubernetes 是否適合您。
在本篇文章中畸陡,我們將探討以下問題:
- Kubernetes 有什么好處鹰溜?
- 學(xué)習(xí) Kubernetes 有多難?
- 對(duì)于小型項(xiàng)目來說丁恭,Kubernetes 是不是太重了曹动?
- 我必須掌握大部分 Kubernetes 的特性才能使用它嗎?
- Kubernetes 受歡迎程度是增加還是減少?
- Kubernetes 有趣嗎牲览?
免責(zé)聲明
Kubernetes 位于軟件開發(fā)
墓陈,DevOps
和系統(tǒng)管理
的交叉點(diǎn)。我是軟件開發(fā)人員第献。因此無論好壞贡必,我都通過開發(fā)者的眼光看待 Kubernetes。
我的目標(biāo)是保持客觀庸毫。因此仔拟,我將介紹優(yōu)缺點(diǎn),以便您確定 Kubernetes 是否適合您飒赃。
什么是 Kubernetes 利花?
簡而言之科侈,Kubernetes 可幫助您管理由一個(gè)或多個(gè)容器組成的應(yīng)用程序。從本質(zhì)上講炒事,它是一個(gè)工具箱臀栈,可幫助您構(gòu)建由多個(gè)Docker容器組成的非常強(qiáng)大的應(yīng)用程序。
Kubernetes 有什么好處挠乳?
自愈
:Kubernetes 自動(dòng)重啟崩潰的容器权薯。它將崩潰或宕機(jī)節(jié)點(diǎn)上運(yùn)行的容器重新調(diào)度。負(fù)載均衡
:在 Kubernetes 中創(chuàng)建負(fù)載均衡器很簡單欲侮≌赶校可以針對(duì)群集內(nèi)部或群集外部的流量負(fù)載均衡到不同的 Pod。自動(dòng)容器調(diào)度
:Kubernetes 自動(dòng)決定將容器部署到何處威蕉。當(dāng)您在多個(gè)節(jié)點(diǎn)上運(yùn)行許多容器時(shí)刁俭,這確實(shí)非常方便。水平縮放
:當(dāng)容器副本需要增加時(shí)韧涨,很容易按比例擴(kuò)大它們的數(shù)量牍戚。也可以通過單個(gè)命令手動(dòng)完成,也可以自動(dòng)完成虑粥。滾動(dòng)更新
:您可以將舊容器換成新容器如孝,而不會(huì)中斷服務(wù)。也可以使用單個(gè)命令來完成娩贷。零停機(jī)降級(jí)
:如果在某些容器中發(fā)現(xiàn)錯(cuò)誤第晰,可以恢復(fù)到這些容器的舊版本,而不會(huì)中斷彬祖。(這使您有足夠的時(shí)間來修改bug茁瘦。)Secret 數(shù)據(jù)管理
:您可以在 Kubernetes 集群中存儲(chǔ)敏感信息。如API密鑰
和數(shù)據(jù)庫密碼
等储笑。與將它們保存在版本控制下的源文件中相比甜熔,這是一個(gè)更安全的選擇。抽象掉硬件
:開發(fā)人員用容器都無需了解有關(guān)底層群集硬件的任何知識(shí)突倍。這使得從一個(gè)云提供商遷移到另一云提供商變得容易腔稀。
學(xué)習(xí) Kubernetes 有多難?
有人抱怨 Kubernetes 很難學(xué)習(xí)羽历。我認(rèn)為這是有道理的焊虏,但并沒有大家想象的那么難。讓我概述下大家為什么覺得很難學(xué)秕磷。
找到好的Kubernetes文檔很難嗎诵闭?
- 在過去的幾年中,官方文檔已從可怕的變成了相當(dāng)不錯(cuò)的跳夭。但是它仍然有些脫節(jié)并且比較分散涂圆。這使得確定學(xué)習(xí)各種概念的順序有些困難。因此币叹,我認(rèn)為該文檔最好作為參考润歉,而不是循序漸進(jìn)的指南。Kubernetes復(fù)雜嗎颈抚?
- 我認(rèn)為 Kubernetes 并不比當(dāng)今使用的任何流行編程語言復(fù)雜踩衩。實(shí)際上,我認(rèn)為 Kubernetes 更容易掌握贩汉。特別是如果您已經(jīng)熟悉容器的話驱富。Kubernetes是否有許多先決條件?
- 并不是的匹舞。但是您應(yīng)該知道什么是Docker容器
以及它們?nèi)绾喂ぷ鞯幕A(chǔ)知識(shí)褐鸥。了解YAML
(這需要5到10分鐘的學(xué)習(xí)時(shí)間)也很有幫助。并且您需要對(duì)*nix
命令行有基本的了解赐稽。是的叫榕,即使是Windows用戶,因?yàn)樵陂_發(fā)/調(diào)試過程中姊舵,您可能會(huì)不時(shí)地轉(zhuǎn)移到基于Linux的容器中晰绎。有很多概念要學(xué)習(xí)嗎?
- 有很多概念需要學(xué)習(xí)括丁,但這是有原因的荞下。憑借其眾多功能,Kubernetes 能夠解決許多不同類型的問題史飞。但是尖昏,您可以繞開更高級(jí)的功能,直到您真正需要它們?yōu)橹够霰铩TS多問題只需要一小部分 Kubernetes 功能会宪。使用您需要的內(nèi)容,而忽略其余部分蚯窥。
Kubernetes 是不是太重了掸鹅?
盡管 Kubernetes 具有很多功能,但您不必全部學(xué)習(xí)它們拦赠。僅通過學(xué)習(xí)核心功能(如pods
, services
, controllers
, volumes
, secrets
等)巍沙,就可以學(xué)習(xí)很多東西。然后荷鼠,當(dāng)您真正需要時(shí)句携,您可以學(xué)習(xí)您所需要的功能。
我認(rèn)為這種 “太重” 的名聲實(shí)際上來源于團(tuán)隊(duì) 選擇安裝
和 維護(hù)Kubernetes
的方式允乐。您會(huì)看到矮嫉,Kubernetes 在生產(chǎn)中并沒有一個(gè)簡單的安裝過程削咆。(請注意,創(chuàng)建開發(fā)集群并不難蠢笋。)但是拨齐,如果您使用托管解決方案(例如 DigitalOcean Kubernetes 或 Google Kubernetes Engine),則 安裝
昨寞,安全
和 升級(jí)
都不需要你來維護(hù)瞻惋。最重要的是,托管解決方案很便宜援岩!
最后歼狼,請記住以下兩個(gè)想法:
1、使用您需要的內(nèi)容享怀,而忽略其余部分羽峰。
2、每個(gè)大項(xiàng)目都是從小項(xiàng)目開始的!
Kubernetes 受歡迎程度是增加還是減少凹蜈?
沒有人愿意登上一艘正在下沉的船限寞。也沒有人愿意學(xué)習(xí)一種正在消失的技術(shù)。好消息是仰坦,Kubernetes 沒有消失的危險(xiǎn)履植。許多大公司(例如 Pinterest,Spotify和Squarespace)都依賴 Kubernetes悄晃。事實(shí)上玫霎,Kubernetes 已經(jīng)變得非常流行,它已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn)容器編排系統(tǒng)妈橄。
Kubernetes 有趣嗎庶近?
我真的很喜歡和 Kubernetes 共事。但我一開始并沒有這樣的感覺眷蚓。
幾年前鼻种,當(dāng)我第一次學(xué)習(xí)Kubernetes時(shí),我并不喜歡它沙热,原因有二:
它的文檔實(shí)在是太糟糕了
你必須處理大量的配置文件
好消息是叉钥,Kubernetes 的維護(hù)人員已經(jīng)極大地改進(jìn)了文檔。僅此一點(diǎn)篙贸,讓 Kubernetes 的使用變得更加有趣投队。
也就是說,使用 Kubernetes 意味著您仍然必須使用許多配置文件爵川。但是現(xiàn)在我真的很喜歡和他們一起工作敷鸦。我將這種徹底的轉(zhuǎn)變歸功于三件事:
1、首先,Kubernetes 所處的區(qū)域存在著有趣的問題扒披。畢竟值依,它是一個(gè)用于解決容器化系統(tǒng)的基礎(chǔ)結(jié)構(gòu)級(jí)問題的工具箱。因此碟案,您可以使用Kubernetes來處理
分布式系統(tǒng)
鳞滨,微服務(wù)
,系統(tǒng)可靠性
蟆淀,網(wǎng)絡(luò)
和安全性
之類的事情。承認(rèn)吧澡匪,蠻好玩的熔任!2、其次唁情,Kubernetes 是一個(gè)功能強(qiáng)大的系統(tǒng)疑苔,具有許多功能。俗話說甸鸟,“權(quán)力越大惦费,責(zé)任越大,樂趣越大”抢韭。這就是為什么我的人生目標(biāo)是轉(zhuǎn)世成一條電鰻薪贫。到目前為止,一切都很好刻恭。
3瞧省、第三,Kubernetes 組件很有趣鳍贾,就像樂高積木一樣有趣鞍匾。它們的
靈活性
和可組合性
使您能夠解決各種問題。這有點(diǎn)類似于編程骑科,因?yàn)樵趦煞N情況下橡淑,您都需要結(jié)合創(chuàng)造性
,獨(dú)創(chuàng)性
和最佳實(shí)踐
來解決問題咆爽。有什么不喜歡的呢?
可以肯定的是梁棠,Kubernetes并不全是陽光和彩虹。因此伍掀,讓我們來看看幾個(gè)不足的地方掰茶。
1、首先蜜笤,Kubernetes 的配置文件在一開始讀起來并不直觀濒蒋。簡而言之,您的大腦需要時(shí)間來習(xí)慣于從不重要的片段中挑選出重要的片段。但是不用擔(dān)心沪伙。這不是很難瓮顽。如果我可以得到,您也可以围橡。
2暖混、其次,您需要熟練地使用 Kubernetes 進(jìn)行調(diào)試翁授。(您不可能拋出一堆打印語句或運(yùn)行某種不存在的Kubernetes調(diào)試器拣播。)在您熟悉一些有用的kubectl命令之前,您可能會(huì)不時(shí)感到有些茫然收擦。
總結(jié)
首先贮配,Docker
和 Kubernetes
都是目前的潮流。容器和容器編排將繼續(xù)席卷整個(gè)行業(yè)塞赂,這是有充分理由的泪勒。盡管容器解決了整個(gè)部署問題,但Kubernetes提供了一個(gè)強(qiáng)大而通用的系統(tǒng)來管理任何規(guī)模的容器集群宴猾。
也就是說圆存,下面兩種情況,Kubernetes 可能不是您的最佳選擇仇哆。
1沦辙、首先,如果(a)您尚未使用容器讹剔,(b)您沒有計(jì)劃使用它們怕轿,(c)您已經(jīng)具有可以運(yùn)行的部署和集群管理系統(tǒng),那么就不要切換辟拷!聽起來您的項(xiàng)目已經(jīng)相當(dāng)完善了撞羽。
2、其次衫冻,您所在的團(tuán)隊(duì)是否決定安裝和管理自己的容器編排系統(tǒng)诀紊?如果是這樣,請考慮使用使用
Docker Swarm
之類的工具隅俘,它可能不具備 Kubernetes 的全部功能邻奠,但更易于安裝。
原文鏈接:https://blog.true-kubernetes.com/is-kubernetes-worth-learning-part-1-the-big-picture/
本文由 YP小站 發(fā)布为居!