Key Tech Terms for the Digital Landscape

什麼是容器、Kubernetes 和雲端原生技術?

「雲端原生」是什麼意思?

「雲端原生」的定義已經變得無所不在,隨著企業組織開展大型數位化轉型專案,以追求更高的業務敏捷性、可擴充性和效率,此術語在各種情境中被廣泛使用。

但是它到底指的是什麼呢?簡而言之,「雲端原生」指的是軟體抽象化的新程度,再加上一組專用的技術、工具和流程,這些技術、工具和流程改變了應用程式的建置、部署和管理方式。

雲端原生應用程式的核心特性包括以下幾項:

  1. 程式碼被封裝為容器
  2. 架構為微服務的集合
  3. 開發人員和 IT 維運人員在緊密整合、敏捷的容量中共同協作
  4. 跨彈性雲端基礎架構進行部署和管理
  5. 自動化且由策略為導向的基礎架構資源配置

雲端原生為企業提供的優勢

已踏上雲端原生之旅的組織正在採用容器和 Kubernetes,以及來自廣闊的雲端原生生態系統的各種開源和商用技術。

容器和雲端原生技術使組織能夠加速應用程式開發、無中斷地升級應用程式、有效地對它們進行擴充,並輕鬆地將它們轉移到不同的環境中。這些功能最終轉化為更佳的業務敏捷性和競爭優勢。

容器為企業解決了一些關鍵問題,它可以在任何地方運行,在非特定廠商的套裝軟體中,為開發人員提供強大的軟體封裝、服務升級、可擴充性、可用性和資源效率。Kubernetes 提供了一個基礎架構層,使 IT 能夠以程式化、可重複的方式進行規模化維運,這與企業中更親力親為的典型管理截然不同。由於 Kubernetes 可以部署在本地端和公用雲端,因此它提供了跨環境的通用營運模型。這使 Kubernetes 成為了任一家公司在這兩種環境中維運的理想平台。

雲端原生架構

雲端原生架構使用容器和 Kubernetes 將應用程式建構為一組較小的可組合部件,這些部件能夠有效率地擴充、無中斷升級並無縫遷移到其他環境中。此技術不僅具有成本效益,同時還具有更好的安全性和靈活的自動化。

本地端 Kubernetes 堆疊

我們將探索本地端 Kubernetes 堆疊的不同層,從 Kubernetes 運行的基礎架構到運行在 Kubernetes 之上的服務,開發人員可以利用這些服務來加速應用程式交付。請注意,有些組件可以包含在堆疊的多個部分中。例如,Kubernetes 發行版本可能包含一個容器註冊表,如 Harbor 或 Quay。或者,容器註冊表可以作為託管或管理服務提供,以用於任何的發行版本。

運算平台

Kubernetes 可以部署的地方非常靈活,而日新月異的創新構思也讓 Kubernetes 如何運作,以及在何處運作的選項不停增加。通常,Kubernetes 需要至少 3 個節點,節點與附接儲存器之間需有完整的網路連接。如今,Kubernetes 最常運行於 VMware 等虛擬基礎架構之上。裸機和 HCI 則是另外兩種常見選擇。

其他功能可以使 Kubernetes 叢集的佈建和操作變得更為容易。透過 API(例如 Cluster API、Terraform 等)控制的基礎架構,使佈建和連接新節點變得容易。客製的虛擬機管理程式可以提供工作負載隔離,以填補容器中的安全漏洞。Kubernetes 叢集外部的負載平衡器對於維持工作負載的可用性,以及動態地重新配置和擴充它們非常有用。某些工作負載可能會受益於客製化硬體,例如 GPU 或 TPU。如果要在多個位置(例如在零售商店)運行許多叢集,那麼對底層基礎架構的分散式管理功能將非常有用。

Kubernetes 發行版本

自 2015 年發布以來,隨著 Kubernetes 的爆炸式增長,已經有超過 100 個來自科技巨頭和新創公司的 Kubernetes 發行版和託管平台。這些公司使用 Kubernetes 的核心程式碼,並將其與其他專案(如網路堆疊、叢集管理工具、登入和監視等)相結合,來建立一個新的發行版本。

容器服務

一個有用的 Kubernetes 環境需要具備 Kubernetes 自身之外的其他基礎架構服務。這些服務有時與發行版本捆綁在一起,或作為單獨服務進行添加,它包含了一些基本組件,例如容器註冊表、Ingress、負載平衡器、Secret Stores 和憑證管理器等等。

隨著越來越多的公司在 Kubernetes 上建構和部署應用程式,他們所依賴的許多核心服務通常也在 Kubernetes 中運行。這樣的例子包括資料庫(例如Redis、Field-Postgres)、Pub Sub(Kafka)、索引(ElasticSearch)、CI/CD 服務(Courlab、Ylab、Jenkins)和儲存(Portworx、MayaData、Minio、Red Hat)。

