偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么所有人都想要使用Kubernetes?

云計算
首先讓我們了解一下Kubernetes是如何解決在大多數(shù)在云端部署應(yīng)用時碰到的問題,它是如何支持我們的基礎(chǔ)設(shè)施向云端遷移。

說實話,我是一個Kubernetes愛好者。Kubernetes可以說是軟件開發(fā)領(lǐng)域邁出的一大步。當我知道Kubernetes的時候,我就想這才是在生產(chǎn)環(huán)境使用容器的正確之道。我沒有任何遲疑就接受了Kubernetes。像我這樣的,還有數(shù)以千計的架構(gòu)師已經(jīng)成功擁抱了這一技術(shù)。

首先讓我們了解一下Kubernetes是如何解決在大多數(shù)在云端部署應(yīng)用時碰到的問題,它是如何支持我們的基礎(chǔ)設(shè)施向云端遷移。

[[315634]]

牢記你的目標

在萬物云化的時代,對于所有公司都有一些共同的目標。

以下一些目標一般都會具有高優(yōu)先級:

  • 盡快遷移到云上(云端遷移)
  • 減少系統(tǒng)管理的成本,基礎(chǔ)設(shè)施的成本,人力成本(成本縮減)
  • 減少完成項目所需的時間(盡快面向市場)
  • 系統(tǒng)高性能、高可用(質(zhì)量提升)
  • 牢記這些目標,我們就能邁上云端,然后思索下一步的動作。

我們?yōu)槭裁葱枰萜?

在我們思考為什么需要Kubernetes之前,我們需要先問自己,為什么我們需要容器?容器在軟件開發(fā)的歷史上是一次巨大的變革,因為它將生產(chǎn)環(huán)境帶入到每個開發(fā)者的本地環(huán)境中,我們不再需要擔心Linux和Windows的兼容問題。通過使用容器,我們可以在任何工作站上輕易地重現(xiàn)出任何問題。并且,我們也能輕易地將容器遷移到任何一個平臺上,不需要做任何其他多余的操作。在容器出現(xiàn)之前,開發(fā)者就懂得把應(yīng)用程序打包進行發(fā)布,因為他們知道應(yīng)用程序如何能夠正常運行,比如你可以將依賴組件和應(yīng)用一起打包。站在DevOps的角度,容器非常優(yōu)雅,因為每個發(fā)布系統(tǒng)只需要處理一件事物,那就是容器。不僅如此,所有的容器構(gòu)建過程可以由開發(fā)者通過Dockerfile來描述,這意味著無論在本地開發(fā)環(huán)境還是持續(xù)集成環(huán)境,你都使用同樣的方法來構(gòu)建應(yīng)用。

容器意味著維護的事項更少,屏蔽環(huán)境的細節(jié)做到無差異化,那么也就更少的錯誤。

我們能夠把容器的鏡像推送到Registry。通過Registry,我們在任何地方都能下載、部署,無論是筆記本電腦還是虛擬機(本地或者云端)甚至是Serverless的場景,比如Heroku。相較于虛擬機,容器真正的優(yōu)勢在于它虛擬了操作系統(tǒng)你那個而不是外部資源。這樣更高級別的抽象使得我們擁有一種更輕量級、更簡單也更經(jīng)濟的方式來部署應(yīng)用。

為什么需要Kubernetes?

在之前的一節(jié)中我們解釋了為什么大家都會使用容器,但并沒有提及我們?yōu)槭裁葱枰狵ubernetes。不管怎么說,我們已經(jīng)接受了容器這個事物。這帶來了一個新的需求,我們?nèi)绾喂芾砣萜?我們?nèi)绾慰煽康鼐幣湃萜?我們的答案是Kubernetes!

擁有了Kubernetes,你所需要做的事就是將鏡像推送到Registry,然后等待Kubernetes來完成剩余的工作。所有部署環(huán)節(jié)的任務(wù)都由Kubernetes來管理,我們根本無需去擔心基礎(chǔ)設(shè)施。

Kubernetes是業(yè)界領(lǐng)先的容器編排解決方案。它是在Google對容器的實踐中逐漸開發(fā)完善的,同時也是開源的。它的架構(gòu)允許容器編排,也允許與舊的系統(tǒng)集成。這意味著你能在本地安裝Kubernetes,也可以在云端安裝、使用,甚至允許你是用混合云的架構(gòu)。

