為什么需要 Kubernetes,它能做什么?

在這里插入圖片描述

傳統部署時代:

早期,各個組織是在物理服務器上運行應用程序。 由于無法限制在物理服務器中運行的應用程序資源使用,因此會導致資源分配問題。 例如,如果在同一臺物理服務器上運行多個應用程序, 則可能會出現一個應用程序占用大部分資源的情況,而導致其他應用程序的性能下降。 一種解決方案是將每個應用程序都運行在不同的物理服務器上, 但是當某個應用程序資源利用率不高時,剩余資源無法被分配給其他應用程序, 而且維護許多物理服務器的成本很高。

虛擬化部署時代:

因此,虛擬化技術被引入了。虛擬化技術允許你在單個物理服務器的 CPU 上運行多臺虛擬機(VM)。 虛擬化能使應用程序在不同 VM 之間被彼此隔離,且能提供一定程度的安全性, 因為一個應用程序的信息不能被另一應用程序隨意訪問。
虛擬化技術能夠更好地利用物理服務器的資源,并且因為可輕松地添加或更新應用程序, 而因此可以具有更高的可擴縮性,以及降低硬件成本等等的好處。 通過虛擬化,你可以將一組物理資源呈現為可丟棄的虛擬機集群。
每個 VM 是一臺完整的計算機,在虛擬化硬件之上運行所有組件,包括其自己的操作系統。

容器部署時代:

容器類似于 VM,但是更寬松的隔離特性,使容器之間可以共享操作系統(OS)。 因此,容器比起 VM 被認為是更輕量級的。且與 VM 類似,每個容器都具有自己的文件系統、CPU、內存、進程空間等。 由于它們與基礎架構分離,因此可以跨云和 OS 發行版本進行移植。
容器因具有許多優勢而變得流行起來,例如:
● 敏捷應用程序的創建和部署:與使用 VM 鏡像相比,提高了容器鏡像創建的簡便性和效率。
● 持續開發、集成和部署:通過快速簡單的回滾(由于鏡像不可變性), 提供可靠且頻繁的容器鏡像構建和部署。
● 關注開發與運維的分離:在構建、發布時創建應用程序容器鏡像,而不是在部署時, 從而將應用程序與基礎架構分離。
● 可觀察性:不僅可以顯示 OS 級別的信息和指標,還可以顯示應用程序的運行狀況和其他指標信號。
● 跨開發、測試和生產的環境一致性:在筆記本計算機上也可以和在云中運行一樣的應用程序。
● 跨云和操作系統發行版本的可移植性:可在 Ubuntu、RHEL、CoreOS、本地、 Google Kubernetes Engine 和其他任何地方運行。
● 以應用程序為中心的管理:提高抽象級別,從在虛擬硬件上運行 OS 到使用邏輯資源在 OS 上運行應用程序。
● 松散耦合、分布式、彈性、解放的微服務:應用程序被分解成較小的獨立部分, 并且可以動態部署和管理 - 而不是在一臺大型單機上整體運行。
● 資源隔離:可預測的應用程序性能。
● 資源利用:高效率和高密度。

為什么需要 Kubernetes,它能做什么?

容器是打包和運行應用程序的好方式。在生產環境中, 你需要管理運行著應用程序的容器,并確保服務不會下線。 例如,如果一個容器發生故障,則你需要啟動另一個容器。 如果此行為交由給系統處理,是不是會更容易一些?
這就是 Kubernetes 要來做的事情! Kubernetes 為你提供了一個可彈性運行分布式系統的框架。 Kubernetes 會滿足你的擴展要求、故障轉移你的應用、提供部署模式等。 例如,Kubernetes 可以輕松管理系統的 Canary (金絲雀) 部署。