許多公司已經開發出相關產品,這些產品可以對於客戶所選 Kubernetes 發行版上運行的這些應用程式提供管理和支援。最值得注意的可能是 Microsoft 的 Azure Arc Data Services,它在客戶環境中提供 Postgres 和 MS SQL 以作為託管服務,但還有許多其他服務,包括用於 Kafka 的 Confluent、用於 Postgres 的 Crunchy Data、用於 Redis 的 Redis Enterprise、Percona、Elasticsearch、Minio、Mayadata 等等。

容器

容器是雲端原生軟體的原子單位。容器由一段程式碼及其所有相依項(二進位檔、程式庫等)封裝而成,並作為獨立進程運行。這轉換為一個新的抽象層。就像虛擬機(VM)是從底層硬體將運算資源抽象化,容器是從底層作業系統(OS)將應用程式抽象化。

容器在幾個重要方面不同於虛擬機。它們的資源佔用空間明顯更小、啟動速度更快,並且更容易跨雲端環境轉移。與虛擬機不同,它們本質上只是短暫的存在。

容器為微服務軟體架構創造了良好的條件。雖然傳統應用程式在本質上是整體式的,但基於微服務的應用程式是作為較小的可組合部件(服務)的集合來建構,這些部件可以獨立擴充,並能實現無中斷升級。服務則由一個或多個執行公共功能的容器組成。

基於容器化/微服務的應用程式使精簡、加速的軟體開發實踐成為可能,這些實踐需要開發人員和IT維運部門之間更緊密的整合和協作,這也被稱為 DevOps。

Virtual Machines (VMs) vs containers

圖 1虛擬機和容器的比較

Kubernetes

由於容器化應用程式非常適合運行於分散式環境,並且其使用運算、儲存和網路資源的方式與傳統應用程式不同,它們需要一層專用於編排容器化工作負載的基礎架構。

Kubernetes 已經躍升為佔主導地位的容器編排器,並且通常被描述為雲端的作業系統。它是一個可攜、可延伸的開源平台,用於管理容器化工作負載和服務,這促進了宣告式組態和自動化。

具體而言,Kubernetes 負責以下任務:

  • 將容器分配給機器(排程)

  • 透過容器運行時引導指定的容器

  • 處理升級、復原和本質上不斷變化的系統

  • 回應失效狀況(容器崩潰等)

  • 建立叢集資源,如服務探索、虛擬機間網路、叢集輸入/輸出等。

Kubernetes 專為實現可擴充性、可用性、安全性和可攜性而設計。它將基礎架構成本最佳化,並在可用資源之間分配工作負載。Kubernetes 叢集的每個組件都可以進行配置,以實現高可用性。

由於全球社群的活躍,帶來各方人士的貢獻,Kubernetes 的功能性得以快速發展,現在有各種各樣的 Kubernetes 發行版本可供使用者使用。儘管經 CNCF 認證的發行版本對使用者最為有利(一致性實現了互操作性),但圍繞 Kubernetes 生命週期管理功能的智慧自動化,外加與儲存、網路、安全性和監視功能的輕鬆整合,對於生產級雲端原生環境至關重要。

邁向「雲端原生」的挑戰

雲端原生技術是業務敏捷性和創新的新貨幣,但對於任何類型的企業來說,配置、部署和管理它們都極具挑戰性。首先,Kubernetes 及其雲端原生技術生態系統高深難懂,並且發展迅速。此外,傳統基礎架構並非依據 Kubernetes 和容器使用 IT 資源的方式來建構。這對軟體開發人員來說是一個重大障礙,他們通常需要能夠按需存取的資源,以及易於使用的雲端原生應用程式服務。最後,每個組織最終都會混合使用本地端和基於公用雲端的 Kubernetes 環境,但要從多雲端的靈活性中獲益取決於能夠有效地管理和監控所有的部署。

雲端原生最佳實務

在資料中心建構企業 Kubernetes 堆疊是 IT 維運團隊的一項重大任務。在具有彈性的基礎架構上運行 Kubernetes 和容器化應用程式至關重要,該基礎架構要能夠回應式擴充,以支援動態的分散式系統。

對於以任意規模運行於 Kubernetes 的雲端原生工作負載而言,Nutanix 超融合基礎架構(HCI)是其理想的基礎架構基石。Nutanix 為 Kubernetes 平台組件和應用程式資料提供了更佳的彈性復原力,並為裸機基礎架構提供了卓越的可擴充性。Nutanix 還為可設定狀態的容器簡化了基礎架構生命週期管理和持久儲存器,消除了組織在部署和管理雲端原生基礎架構時面臨的一些最艱巨的挑戰。

相關產品和解決方案

Nutanix Kubernetes 引擎

快速實施生產就緒型 Kubernetes,並簡化生命週期管理。

適用 Kubernetes 的 HCI

Nutanix HCI 是 Kubernetes 和雲端原生應用程式的理想基礎架構。

適用於雲端原生應用程式的持久儲存器

Nutanix 資料服務和 CSI 將簡易性擴展到配置和管理 Kubernetes 中的持久儲存器。

瞭解熱門資源

Nutanix 產品試用

試用 Nutanix Kubernetes 引擎

利用 Red Hat 和 Nutanix 建構一流的混合多雲端堆疊

開始採用超融合基礎架構 (HCI)

立即開始體驗 Nutanix