共計 2977 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇“Kubernetes 可以滿足微服務的哪些需求”文章的知識點大部分人都不太理解,所以丸趣 TV 小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Kubernetes 可以滿足微服務的哪些需求”文章吧。
一、Kubernetes 能滿足微服務的馬斯洛需求
這種描述需求的方法非常重要, 已經應用于許多其他領域,如員工敬業度、云計算、軟件開發、DevOps 等等。所以對于微服務來說也同樣適用,為了微服務的成功,清晰的需求列表必須滿足。List 如下:
微服務的需求層次結構
一旦列出了微服務的主要問題(對每個人來說可能會有不同的順序),就會發現 Kubernetes 容器編排引擎確實能夠很好地覆蓋這些需求中的很大一部分。我把 Kubernetes 也添加到圖中。
首先,對于基礎層,需要一些計算資源,并且理想的情況下,擁有一個由基礎設施服務云提供商管理的可伸縮的標準操作環境。其他先決條件是,自動化的 CI/CD 流程和工件注冊表,Kubernetes 可以幫助我們運行和管理。我們仍然需要一些專門的軟件,比如構建的 Jenkins,以及工件存儲庫,比如按需 Sonatype Nexus for Docker 和 Maven for Docker Hub。
Kubernetes 可以幫助管理多個隔離環境(名稱空間)、管理資源(配額和限制)、存儲分配(持久卷)、執行部署和回滾(部署)、自動調度(調度)、服務發現和負載平衡(服務)、彈性和容錯(pod 健康檢查)。
對于某些需求,我們還需要一些額外的工具,如 Docker 或 rkt 用于容器實現,應用程序內的彈性庫 (如 Netflix 的 Hystrix) 與 Kubernetes 彈性特性相結合。然后,Kubernetes 可以管理應用程序配置,并幫助運行最好的集中式日志記錄、度量收集和跟蹤軟件,隨著服務數量的增加,這些也變得非常重要。
根據微服務的性質,企業有一些特定的需求。對于 API 驅動的微服務,需要專門的 API 管理解決方案,也可以處理服務安全性 (Kubernetes 沒有提供)。但是 Kubernetes 可以輕松地幫助企業運行有狀態的服務(有狀態的設置)、批處理作業(job) 和調度作業(cron job)。
通過一個平臺提供的所有這些特性,用戶可以執行一些更智能的活動,如應用程序和基礎設施自動伸縮和自修復,通過自動放置、自動重啟、自動復制、自動伸縮。
對于 Kubernetes 所滿足的所有這些需求,團隊所剩下的就是精簡開發流程,擁抱 DevOps 文化以實現快速交付,并在組織層面達到反脆弱性。
二、關于 Kubernetes 你需要知道的 8 件事
這是《計算機周刊》與 Carlos Sanchez 的問答環節,Sanchez 是 CloudBees 的工程師,CloudBees 是持續交付和集成軟件服務的提供商。其中開源持續集成工具 Jenkins,是 CloudBees 服務的重點。
《計算機周刊》的開源內部人士 (Computer Weekly Open Source Insider,簡稱:CWOSI) 提出了 8 個與 Kubernetes 最相關的問題,試圖揭開這個問題的核心,因為 2017 年 Kubernetes 經歷了知名度的大幅提升。
CWOSI #1: 對于那些不了解 Kubernetes 的人,你如何總結和定義這項技術?
Sanchez: Kubernetes 是一個開源平臺,旨在自動化容器的部署、縮放和操作。它是一種允許在大規模集群上運行容器的技術。它支持跨大型數據中心的隔離應用程序的執行。
CWOSI #2: 為什么 Kubernetes 會在你的觀點中出現——為什么我們需要它?
Sanchez: Docker 確實成功地制造了容器。事實上,谷歌已經運行了很多年幾十億的容器。Kubernetes 從谷歌的經驗中得出了這種規模的容器運行,導致谷歌將這項技術引入開源世界,從而使其他人更容易地管理容器。
至于為什么我們需要 Kubernetes,這是因為對于大型和小型的組織來說,容器變得越來越重要,授權開發團隊在大規模的分布式環境中運行,以便在 DevOps 和持續交付實踐中更快地交付軟件。在這種情況下,任何能夠簡化容器的有效操作和管理的東西都將受到企業的熱烈歡迎。
CWOSI #3:Kubernetes 本質上是開源的,但是有多少開發人員在為一項本質上是基礎設施的技術貢獻代碼呢?
Sanchez: 總的來說,有超過 1400 名貢獻者。谷歌、紅帽和微軟都被包括在其中。最近,亞馬遜和阿里巴巴已經成為參與這項技術的幾家最大的公司。CNCF 管理整個技術。
CWOSI #4: 容器化技術是否最終意味著每個單獨的組件在驗證其目的和最終交付特定的產出或功能的方面更負責?
Sanchez:容器通常與微服務體系架構相關聯。每個組件都期望完成一個特定的協議。這些組件有一個目的,它們有由這個協議和 API 標記的輸入和輸出。他們必須能夠履行他們的職責。它們應該是獨立的,并在體系結構中發揮特定的作用,其中有成百上千種服務共存。
CWOSI # 5:什么時候不需要 Kubernetes…當企業不需要大規模或跨多個機器的時候嗎?
Sanchez:Kubernetes 是一個復雜的系統。如果企業有規模來證明部署的合理性,那么采用這種技術是有意義的。例如,如果只使用一兩臺虛擬機,或者沒有任何更高的要求,企業可能不需要 Kubernetes,Docker 自己就足夠了。也就是說,谷歌或 Azure 提供的當前云服務讓我們很容易從 Kubernetes 和大規模開始。
CWOSI #6: 能給我們解釋一下 Kubernetes pod 嗎?
Sanchez:Kubernetes pod 實際上是一組在同一個主機上運行的容器。這些容器具有一定的特點。例如,它們共享相同的網絡空間和資源。真正的 Kubernetes pod 是由需要共存的容器組成的。
CWOSI #7: 讓 Kubernetes 出錯,并把錯誤的實施組合在一起有多容易?
Sanchez:這又回到了安裝上——這是一個復雜的軟件,需要專門的專業知識。這就是人們使用谷歌 Kubernetes 引擎或 Azure 容器服務的原因。
也就是說,有越來越多的工具,無論是開源的還是商業的,比如 kops、kube-aws 或者 kubeadm 都可以幫助執行正確的安裝。如果您不使用其中一個安裝程序來簡化安裝,那么在此過程中可能會犯錯誤。
CWOSI #8: 在你看來,Kubernetes 在接下來的幾年中會如何發展?
Sanchez:將會有越來越多的 Kubernetes 產品從不同的供應商進入市場,不僅僅是云提供商,還有操作系統提供商。Kubernetes 將成為集群的實際操作系統。另外,Kubernetes 將會發展成為一套標準 API,允許企業運行集群架構。
我們看到云提供商正在破壞基礎設施,這樣企業就可以運行 Kubernetes,而無需運行服務器。因此,我們將看到供應商提供 Kubernetes 作為服務,企業將能夠在云中運行容器,而不必擔心機器。AWS 已經宣布了提供這一服務的意向,這一趨勢將繼續在其他供應商中施行。
以上就是關于“Kubernetes 可以滿足微服務的哪些需求”這篇文章的內容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注丸趣 TV 行業資訊頻道。