Kubernetes 為你提供:
● 服務發現和負載均衡Kubernetes 可以使用 DNS 名稱或自己的 IP 地址來暴露容器。 如果進入容器的流量很大, Kubernetes 可以負載均衡并分配網絡流量,從而使部署穩定。
● 存儲編排Kubernetes 允許你自動掛載你選擇的存儲系統,例如本地存儲、公共云提供商等。
● 自動部署和回滾你可以使用 Kubernetes 描述已部署容器的所需狀態, 它可以以受控的速率將實際狀態更改為期望狀態。 例如,你可以自動化 Kubernetes 來為你的部署創建新容器, 刪除現有容器并將它們的所有資源用于新容器。
● 自動完成裝箱計算你為 Kubernetes 提供許多節點組成的集群,在這個集群上運行容器化的任務。 你告訴 Kubernetes 每個容器需要多少 CPU 和內存 (RAM)。 Kubernetes 可以將這些容器按實際情況調度到你的節點上,以最佳方式利用你的資源。
● 自我修復Kubernetes 將重新啟動失敗的容器、替換容器、殺死不響應用戶定義的運行狀況檢查的容器, 并且在準備好服務之前不將其通告給客戶端。
● 密鑰與配置管理Kubernetes 允許你存儲和管理敏感信息,例如密碼、OAuth 令牌和 SSH 密鑰。 你可以在不重建容器鏡像的情況下部署和更新密鑰和應用程序配置,也無需在堆棧配置中暴露密鑰。
● 批處理執行 除了服務外,Kubernetes 還可以管理你的批處理和 CI(持續集成)工作負載,如有需要,可以替換失敗的容器。
● 水平擴縮 使用簡單的命令、用戶界面或根據 CPU 使用率自動對你的應用進行擴縮。
● IPv4/IPv6 雙棧 為 Pod(容器組)和 Service(服務)分配 IPv4 和 IPv6 地址。
● 為可擴展性設計 在不改變上游源代碼的情況下為你的 Kubernetes 集群添加功能。

Kubernetes 不是什么

Kubernetes 不是傳統的、包羅萬象的 PaaS(平臺即服務)系統。 由于 Kubernetes 是在容器級別運行,而非在硬件級別,它提供了 PaaS 產品共有的一些普遍適用的功能, 例如部署、擴展、負載均衡,允許用戶集成他們的日志記錄、監控和警報方案。 但是,Kubernetes 不是單體式(monolithic)系統,那些默認解決方案都是可選、可插拔的。 Kubernetes 為構建開發人員平臺提供了基礎,但是在重要的地方保留了用戶選擇權,能有更高的靈活性。
Kubernetes:
● 不限制支持的應用程序類型。 Kubernetes 旨在支持極其多種多樣的工作負載,包括無狀態、有狀態和數據處理工作負載。 如果應用程序可以在容器中運行,那么它應該可以在 Kubernetes 上很好地運行。
● 不部署源代碼,也不構建你的應用程序。 持續集成(CI)、交付和部署(CI/CD)工作流取決于組織的文化和偏好以及技術要求。
● 不提供應用程序級別的服務作為內置服務,例如中間件(例如消息中間件)、 數據處理框架(例如 Spark)、數據庫(例如 MySQL)、緩存、集群存儲系統 (例如 Ceph)。這樣的組件可以在 Kubernetes 上運行,并且/或者可以由運行在 Kubernetes 上的應用程序通過可移植機制(例如開放服務代理)來訪問。
● 不是日志記錄、監視或警報的解決方案。 它集成了一些功能作為概念證明,并提供了收集和導出指標的機制。
● 不提供也不要求配置用的語言、系統(例如 jsonnet),它提供了聲明性 API, 該聲明性 API 可以由任意形式的聲明性規范所構成。
● 不提供也不采用任何全面的機器配置、維護、管理或自我修復系統。
● 此外,Kubernetes 不僅僅是一個編排系統,實際上它消除了編排的需要。 編排的技術定義是執行已定義的工作流程:首先執行 A,然后執行 B,再執行 C。 而 Kubernetes 包含了一組獨立可組合的控制過程,可以持續地將當前狀態驅動到所提供的預期狀態。 你不需要在乎如何從 A 移動到 C,也不需要集中控制,這使得系統更易于使用且功能更強大、 系統更健壯,更為彈性和可擴展。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212382.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212382.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212382.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【QED】高昂的貓 Ⅰ