所以,我們之所以會使用Kubernetes,是因為它的穩(wěn)定性、可靠性和易用性。簡單來說,Kubernetes是部署容器的最佳方式。

Kubernetes是Serverless嗎?

Kubernetes是不是Serverless?我認為Kubernetes和Serverless是兩個不同領(lǐng)域的詞。Serverless更多是一種哲學,而Kubernetes則是一個具體的工具。讓我們暫且先回顧一下我們最初的目標,我們說我們需要減少對操作系統(tǒng)的依賴以及減少維護他的成本,而這就是Serverless。

那么問題就變成了,Kubernetes是否讓我們實現(xiàn)了這個目標呢?簡單來說,是的。

Serverless的嚴格定義是,我們不需要關(guān)心到底是什么應(yīng)用容器、什么系統(tǒng)、什么硬件在運行我的代碼,甚至我都不知道它位于世界的哪個角落。雖然Kubernetes確實向開發(fā)者隱藏了諸多的復(fù)雜性,但我們確實還是需要了解服務(wù)器的相關(guān)部分,比如,你仍然依賴于某個特定的容器提供的操作系統(tǒng)。同時,你也依賴于某個特定版本的Kubernetes。這意味著,理論上來說Kubernetes并不算Serverless。

接著,讓我們來看幾個Serverless的解決方案。

Heroku Runtime[1]的底層是依賴于容器,當然你也可以在Heroku上直接部署自己的容器[2]。大部分的Lambda函數(shù)都是運行在容器中。

這就是為什么我們認為部署在云端的Kubernetes不是Serverless,因為它是基于容器的,并且還依賴于操作系統(tǒng)。然而,同樣依賴于容器的Heroku Runtime或是Lambda計算服務(wù)卻被認為是Serverless。

所以我仍然認為Kubernetes是一種Serverless的解決方案,即使它不滿足嚴格的定義。這個世界并不是非黑即白的,云端版本的Kubernetes提供的抽象程度(如屏蔽了操作系統(tǒng)以及底層資源)對我來說已經(jīng)足夠了。

我不希望在這里咬文嚼字。除開我們是否要給Kubernetes貼上Serverless這個標簽的問題,Kubernetes確實能夠讓我們迅速上云,是減少系統(tǒng)管理成本、基礎(chǔ)設(shè)施維護成本,提高業(yè)務(wù)質(zhì)量的一大利器。所以我們實際上無須去關(guān)心那些標簽,黑貓白貓抓到老鼠就是好貓。

Kubernetes的優(yōu)勢

Kubernetes是一個非常優(yōu)秀的平臺,使我們能夠脫下傳統(tǒng)虛擬機的戎裝去擁抱云。它帶來活力,減少系統(tǒng)管理成本,并且將服務(wù)的質(zhì)量推上一個新的高度,在Kubernetes誕生之前我們很難做到這一步。許多傳統(tǒng)的問題比如網(wǎng)絡(luò),數(shù)據(jù)保護等在Kubernetes中都能夠通過高級配置來實現(xiàn)。

以下是Kubernetes帶來的一些優(yōu)勢:

  • 可擴展性:你只需要部署一個容器,就能夠毫無障礙地設(shè)置擴容策略。然后,你只需要保證你的賬戶里有足夠的余額就行了。
  • 透明化:每個容器只完成一項工作。容器之間的關(guān)系被映射成配置文件,不需要擔心遺漏什么,當然細節(jié)也無法被隱藏。
  • 節(jié)約時間:流程非常簡單,所有的步驟都能夠被重復(fù)。
  • 版本控制:從設(shè)計上來看,每一次部署都被版本化。當然,稍微花點時間,你也可以將配置文件用Git管理起來。

與其他方式相比,Kubernetes簡化了所有開發(fā)運維的事項,將開發(fā)者帶入到一個幾乎不需要運維的理想狀態(tài)。開發(fā)團隊和運維團隊之間的摩擦也減少了,因為原本兩者職責的模糊地帶現(xiàn)在也劃清了界線,系統(tǒng)本身也保持了相當?shù)耐该鞫取?/p>

