什麼是 Kubernetes?
Kubernetes 是一個可移植的、可擴充套件的開源平臺,用於管理容器化的工作負載和服務,可促進宣告式配置和自動化。
什麼是 Serverless ?
無伺服器是一種雲原生開發模型,可使開發人員專注構建和執行應用,而無需管理伺服器。
無伺服器方案中仍然有伺服器,但它們已從應用開發中抽離了出來。雲服務提供者(如公有云服務商、組織內部的基礎設施部門等)負責置備、維護和擴充套件伺服器基礎架構等例行工作。開發人員可以簡單地將程式碼打包到容器中進行部署。
部署之後,無伺服器應用即可響應需求,並根據需要自動擴容。公共雲提供商的無伺服器產品通常透過一種事件驅動執行模型來按需計量。因此,當無伺服器功能閒置時,不會產生費用。
無伺服器與其他雲端計算模型的區別在於,它是由雲提供商負責管理雲基礎架構和應用擴充套件。無伺服器應用部署在容器中,這些容器在被呼叫時會自動按需啟動。
在標準的基礎架構即服務(IaaS)雲端計算模型中,使用者需要預先購買容量單元;也就是說,您要先向公共雲提供商支付始終可用的伺服器元件的費用,才能執行您的應用。 使用者自行負責在需求高時擴充套件伺服器容量,並在不再需要時縮減容量。即使在應用閒置不用期間,執行該應用所需的雲基礎架構也要保持就緒。
無伺服器架構則與之相反,應用僅在需要時啟動。有事件觸發應用程式碼執行時,公共雲提供商才會為這一程式碼分配資源。該程式碼執行結束後,使用者便不再付費。除了成本與效率上的優勢外,無伺服器也能將開發人員從應用擴充套件和伺服器置備相關的瑣碎日常任務中解放出來。
使用無伺服器時,管理作業系統和檔案系統、安全補丁、負載平衡、容量管理、擴充套件、日誌和監控等例行任務都由雲服務提供商分擔。
什麼是 Serverless Kubernetes?
Serverless Kubernetes 也可以被稱為 Nodeless Kubernetes,是一種特殊的 Kubernetes 叢集。它的特殊之處在於:透過 Virtual Kubelet (虛擬 Kubelet)將 Serverless 服務作為 Kubernetes 叢集的一個無限 Node 使用,這樣就無需考慮 Node 數量的問題。
什麼是 Serverless on Kubernetes?
作為一種在自動化基礎架構中執行容器化應用的方式,Kubernetes 是執行無伺服器環境的熱門選擇。然而,Kubernetes 本身並不足以原生執行無伺服器應用。
Knative 是一個開源社群專案,可以新增元件,從而在 Kubernetes 上部署、執行和管理無伺服器應用。
利用 Knative 無伺服器環境,您可以將程式碼部署到 Kubernetes 平臺。藉助 Knative,可以將程式碼打包為容器映象並交給系統,以此來建立相應的服務。程式碼僅在需要時才會執行,並由 Knative 來自動啟動和停止例項。
什麼是 Serverless on Serverless Kubernetes?
有意思的來了,你可以在一個 Serverless Kubernetes 叢集中部署 Knative,從而構建一個無伺服器環境嗎?
答案當然是肯定的啦。這就是“Serverless on Serverless Kubernetes”。
參考
- Serverless Kubernetes - 理想,現實與未來
- Understand Serverless Kubernetes and Serverless on Kubernetes
- Virtual Kubelet
- Knative
本作品採用《CC 協議》,轉載必須註明作者和本文連結