目錄 題目背景題目描述輸入格式輸出格式 測試樣例樣例說明數據范圍 思路核心代碼 題目背景 這是小橘。因為它總是看起來很高傲,所以人送外號“高昂的貓”。 題目描述 "錒狗"的房間里放著 n n n ( 1 ≤ n ≤ 1 0 9 ) (1 \leq n \leq 10^9) (1≤n≤109)個…

C# 使用CancellationTokenSource 取消Task執行

寫在前面 在Task創建并執行后,如果狀態發生了變化,需要取消正在執行中的Task,除了使用主線程上的共享變量來判斷之外,更優雅的方式就是就是用CancellationTokenSource來取消任務的執行。 代碼實現 public static void CancelTas…

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ] 一,MQ對比圖 下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更詳細和專業的對比: 特性/功能KafkaRabbitMQZeroMQRocketMQActiveMQ語言JavaErlangCJavaJava協議自有協議AMQP自有協…

算法工程師-機器學習面試題總結(6)

目錄 1.Bagging的思想是什么?它是降低偏差還是方差,為什么? 2.可否將RF的基分類模型由決策樹改成線性模型或者knn?為什么? 3.GBDT梯度提升和梯度下降有什么區別和聯系? 4.如何理解Boosting和Bagging&am…

基于ssm高校實驗室管理系統的設計與實現論文

摘 要 互聯網發展至今,無論是其理論還是技術都已經成熟,而且它廣泛參與在社會中的方方面面。它讓信息都可以通過網絡傳播,搭配信息管理工具可以很好地為人們提供服務。針對高校實驗室信息管理混亂,出錯率高,信息安全性…

散列卡片懸停變為整齊列表

效果展示 CSS 知識點 transform 屬性運用 頁面整體布局 <ul><li><div class"box"><img src"./user1.jpg" /><div class"content"><h4>Hamidah</h4><p>commented on your photo.<br />…

Excel 數據處理記錄

20231203 excel中的字符串以符號間隔開了&#xff0c;如何將其中的字符串挑出&#xff0c;分別放到其他單元列&#xff1a; 在Excel中打開你的表格&#xff0c;選中包含以符號間隔的字符串的單元格。在頂部菜單中&#xff0c;找到“數據”選項&#xff0c;并選擇“分列”。在…

電腦主板支持的cpu型號匯總

一、如何選擇不同的主板和對應CPU 1、看針腳&#xff1a;網上有相應的參數&#xff0c;只要CPU能安裝到主板中&#xff0c;基本就兼容&#xff0c;這主要取決CPU插槽和主板插槽十分一致。 2、看型號&#xff1a;桌面處理器&#xff0c;只有Intel和AMD兩大平臺&#xff0c;他們對…

dlib是什么?

dlib C Libraryhttp://dlib.net/ dlib是什么&#xff1f; Dlib is a modern C toolkit containing machine learning algorithms and tools for creating complex software in C to solve real world problems. It is used in both industry and academia in a wide range of…

基于SSM的高校共享單車管理系統的設計與實現論文

摘 要 網絡技術和計算機技術發展至今&#xff0c;已經擁有了深厚的理論基礎&#xff0c;并在現實中進行了充分運用&#xff0c;尤其是基于計算機運行的軟件更是受到各界的關注。加上現在人們已經步入信息時代&#xff0c;所以對于信息的宣傳和管理就很關鍵。因此高校單車租賃信…

二百一十、Hive——Flume采集的JSON數據文件寫入Hive的ODS層表后字段的數據殘缺

一、目的 在用Flume把Kafka的數據采集寫入Hive的ODS層表的HDFS文件路徑后&#xff0c;發現HDFS文件中沒問題&#xff0c;但是ODS層表中字段的數據卻有問題&#xff0c;字段中的JSON數據不全 二、Hive處理JSON數據方式 &#xff08;一&#xff09;將Flume采集Kafka的JSON數據…