其他的一些優(yōu)點列舉如下:

  • 水平擴展:Kubernetes本身能夠自動擴展,支持在集群中增加節(jié)點或者調(diào)整可用的物理資源。同時,他也能擴展邏輯資源,如調(diào)整一個服務(wù)的Pod數(shù)目。
  • 智能升級:每次你升級容器鏡像的時候,升級的過程是平滑的。舊的Pod會一直保持可用的狀態(tài)直到新的Pod啟動完成才會被銷毀。這就是我們常說的零宕機部署。
  • 支持本地搭建或是云端服務(wù):使用使用云以外還有別的選擇嗎?當然!我總是偏好完全云端的解決方案,當然在一些場景下,可能也需要在本地環(huán)境或者機房部署,當然Kubernetes也能夠完美支持。
  • 遠離廠商捆綁:Kubernetes在每個通過認證的公有云平臺具有一致性[3]。如果你對你的服務(wù)商不滿,你只需要花費少量的時間就可以更換廠商。
  • 對開發(fā)者沒有額外的成本:任何已經(jīng)被容器化的軟件都能一鍵部署。開發(fā)團隊不需要學習額外的知識。

我們到底如何選擇?

Kubernetes的靈活性很強,利用云端的方案,你可以輕松地管理Kubernetes集群。當我了解到Kubernetes的時候,我就認為它是一個可行的、安全的方案,能夠有效減少開發(fā)者的負擔。它具備所有傳統(tǒng)基礎(chǔ)設(shè)施的優(yōu)勢,同時讓我們在不重構(gòu)應(yīng)用的同時,享受不需要運行維護的便利。和很多其他看上去閃閃發(fā)亮的解決方案(如Serverless)相比,Kubernetes更加實在。Serverless確實很不錯,但是很多復(fù)雜的場景,它并不能很自如地應(yīng)付。并且從邏輯上來看,全盤接受像Lambda這樣前沿的技術(shù)需要一個巨大的思維轉(zhuǎn)變。對于運維團隊來說,這樣的改變并不容易。

如今,減少系統(tǒng)管理的工作量,擁有能夠易于部署、能夠簡化運維核心痛點的基礎(chǔ)設(shè)施對大部分團隊來說都是核心需求。而Kubernetes滿足這所有的需求。

如果讓我現(xiàn)在去設(shè)計一套架構(gòu),尤其是面向企業(yè)的解決方案,我會首選容器技術(shù)和Kubernetes。或許我會選擇云服務(wù)商提供的Kubernetes來減少運維成本。我也有可能會用Git來管理DevOps流水線相關(guān)的配置。

這個方案對操作系統(tǒng)的依賴很少,對云廠商的依賴也很少,所有的基礎(chǔ)設(shè)施及其配置都依賴于代碼。

有人會說,這個方案并不完全擺脫了運維,也不完全擺脫了服務(wù)器。但Kubernetes具有穩(wěn)定、模塊化、可伸縮的特性,能夠滿足最重要的架構(gòu)設(shè)計目標。所以我們?yōu)槭裁床挥肒ubernetes呢?

那我們能不能做得更好?毫無疑問。我們能努力擺脫更多的負擔嗎?當然可以。我們當然能百尺竿頭更進一步。然而,仰望星空也要腳踏實地,我們必須要承認Kubernetes是一個極佳的折中方案:在大部分案例中,Kubernetes是成功的保障。

 

責任編輯:未麗燕 來源: Dockone.io
相關(guān)推薦

2013-06-18 09:40:29

BYOD誤解

2025-06-25 08:30:56

2012-02-16 10:49:09

2019-04-15 13:39:10

容器開發(fā)Docker

2014-11-21 10:50:26

JavaString

2011-03-08 12:59:38

proftpd

2017-07-03 13:33:42

AndroidItemDecorat

2013-08-27 13:59:05

微軟鮑爾默

2024-01-30 07:55:03

KubernetesAPI服務(wù)器

2011-04-14 09:30:15

集合框架

2014-05-19 15:52:57

Apache StraApache

2010-05-11 10:29:06

Unix awk

2025-09-25 14:13:50

2024-03-25 09:03:07

Redis開源開發(fā)

2013-12-09 10:16:03

Android firAndroid開發(fā)移動創(chuàng)業(yè)

2014-04-25 10:05:42

OpenStack私有云公共云

2024-01-24 11:24:03

C++編程異常處理

2013-09-27 11:33:57

交換機技術(shù)Vlan技術(shù)

2018-07-16 16:39:00

數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號