【華為OD題庫-075】拼接URL-Java

題目 題目描述: 給定一個url前綴和url后綴,通過,分割。需要將其連接為一個完整的url。 如果前綴結尾和后綴開頭都沒有/&#xff0c;需要自動補上/連接符 如果前綴結尾和后綴開頭都為/&#xff0c;需要自動去重 約束:不用考慮前后綴URL不合法情況 輸入描述: url前綴(一個長度小于…

49.Go避免大量并發訪問DB、避免緩存擊穿、緩存穿透、緩存雪崩以及使用延遲雙刪保證數據一致性

文章目錄 一、在高并發下&#xff0c;如何避免大量請求直接訪問數據庫&#xff1f;二、避免緩存擊穿二、避免緩存穿透三、避免緩存雪崩四、延遲雙刪保證數據一致性五、在使用 Go 的 time.AfterFunc 函數時&#xff0c;如果刪除緩存操作失敗怎么辦&#xff1f; MySQL和 Redis是…

vue自定義指令實現按鈕只允許點擊一次

vue自定義指令實現按鈕只允許點擊一次 vue自定義指令實現按鈕只允許點擊一次 這個例子中創建了一個名為 click-once 的自定義指令&#xff0c;通過 bind 鉤子函數給元素綁定了一個點擊事件&#xff0c;并且利用一個變量 clicked 控制了按鈕只能點擊一次的行為。在點擊后會執行傳…

【ITK庫學習】使用itk庫進行圖像濾波ImageFilter:Voting濾波器

目錄 1、itkVotingBinaryImageFilter2、itkVotingBinaryHoleFillingImageFilter 洞穴充填濾波器3、itkVotingBinaryIterativeHoleFillingImageFilter4、itkLabelVotingImageFilter 1、itkVotingBinaryImageFilter 該類是一個基類&#xff0c;用于根據前景和背景像素的鄰域投票…

【數據結構實踐課設】新生報道注冊管理信息系統

目錄 1.主要框架 2.寫入文件 3.讀取文件 4.注冊學生信息 5.增加學生信息 6.刪除學生信息 7.按姓名查詢 8.按班級查詢 9.按專業查詢 10.打印學生信息 11.完整代碼 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所…

git commit語義規范

合理的應當如 [header]fix(core): remove ....(#33949) These .... RP Close #33949(可選) Header可選 代碼類 新增功能(feat) 修復缺陷(fix) 改進性能(perf) 格式化代碼(style) 優化代碼(refactor) 非代碼類 更新測試代碼(test) 部署相關變更(ci) 文檔類變更(do…

【Linux】第二十七站:內存管理與文件頁緩沖區

文章目錄 一、物理內存和磁盤交換數據的最小單位二、操作系統如何管理內存三、文件的頁緩沖區四、基數樹or基數&#xff08;字典樹&#xff09;五、總結 一、物理內存和磁盤交換數據的最小單位 我們知道系統當中除了進程管理、文件管理以外&#xff0c;還有內存管理 內存的本質…

思科最新版Cisco Packet Tracer 8.2.1安裝

思科最新版Cisco Packet Tracer 8.2.1安裝 一. 注冊并登錄CISCO賬號二. 下載 Cisco Packet Tracer 8.2.1三. 安裝四. 漢化五. cisco packet tracer教學文檔六. 正常使用圖 前言 這是我在這個網站整理的筆記,有錯誤的地方請指出&#xff0c;關注我&#xff0c;接下來還會持續更新…

[香橙派]orange pi zero 3 燒錄Ubuntu系統鏡像——無需HDMI數據線安裝

一、前言 本文我們將介紹如何使用orange pi zero 3 安裝Ubuntu系統&#xff0c;本文相關步驟均參考自開發手冊。 二、實施準備 根據開發手冊中所提到的&#xff0c;我們應該擁有如下配件: 1.orange pi zero 3 開發板 2.TF 卡——最小 8GB 容量的 class10 級或以上的高速閃迪卡。…