文章編號:11347時間:2024-09-30人氣:
Kubernetes 是一個開源容器編排系統(tǒng),可用于管理和調(diào)度容器化應(yīng)用程序。它為云原生應(yīng)用程序提供了許多好處,包括自動化、可擴展性和安全性。
在云環(huán)境中部署和管理 Kubernetes 集群時,遵循特定的最佳實踐至關(guān)重要。這些最佳實踐有助于確保集群的高可用性、安全性和可維護性。
本文將詳細介紹如何在云原生環(huán)境中使用Kilo進行WireGuard的應(yīng)用,尤其是針對Kubernetes集群的組網(wǎng)。 對于WireGuard新手,建議按照特定順序閱讀相關(guān)教程,以便更好地理解。 云原生領(lǐng)域中,Kilo主要用于CNI,可以與Flannel、Wormhole結(jié)合提供加密,或者單獨作為組網(wǎng)工具。 對于組網(wǎng)需求,推薦使用Kilo,尤其是當(dāng)需要在AWS、Azure、GCP和阿里云的云主機之間構(gòu)建一個無縫的k3s集群,且允許跨設(shè)備訪問Pod和Service IP時。 實現(xiàn)這一目標(biāo)分為兩步:首先,通過Kilo調(diào)整k3s集群節(jié)點間的容器網(wǎng)絡(luò),取消默認CNI;重啟服務(wù)器后,可以選擇Kilo作為CNI。 Kilo支持三種網(wǎng)絡(luò)拓撲:邏輯分組互聯(lián)、全互聯(lián)和混合模式,具體操作需要根據(jù)節(jié)點的特定情況進行調(diào)整。 以全互聯(lián)模式為例,部署Kilo需要拷貝kubeconfig、修改API地址、添加節(jié)點注解并克隆Kilo官方倉庫進行配置。 部署成功后,節(jié)點將新增網(wǎng)絡(luò)接口,用于實現(xiàn)跨云容器通信。 接下來,需要創(chuàng)建新的網(wǎng)絡(luò)接口wg0,以本地網(wǎng)絡(luò)訪問云上的Pod和Service IP。 通過wg-gen-web管理WireGuard配置,并根據(jù)每個節(jié)點的需要調(diào)整,以實現(xiàn)跨設(shè)備訪問。 最后,通過本地運行WireGuard,你將能夠輕松地在云主機的Kubernetes集群中自由穿梭。 本文已涵蓋Kilo的部署和基本網(wǎng)絡(luò)配置,對于進一步優(yōu)化如通過CoreDNS訪問服務(wù)名稱,讀者可自行探索。 最后,歡迎訪問獲取Kubernetes離線安裝包和sealos的最新特性,以及加入釘釘群獲取更多實時信息。
云原生,這一概念近年來在科技圈內(nèi)頗為流行,但它對于非專業(yè)人士來說,往往顯得有些晦澀難懂。 本文旨在以較為通俗的語言,提供一個云原生的入門級科普,幫助你理解這一術(shù)語的基本含義及其核心理念。 云原生,直譯自“Cloud Native”,指的是設(shè)計與構(gòu)建旨在云環(huán)境中運行的應(yīng)用與服務(wù),這一概念的核心在于利用云計算資源的彈性和靈活性,以實現(xiàn)應(yīng)用的高效部署、管理和擴展。 云計算,作為云原生的基礎(chǔ),提供了一種基于互聯(lián)網(wǎng)的計算資源服務(wù)模式。 通過云計算,用戶可以租用各種基礎(chǔ)設(shè)施,如服務(wù)器、存儲和網(wǎng)絡(luò)資源等,實現(xiàn)高效資源利用和成本節(jié)約。 云計算服務(wù)商,如AWS、Azure、阿里云、谷歌云、IBM云、騰訊云、華為云等,通過統(tǒng)一管理大量基礎(chǔ)設(shè)施,實現(xiàn)資源的動態(tài)分配,支持按需使用,備份與恢復(fù)簡便,以及快速部署與集成。 云原生技術(shù)集合了容器、服務(wù)網(wǎng)格、微服務(wù)、不可變基礎(chǔ)設(shè)施和聲明式API等關(guān)鍵概念,旨在構(gòu)建容錯性好、易于管理且便于觀察的松耦合系統(tǒng),通過可靠的自動化手段,實現(xiàn)應(yīng)用的頻繁和可預(yù)測的重大變更。 微服務(wù)是云原生架構(gòu)中的核心概念,它將應(yīng)用拆分為一系列松散耦合的組件,每個組件負責(zé)特定功能,通過容器技術(shù)實現(xiàn)獨立部署和擴展,從而提高了系統(tǒng)的靈活性和可維護性。 容器技術(shù),如Docker,為微服務(wù)提供了統(tǒng)一的運行環(huán)境,使得應(yīng)用能夠在不同環(huán)境中輕松部署。 Kubernetes(K8s)作為容器編排平臺的代表,簡化了容器化的微服務(wù)管理,支持大規(guī)模部署和自動伸縮。 服務(wù)網(wǎng)格,通過解決微服務(wù)間的網(wǎng)絡(luò)相關(guān)問題,如通信、安全和監(jiān)控,進一步優(yōu)化了微服務(wù)架構(gòu)的協(xié)作效率。 不可變基礎(chǔ)設(shè)施強調(diào)應(yīng)用運行環(huán)境的穩(wěn)定性和一致性,避免了手動配置和維護的復(fù)雜性,促進了一鍵部署的實現(xiàn)。 聲明式API的使用,簡化了代碼編寫和管理,使得應(yīng)用狀態(tài)的調(diào)整更加直觀和高效。 自動化交付方法,如持續(xù)集成/持續(xù)部署(CI/CD)或DevOps,與云原生技術(shù)緊密結(jié)合,提高了應(yīng)用開發(fā)和部署的效率。 云原生技術(shù)并非適用于所有場景,它在需要快速迭代、靈活擴展的應(yīng)用場景中表現(xiàn)出色,但在對數(shù)據(jù)安全、隱私和可持續(xù)服務(wù)有嚴格要求的場景中,需要進行謹慎評估。 通過本文的介紹,希望你能夠?qū)υ圃母拍钣辛艘欢ǖ睦斫猓⒄J識到其在現(xiàn)代應(yīng)用開發(fā)和部署中的重要性和潛力。 如果你對云原生技術(shù)有更多疑問或感興趣的話題,歡迎進一步探討。
在轉(zhuǎn)向 Kubernetes 部署后,我們團隊在開發(fā)過程中遇到了挑戰(zhàn),尋求在云原生環(huán)境中無縫聯(lián)調(diào)本地和開發(fā)環(huán)境的解決方案。 以往的開發(fā)流程有兩套模式,這導(dǎo)致了本地編碼效率低下:2分鐘編碼后,需要5分鐘在環(huán)境中驗證,嚴重影響了工作效率。 為了解決這一問題,我們尋求一種簡單易學(xué)、基于配置、團隊統(tǒng)一的解決方案。 經(jīng)過研究,Telepresence和Bridge to Kubernetes這兩款工具進入了我們的視野。 Telepresence通過在Pod中部署網(wǎng)絡(luò)代理,讓本地進程與Kubernetes環(huán)境無縫對接,而Bridge to Kubernetes則專注于在開發(fā)計算機和集群間雙向通信,但其IDE插件支持有限。 最終,我們選擇Nocalhost,一款基于IDE的云原生開發(fā)工具。 Nocalhost不僅具備Telepresence和Bridge to Kubernetes的功能,還提供了更全面的開發(fā)環(huán)境管理,如與VSCode、IntelliJ IDEA深度集成,一鍵部署和遠程調(diào)試。 它通過單個CLI和IDE插件,利用KubeConfig與集群通信,實時同步代碼并在編碼時自動同步到K8s容器,顯著提升開發(fā)效率。 與其他工具相比,Nocalhost在特性、支持IDE插件和用戶體驗上表現(xiàn)出色,特別是在大型團隊和復(fù)雜環(huán)境中構(gòu)建云原生應(yīng)用方面。 它在Kubernetes集群中開發(fā)的應(yīng)用場景廣泛,且無需團隊成員成為Kubernetes專家,簡化了協(xié)作流程。 安裝Nocalhost的過程簡單,無論使用JetBrains系列還是VSCode,都能便捷集成。 只需要在項目根目錄創(chuàng)建文件夾并配置,定義本地與遠程環(huán)境的同步規(guī)則。 對于Python和Golang項目,Nocalhost提供了熱加載功能,實時更新代碼并自動重新執(zhí)行命令。 總之,Nocalhost以其全面的功能、易用性和高度集成的優(yōu)勢,成為我們團隊在云原生時代提升開發(fā)效率的理想選擇。 通過Nocalhost,開發(fā)和聯(lián)調(diào)變得更加高效,極大降低了本地環(huán)境搭建和配置的時間,優(yōu)化了團隊協(xié)作流程。
簡介:SAE通過對彈性組件和應(yīng)用全生命周期的不斷優(yōu)化以達到秒級彈性,并在彈性能力,場景豐富度,穩(wěn)定性上具備核心競爭力,是傳統(tǒng)應(yīng)用0改造上Serverless的最佳選擇。
Serverless時代的來臨Serverless顧名思義,是一種“無服務(wù)器”架構(gòu),因為屏蔽了服務(wù)器的各種運維復(fù)雜度,讓開發(fā)人員可以將更多精力用于業(yè)務(wù)邏輯設(shè)計與實現(xiàn)。 在Serverless架構(gòu)下,開發(fā)者只需要關(guān)注于上層應(yīng)用邏輯的開發(fā),而諸如資源申請,環(huán)境搭建,負載均衡,擴縮容等等服務(wù)器相關(guān)的復(fù)雜操作都由平臺來進行維護。 在云原生架構(gòu)白皮書中,對Serverless的特性有以下概括:
全托管的計算服務(wù),客戶只需要編寫代碼構(gòu)建應(yīng)用,無需關(guān)注同質(zhì)化的、負擔(dān)繁重的基于服務(wù)器等基礎(chǔ)設(shè)施的開發(fā)、運維、安全、高可用等工作;
通用性,能夠支撐云上所有重要類型的應(yīng)用;
自動的彈性伸縮,讓用戶無需為資源使用提前進行容量規(guī)劃;
按量計費,讓企業(yè)使用成本得有效降低,無需為閑置資源付費。
回顧整個Serverless的發(fā)展歷程,我們可以看到從2012年首次提出Serverless概念為起點,再到AWS推出Lambda云產(chǎn)品的這段時間內(nèi),人們對Serverless的關(guān)注度出現(xiàn)了爆發(fā)式的增長,對無服務(wù)器的期待和暢想逐漸引爆整個行業(yè),但Serverless的推廣和生產(chǎn)落地的過程卻不容樂觀,Serverless理念與實操生產(chǎn)的過程中存在Gap,挑戰(zhàn)著人們固有的使用體驗和習(xí)慣。
阿里云堅信Serverless將作為云原生之后確定性的發(fā)展方向,相繼推出了FC,SAE等多款云產(chǎn)品來覆蓋不同領(lǐng)域,不同類型的應(yīng)用負載來使用Serverless技術(shù),并且不斷在推進整個Serverless理念的普及與發(fā)展。
就當(dāng)前Serverless整個市場格局而言,阿里云已經(jīng)做到了Serverless產(chǎn)品能力中國第一,全球領(lǐng)先,在去年Forrester評測魔力象限中可以明顯的看到阿里云在Serverless領(lǐng)域已經(jīng)與AWS不相上下,于此同時,阿里云Serverless用戶占比中國第一,在2020年中國云原生用戶調(diào)研報告中整個阿里云Serverless用戶占比已經(jīng)達到了66%,而在Serverless技術(shù)采用情況的調(diào)研中表明,已經(jīng)有越來越多的開發(fā)者和企業(yè)用戶將Serverless技術(shù)應(yīng)用于核心業(yè)務(wù)或者將要應(yīng)用于核心業(yè)務(wù)之中。
Serverless彈性探索彈性能力作為云的核心能力之一,所關(guān)注的問題是容量規(guī)劃與實際集群負載間的矛盾,通過兩幅圖的對比可以看到,如果采用預(yù)先規(guī)劃的方式進行資源安排,會由于資源準(zhǔn)備量和資源需求量的不匹配導(dǎo)致資源浪費或者資源不足的情況,進而導(dǎo)致成本上的過多開銷甚至業(yè)務(wù)受損,而我們期望極致彈性能力,是準(zhǔn)備的資源和實際需求的資源幾乎匹配,這樣使得應(yīng)用整體的資源利用率較高,成本也隨業(yè)務(wù)的增減和相應(yīng)的增減,同時不會出現(xiàn)因容量問題影響應(yīng)用可用性的情況,這就是彈性的價值。
彈性其實現(xiàn)上分為可伸縮性和故障容忍性,可伸縮性意味著底層資源可以參照指標(biāo)的變化有一定的自適應(yīng)能力,而故障容忍性則是通過彈性自愈確保服務(wù)中的應(yīng)用或?qū)嵗幱诮】档臓顟B(tài)。 上述能力帶來的價值收益在于降成本的同時提升應(yīng)用可用性,一方面,資源使用量貼合應(yīng)用實際消耗量,另一方面,提升峰值的應(yīng)用可用性,進而靈活適應(yīng)市場的不斷發(fā)展與變化。
下面將對當(dāng)前較為普遍的三種彈性伸縮模式進行闡述和分析。
首先是IaaS彈性伸縮,其代表產(chǎn)品是各云廠商云服務(wù)器彈性伸縮,如阿里云ess,可以通過配置云監(jiān)控的告警規(guī)則來觸發(fā)相應(yīng)的ECS增減操作,同時支持動態(tài)增減Slb后端服務(wù)器和Rds白名單來保證可用性,通過健康檢查功能實現(xiàn)彈性自愈能力。 ESS定義了伸縮組的概念,即彈性伸縮的基本單位,為相同應(yīng)用場景的ECS實例的集合及關(guān)聯(lián)Slb,Rds,同時支持多種伸縮規(guī)則,如簡單規(guī)則,進步規(guī)則,目標(biāo)追蹤規(guī)則,預(yù)測規(guī)則等,用戶的使用流程為創(chuàng)建伸縮組和伸縮配置,創(chuàng)建伸縮規(guī)則,監(jiān)控查看彈性執(zhí)行情況。
Kubernetes彈性伸縮,這里主要關(guān)注于水平彈性hpa,其代表產(chǎn)品為K8s以及其所對應(yīng)的托管云產(chǎn)品,如阿里云容器服務(wù),K8s做為面向應(yīng)用運維的基礎(chǔ)設(shè)施和PlatformforPlatform,提供的內(nèi)置能力主要是圍繞著容器級別的管理和編排來展開的,而彈性能力聚焦于對底層Pod的動態(tài)水平伸縮,K8shpa通過輪詢Pod的監(jiān)控數(shù)據(jù)并將它與目標(biāo)期望值比較進行,通過算法實時計算來產(chǎn)生期望的副本數(shù),進而對Workload的副本數(shù)進行增減操作,用戶在實際使用上需要創(chuàng)建并配置對應(yīng)的指標(biāo)源和彈性規(guī)則以及對應(yīng)的Workload,可以通過事件來查看彈性的執(zhí)行情況。
最后介紹一下應(yīng)用畫像彈性伸縮,其主要用于互聯(lián)網(wǎng)公司內(nèi)部,如阿里ASI容量平臺。 容量平臺提供容量預(yù)測服務(wù)和容量變更決策服務(wù),指導(dǎo)底層容量變更組件如AHPA/VPA實現(xiàn)容量彈性伸縮,并根據(jù)彈性結(jié)果修正容量畫像。 以畫像驅(qū)動為主+指標(biāo)驅(qū)動為輔實現(xiàn)彈性伸縮能力,通過提前伸縮+實時修正來降低彈性伸縮風(fēng)險。 整個彈性伸縮會借助odps和機器學(xué)習(xí)能力對實例監(jiān)控等數(shù)據(jù)進行處理并產(chǎn)生應(yīng)用畫像,如基準(zhǔn)畫像,彈性畫像,大促畫像等,并借助容量平臺來完成畫像注入,變更管控和故障熔斷等操作。 用戶使用流程為應(yīng)用接入,基于歷史數(shù)據(jù)/經(jīng)驗生成對應(yīng)的容量畫像,實時監(jiān)控指標(biāo)修正畫像,并監(jiān)控查看彈性執(zhí)行情況。
從對比可以看出各產(chǎn)品彈性伸縮功能模式上從抽象來講基本相同,均由觸發(fā)源,彈性決策和觸發(fā)動作組成,觸發(fā)源一般依賴外部監(jiān)控系統(tǒng),對節(jié)點指標(biāo),應(yīng)用指標(biāo)進行采集處理,彈性決策一般基于周期性輪詢并算法決策,有部分基于歷史數(shù)據(jù)分析預(yù)測以及用戶定義的定時策略,而觸發(fā)動作為對實例進行水平擴縮,并提供變更記錄與對外通知。 各個產(chǎn)品在此基礎(chǔ)上做場景豐富度,效率,穩(wěn)定性的競爭力,并通過可觀測能力提升彈性系統(tǒng)的透明度,便于問題排查和指導(dǎo)彈性優(yōu)化,同時提升用戶使用體驗與粘性。
各產(chǎn)品彈性伸縮模型也存在這一定的差異,對于IaaS彈性伸縮,其作為老牌彈性伸縮能力,沉淀時間長,功能強大且豐富,云廠商間能力趨于同質(zhì)化。 彈性效率相較容器受限,且強綁定各自底層Iaas資源。 Kubernetes作為開源產(chǎn)品,通過社區(qū)力量不斷優(yōu)化迭代彈性能力和最佳實踐,更符合絕大部分開發(fā)運維人員訴求。 對彈性行為和api進行高度抽象,但其可擴展性不強,無法支持自定義需求。 而應(yīng)用畫像彈性伸縮具有集團內(nèi)部特色,根據(jù)集團應(yīng)用現(xiàn)狀和彈性訴求進行設(shè)計,且更聚焦于資源池預(yù)算成本優(yōu)化,縮容風(fēng)險,復(fù)雜度等痛點。 不易拷貝擴展,特別對于外部中小客戶不適用。
從終態(tài)目標(biāo)上,可以看出公有云與互聯(lián)網(wǎng)企業(yè)方向的不同:
互聯(lián)網(wǎng)企業(yè)往往由于其內(nèi)部應(yīng)用具有顯著流量特征,應(yīng)用啟動依賴多,速度慢,且對整體資源池容量水位,庫存財務(wù)管理,離在線混部有組織上的諸多訴求,因而更多的是以容量畫像提前彈性擴容為主,基于Metrics計算的容量數(shù)據(jù)作為實時修正,其目標(biāo)是容量畫像足夠精準(zhǔn)以至于資源利用率達到預(yù)期目標(biāo)。
公有云廠商服務(wù)于外部客戶,提供更為通用,普適的能力,并通過可拓展性滿足不同用戶的差異化需求。 尤其在Serverless場景,更強調(diào)應(yīng)用應(yīng)對突發(fā)流量的能力,其目標(biāo)在于無需容量規(guī)劃,通過指標(biāo)監(jiān)控配合極致彈性能力實現(xiàn)應(yīng)用資源的近乎按需使用且整個過程服務(wù)可用。
Serverless彈性落地Serverless作為云計算的最佳實踐、云原生發(fā)展的方向和未來演進趨勢,其核心價值在于快速交付、智能彈性、更低成本。
在時代背景下,SAE應(yīng)運而生,SAE是一款面向應(yīng)用的ServerlessPaaS平臺,支持SpringCloud、Dubbo等主流開發(fā)框架,用戶可以零代碼改造直接將應(yīng)用部署到SAE,并且按需使用,按量計費,可以充分發(fā)揮Serverless的優(yōu)勢為客戶節(jié)省閑置資源成本,同時體驗上采用全托管,免運維的方式,用戶只需聚焦于核心業(yè)務(wù)開發(fā),而應(yīng)用生命周期管理,微服務(wù)管理,日志,監(jiān)控等功能交由SAE完成。
彈性的競爭力主要在于場景豐富度,效率,穩(wěn)定性的競爭力,先講一下SAE在彈性效率上的優(yōu)化。
通過對SAE應(yīng)用的整個生命周期進行數(shù)據(jù)統(tǒng)計和可視化分析,其包含調(diào)度,initcontainer創(chuàng)建,拉取用戶鏡像,創(chuàng)建用戶容器,啟動用戶容器&應(yīng)用這幾個階段,示意圖中對其耗時的占比進行了簡化。 我們可以看到整個應(yīng)用生命周期耗時集中于調(diào)度,拉取用戶鏡像,應(yīng)用冷啟動這幾個階段。 針對于調(diào)度階段,其耗時主要在于SAE當(dāng)前會執(zhí)行打通用戶VPC操作,由于該步驟強耦合于調(diào)度,本身耗時較長,且存在創(chuàng)建長尾超時,失敗重試等情況,導(dǎo)致調(diào)度鏈路整體耗時較長。
由此產(chǎn)生的疑問是可否優(yōu)化調(diào)度速度?可否跳過調(diào)度階段?而對于拉取用戶鏡像,其包含拉取鏡像與解壓鏡像的時長,特別是在大容量鏡像部署的情況下尤為突出。 優(yōu)化的思路在于拉取鏡像是否可以優(yōu)化使用緩存,解壓鏡像是否可以優(yōu)化。 而對于應(yīng)用冷啟動,SAE存在大量單體和微服務(wù)的JAVA應(yīng)用,JAVA類型應(yīng)用往往啟動依賴多,加載配置慢,初始化過程長,導(dǎo)致冷啟動速往往達到分鐘級。 優(yōu)化的方向在于可否避免冷啟動流程并使用戶盡量無感,應(yīng)用無改造。
首先SAE采用了原地升級能力,SAE起初使用了K8s原生的Deployment滾動升級策略進行發(fā)布流程,會先創(chuàng)建新版本Pod,再銷毀舊版本Pod進行升級,而所謂原地升級,即只更新Pod中某一個或多個容器版本、而不影響整個Pod對象、其余容器的升級。 其原理是通過K8spatch能力,實現(xiàn)原地升級Container,通過K8sreadinessGates能力,實現(xiàn)升級過程中流量無損。
原地升級給SAE帶來了諸多價值,其中最重要的是避免重調(diào)度,避免Sidecar容器(ARMS,SLS,AHAS)重建,使得整個部署耗時從消耗整個Pod生命周期到只需要拉取和創(chuàng)建業(yè)務(wù)容器,于此同時因為無需調(diào)度,可以預(yù)先在Node上緩存新鏡像,提高彈性效率。 SAE采用阿里開源Openkruise項目提供的Cloneset作為新的應(yīng)用負載,借助其提供的原地升級能力,使得整個彈性效率提升42%。
同時SAE采用了鏡像預(yù)熱能力,其包含兩種預(yù)熱形式:調(diào)度前預(yù)熱,SAE會對通用的基礎(chǔ)鏡像進行全節(jié)點緩存,以避免其頻繁的從遠端進行拉取。 與此同時對于分批的場景支持調(diào)度中預(yù)熱,借助Cloneset原地升級能力,在升級的過程中可以感知到實例的節(jié)點分布情況,這樣就可以在第一批部署新版本鏡像的同時,對后面批次的實例所在節(jié)點進行鏡像預(yù)拉取,進而實現(xiàn)調(diào)度與拉取用戶鏡像并行。 通過這項技術(shù),SAE彈性效率提升了30%。
剛才講述的優(yōu)化點在于拉取鏡像部分,而對于解壓鏡像,傳統(tǒng)容器運行需要將全量鏡像數(shù)據(jù)下載后再解包,然而容器啟動可能僅使用其中部分的內(nèi)容,導(dǎo)致容器啟動耗時長。 SAE通過鏡像加速技術(shù),將原有標(biāo)準(zhǔn)鏡像格式自動轉(zhuǎn)化為支持隨機讀取的加速鏡像,可以實現(xiàn)鏡像數(shù)據(jù)免全量下載和在線解壓,大幅提升應(yīng)用分發(fā)效率,同時利用Acree提供的P2P分發(fā)能力也可以有效減少鏡像分發(fā)的時間。
對于Java應(yīng)用冷啟動較慢的痛點,SAE聯(lián)合Dragonwell11提供了增強的AppCDS啟動加速策略,AppCDS即ApplicationClassDataSharing,通過這項技術(shù)可以獲取應(yīng)用啟動時的Classlist并Dump其中的共享的類文件,當(dāng)應(yīng)用再次啟動時可以使用共享文件來啟動應(yīng)用,進而有效減少冷啟動耗時。 映射到SAE的部署場景,應(yīng)用啟動后會生成對應(yīng)的緩存文件在共享的nas中,而在進行下一次發(fā)布的過程中就可以使用緩存文件進行啟動。 整體冷啟動效率提升45%。
除了對整個應(yīng)用生命周期的效率進行優(yōu)化外,SAE也對彈性伸縮進行了優(yōu)化,整個彈性伸縮流程包括彈性指標(biāo)獲取,指標(biāo)決策以及執(zhí)行彈性擴縮操作三部分。 對于彈性指標(biāo)獲取,基礎(chǔ)監(jiān)控指標(biāo)數(shù)據(jù)已經(jīng)達到了秒級獲取,而對于七層的應(yīng)用監(jiān)控指標(biāo),SAE正在規(guī)劃采用流量透明攔截的方案保證指標(biāo)獲取的實時性。 而彈性決策階段,彈性組件啟用了多隊列并發(fā)進行Reconcile,并實時監(jiān)控隊列堆積,延時情況。
SAE彈性伸縮包括強大的指標(biāo)矩陣,豐富的策略配置,完善的通知告警機制及全方位可觀測能力,支持多種數(shù)據(jù)源:原生的MetricsServer,MetricsAdapter,Prometheus,云產(chǎn)品SLS,CMS,SLB以及外部的網(wǎng)關(guān)路由等,支持多種指標(biāo)類型:CPU、MEM、QPS、RT、TCP連接數(shù),出入字節(jié)數(shù),磁盤使用率,Java線程數(shù),GC數(shù)還有自定義指標(biāo)。 對指標(biāo)的抓取和預(yù)處理后,可以自定義配置彈性策略來適配應(yīng)用的具體場景:快擴快縮,快擴慢縮,只擴不縮,只縮不擴,DRYRUN,自適應(yīng)擴縮等。
同時可以進行更為精細化的彈性參數(shù)配置,如實例上下限,指標(biāo)區(qū)間,步長比例范圍,冷卻、預(yù)熱時間,指標(biāo)采集周期和聚和邏輯,CORN表達式,后續(xù)也會支持事件驅(qū)動的能力。 彈性觸發(fā)后會進行對應(yīng)的擴縮容操作,并通過切流保證流量無損,并且可以借助完善的通知告警能力(釘釘,webhook,電話,郵件,短信)來實時觸達告知用戶。 彈性伸縮提供了全方位的可觀測能力,對彈性的決策時間,決策上下文進行清晰化展現(xiàn),并且做到實例狀態(tài)可回溯,實例SLA可監(jiān)控。
SAE彈性能力在場景豐富度上也有著相應(yīng)的競爭力,這里重點介紹一下SAE當(dāng)前支持的四種場景:
定時彈性:在已知應(yīng)用流量負載周期的情況下進行配置,應(yīng)用實例數(shù)可以按照時間,星期,日期周期進行規(guī)律化擴縮,如在早8點到晚8點的時間段保持10個實例數(shù)應(yīng)對白天流量,而在其余時間由于流量較低則維持在2個實例數(shù)甚至縮0。 適用于資源使用率有周期性規(guī)律的應(yīng)用場景,多用于證券、醫(yī)療、政府和教育等行業(yè)。
指標(biāo)彈性:可以配置期望的監(jiān)控指標(biāo)規(guī)則,SAE會時應(yīng)用的指標(biāo)穩(wěn)定在所配置的指標(biāo)規(guī)則內(nèi),并且默認采用快擴慢縮的模式來保證穩(wěn)定性。 如將應(yīng)用的cpu指標(biāo)目標(biāo)值設(shè)置為60%,QPS設(shè)置為1000,實例數(shù)范圍為2-50。 這種適用于突發(fā)流量和典型周期性流量的應(yīng)用場景,多用于互聯(lián)網(wǎng)、游戲和社交平臺等行業(yè)。
混合彈性:將定時彈性與指標(biāo)彈性相結(jié)合,可以配置不同時間,星期,日期下的指標(biāo)規(guī)則,進而更加靈活的應(yīng)對復(fù)雜場景的需求。 如早8點到晚8點的時間段CPU指標(biāo)目標(biāo)值設(shè)置為60%,實例數(shù)范圍為10-50,而其余時間則將實例數(shù)范圍降為2-5,適用于兼?zhèn)滟Y源使用率有周期性規(guī)律和有突發(fā)流量、典型周期性流量的應(yīng)用場景,多用于互聯(lián)網(wǎng)、教育和餐飲等行業(yè)。
自適應(yīng)彈性:SAE針對流量突增場景進行了優(yōu)化,借助流量激增窗口,計算當(dāng)前指標(biāo)在這個時刻上是否出現(xiàn)了流量激增問題,并會根據(jù)流量激增的強烈程度在計算擴容所需的實例時會增加一部分的冗余,并且在激增模式下,不允許縮容。
穩(wěn)定性是SAE彈性能力建設(shè)的過程中非常重要的一環(huán),保證用戶應(yīng)用在彈性過程中按照預(yù)期行為進行擴縮,并保證整個過程的可用性是關(guān)注的重點。 SAE彈性伸縮整體遵循快擴慢縮的原則,通過多級平滑防抖保證執(zhí)行穩(wěn)定性,同時對于指標(biāo)激增場景,借助自適應(yīng)能力提前擴容。 SAE當(dāng)前支持四級彈性平滑配置保證穩(wěn)定性:
一級平滑:對指標(biāo)獲取周期,單次指標(biāo)獲取的時間窗口,指標(biāo)計算聚和邏輯進行配置
二級平滑:對指標(biāo)數(shù)值容忍度,區(qū)間彈性進行配置
三級平滑:對單位時間擴縮步長,百分比,上下限進行配置
四級平滑:對擴縮冷卻窗口,實例預(yù)熱時間進行配置
Serverless彈性最佳實踐SAE彈性伸縮可以有效解決瞬時流量波峰到來時應(yīng)用自動擴容,波峰結(jié)束后自動縮容。 高可靠性、免運維、低成本的保障應(yīng)用平穩(wěn)運行,在使用的過程中建議遵循以下最佳實踐進行彈性配置。
配置健康檢查和生命周期管理
建議對應(yīng)用健康檢查進行配置,以保證彈性擴縮過程中的應(yīng)用整體可用性,確保您的應(yīng)用僅在啟動、運行并且準(zhǔn)備好接受流量時才接收流量同時建議配置生命周期管理Prestop,以確保縮容時按照預(yù)期優(yōu)雅下線您的應(yīng)用。
采用指數(shù)重試機制
為避免因彈性不及時,應(yīng)用啟動不及時或者應(yīng)用沒有優(yōu)雅上下線導(dǎo)致的服務(wù)調(diào)用異常,建議調(diào)用方采用指數(shù)重試機制進行服務(wù)調(diào)用。
應(yīng)用啟動速度優(yōu)化
為提升彈性效率,建議您優(yōu)化應(yīng)用的創(chuàng)建速度,可以從以下方面考慮優(yōu)化:
軟件包優(yōu)化:優(yōu)化應(yīng)用啟動時間,減少因類加載、緩存等外部依賴導(dǎo)致的應(yīng)用啟動過長
鏡像優(yōu)化:精簡鏡像大小,減少創(chuàng)建實例時鏡像拉取耗時,可借助開源工具Dive,分析鏡像層信息,有針對性的精簡變更
Java應(yīng)用啟動優(yōu)化:借助SAE聯(lián)合Dragonwell11,為Java11用戶提供了應(yīng)用啟動加速功能
彈性伸縮指標(biāo)配置
彈性伸縮指標(biāo)配置,SAE支持基礎(chǔ)監(jiān)控,應(yīng)用監(jiān)控多指標(biāo)組合配置,您可以根據(jù)當(dāng)前應(yīng)用的屬性(CPU敏感/內(nèi)存敏感/io敏感)進行靈活選擇。
可以通過對基礎(chǔ)監(jiān)控和應(yīng)用監(jiān)控對應(yīng)指標(biāo)歷史數(shù)據(jù)(如過去6h,12h,1天,7天峰值,P99,P95數(shù)值)進行查看并預(yù)估指標(biāo)目標(biāo)值,可借助PTS等壓測工具進行壓測,了解應(yīng)用可以應(yīng)對的并發(fā)請求數(shù)量、需要的CPU和內(nèi)存數(shù)量,以及高負載狀態(tài)下的應(yīng)用響應(yīng)方式,以評估應(yīng)用容量峰值大小。
指標(biāo)目標(biāo)值需要權(quán)衡可用性與成本進行策略選擇,如
可用性優(yōu)化策略配置指標(biāo)值為40%
可用性成本平衡策略配置指標(biāo)值為50%
成本優(yōu)化策略配置指標(biāo)值為70%
同時彈性配置應(yīng)考慮梳理上下游,中間件,db等相關(guān)依賴,配置對應(yīng)的彈性規(guī)則或者限流降級手段,確保擴容時全鏈路可以保證可用性。
在配置彈性規(guī)則后,通過不斷監(jiān)視和調(diào)整彈性規(guī)則以使容量更加接近應(yīng)用實際負載。
內(nèi)存指標(biāo)配置
關(guān)于內(nèi)存指標(biāo),考慮部分應(yīng)用類型采用動態(tài)內(nèi)存管理進行內(nèi)存分配(如Javajvm內(nèi)存管理,GlibcMalloc和Free操作),應(yīng)用閑置內(nèi)存并沒有及時釋放給操作系統(tǒng),實例消耗的物理內(nèi)存并不會及時減少且新增實例并不能減少平均內(nèi)存消耗,進而無法觸發(fā)縮容,針對于該類應(yīng)用不建議采用內(nèi)存指標(biāo)。
Java應(yīng)用運行時優(yōu)化:釋放物理內(nèi)存,增強內(nèi)存指標(biāo)與業(yè)務(wù)關(guān)聯(lián)性
借助Dragonwell運行時環(huán)境,通過增加JVM參數(shù)開啟ElasticHeap能力,支持Java堆內(nèi)存的動態(tài)彈性伸縮,節(jié)約Java進程實際使用的物理內(nèi)存占用。
最小實例數(shù)配置
配置彈性伸縮最小實例數(shù)建議大于等于2,且配置多可用區(qū)VSwitch,防止因底層節(jié)點異常導(dǎo)致實例驅(qū)逐或可用區(qū)無可用實例時應(yīng)用停止工作,保證應(yīng)用整體高可用。
最大實例數(shù)配置
配置彈性伸縮最大實例數(shù)時,應(yīng)考慮可用區(qū)IP數(shù)是否充足,防止無法新增實例。 可以在控制臺VSwitch處查看當(dāng)前應(yīng)用可用IP,若可用IP較少考慮替換或新增VSwitch。
彈性到達最大值
可以通過應(yīng)用概覽查看當(dāng)前開啟彈性伸縮配置的應(yīng)用,并及時發(fā)現(xiàn)當(dāng)前實例數(shù)已經(jīng)到達峰值的應(yīng)用,進行重新評估其彈性伸縮最大值配置是否合理。若期望最大實例數(shù)超過產(chǎn)品限制(當(dāng)前限制單應(yīng)用50實例數(shù),可提工單反饋提高上限)
可用區(qū)再均衡
彈性伸縮觸發(fā)縮容后可能會導(dǎo)致可用區(qū)分配不均,可以在實例列表中查看實例所屬可用區(qū),若可用區(qū)不均衡可以通過重啟應(yīng)用操作實現(xiàn)再均衡。
自動恢復(fù)彈性配置
當(dāng)進行應(yīng)用部署等變更單操作時,SAE會停止當(dāng)前應(yīng)用的彈性伸縮配置避免兩種操作沖突,若期望變更單完成后恢復(fù)彈性配置,可以在部署時勾選系統(tǒng)自動恢復(fù)。
彈性歷史記錄
SAE彈性生效行為當(dāng)前可通過事件進行查看擴縮時間,擴縮動作,以及實時,歷史決策記錄和決策上下文可視化功能,以便衡量彈性伸縮策略的有效性,并在必要時進行調(diào)整。
彈性事件通知
結(jié)合釘釘,Webhook,短信電話等多種通知渠道,便于及時了解彈性觸發(fā)狀況。
最后分享一個采用SAE彈性伸縮功能的客戶案例,在2020新冠疫情期間,某在線教育客戶業(yè)務(wù)流量暴漲7-8倍,硬件成本和業(yè)務(wù)穩(wěn)定性面臨巨大風(fēng)險。 如果此時采用傳統(tǒng)的ECS架構(gòu),客戶就需要在非常短的時間內(nèi)做基礎(chǔ)設(shè)施的架構(gòu)升級,這對用戶的成本及精力都是非常大的挑戰(zhàn)。 但如果采用SAE,用戶0改造成本即可享受Serverless帶來的技術(shù)紅利,結(jié)合SAE的多場景彈性策略配置,彈性自適應(yīng)和實時可觀測能力,保障了用戶應(yīng)用在高峰期的業(yè)務(wù)SLA,并且通過極致彈性效率,節(jié)省硬件成本達到35%。
綜上,彈性發(fā)展方向上,尤其是在Serverless場景,更強調(diào)應(yīng)對突發(fā)流量的能力,其目標(biāo)在于無需容量規(guī)劃,通過指標(biāo)監(jiān)控配合極致彈性能力實現(xiàn)應(yīng)用資源的近乎按需使用且整個過程服務(wù)可用。 SAE通過對彈性組件和應(yīng)用全生命周期的不斷優(yōu)化以達到秒級彈性,并在彈性能力,場景豐富度,穩(wěn)定性上具備核心競爭力,是傳統(tǒng)應(yīng)用0改造上Serverless的最佳選擇。
MinIO是一種高性能對象存儲解決方案,原生支持Kubernetes部署。 MinIO提供與AmazonWebServicesS3兼容的API并支持所有核心S3功能。 MinIO是在GNUAffero通用公共許可證v3.0下發(fā)布的。
也許提起對象存儲技術(shù),我們都經(jīng)歷過Fastdfs長時間的拉鋸戰(zhàn),即使現(xiàn)在大部分都在使用云服務(wù)廠商提供的OSS對象存儲服務(wù),但是其所花費的經(jīng)濟成本也是遞增的,而且數(shù)據(jù)都存儲在別人的服務(wù)器上,從一定程度上來說,對于文件資源的把控粒度是極其不可控制,公網(wǎng)數(shù)據(jù)是何其的沒有隱私可言。 雖然,對于開發(fā)層面上來說,只需要整合對應(yīng)的SDK,對其使用已經(jīng)是開箱即用。 但是,對于選擇自研對象存儲技術(shù)來說,Minio何嘗不失為一大利器。 其搭建過程與整合方面,幾乎已經(jīng)沒有什么瓶頸可言。 不論是從傳統(tǒng)服務(wù)器的安裝,還是基于Docker以及Kubernetes的部署,簡直簡單得不要不要的。
基本概述,MinIO’ssoftware-definedsuiterunsseamlesslyinthepubliccloud,,MinIOcandeliverarangeofusecasesfromAI/ML,analytics,backup/restoreandmodernwebandmobileapps.
MinIO在最大數(shù)量的環(huán)境中支持最廣泛的用例。 自云原生以來,MinIO的軟件定義套件在公共云、私有云和邊緣無縫運行——使其成為混合云的領(lǐng)導(dǎo)者。 憑借行業(yè)領(lǐng)先的性能和可擴展性,MinIO可以提供一系列用例,包括AI/ML、分析、備份/恢復(fù)以及現(xiàn)代Web和移動應(yīng)用程序。
HybridCloud:混合云
Borncloudnative:云原生
MinIOispioneeringhighperformanceobjectstorage:高性能對象存儲的先驅(qū)
Builtontheprinciplesofwebscale:建立在網(wǎng)絡(luò)規(guī)模的原則上
The#.開源對象存儲,并且最適合企業(yè)
ThedefactostandardforAmazonS3compatibility:AmazonS3兼容性的事實標(biāo)準(zhǔn)
Simplypowerful:簡單強大[極簡主義]
基本特點MinIO的企業(yè)級特性代表了對象存儲空間的標(biāo)準(zhǔn)。 從AWSS3API到S3Select以及我們對內(nèi)聯(lián)擦除編碼和安全性的實施,我們的代碼廣受贊譽,并經(jīng)常被一些技術(shù)和商業(yè)領(lǐng)域的大腕復(fù)制。
ErasureCoding:糾錯碼
MinIO使用以匯編代碼編寫的每個對象內(nèi)聯(lián)擦除編碼來保護數(shù)據(jù),以提供盡可能高的性能。 MinIO使用Reed-Solomon代碼將對象條帶化為具有用戶可配置冗余級別的數(shù)據(jù)和奇偶校驗塊。 MinIO的ErasureCoding在對象級別執(zhí)行修復(fù),可以獨立修復(fù)多個對象。
在N/2的最大奇偶校驗下,MinIO的實現(xiàn)可以確保在部署中僅使用((N/2)+1)個操作驅(qū)動器進行不間斷的讀寫操作。 例如,在12個驅(qū)動器的設(shè)置中,MinIO將對象分片到6個數(shù)據(jù)和6個奇偶校驗驅(qū)動器,并且可以可靠地寫入新對象或重建現(xiàn)有對象,而部署中僅剩下7個驅(qū)動器。
BitrotProtection:Bitrot保護
靜默數(shù)據(jù)損壞或bitrot是磁盤驅(qū)動器面臨的嚴重問題,導(dǎo)致數(shù)據(jù)在用戶不知情的情況下?lián)p壞。 原因是多方面的(驅(qū)動器老化、電流峰值、磁盤固件中的錯誤、幻像寫入、讀取/寫入方向錯誤、驅(qū)動程序錯誤、意外覆蓋),但結(jié)果是一樣的-數(shù)據(jù)受損。
MinIO對HighwayHash算法的優(yōu)化實現(xiàn)確保它永遠不會讀取損壞的數(shù)據(jù)-它即時捕獲和修復(fù)損壞的對象。 通過在READ上計算散列并在從應(yīng)用程序、網(wǎng)絡(luò)到內(nèi)存/驅(qū)動器的WRITE上對其進行驗證來確保端到端的完整性。 該實現(xiàn)專為速度而設(shè)計,可以在IntelCPU的單核上實現(xiàn)超過10GB/秒的散列速度。
Encryption:加密處理
在飛行中加密數(shù)據(jù)是一回事;保護靜態(tài)數(shù)據(jù)是另一回事。 MinIO支持多種復(fù)雜的服務(wù)器端加密方案來保護數(shù)據(jù)——無論數(shù)據(jù)在哪里。 MinIO的方法以可忽略的性能開銷確保機密性、完整性和真實性。 使用AES-256-GCM、ChaCha20-Poly1305和AES-CBC支持服務(wù)器端和客戶端加密。
加密對象使用AEAD服務(wù)器端加密進行防篡改。 此外,MinIO與所有常用的密鑰管理解決方案(例如HashiCorpVault)兼容并經(jīng)過測試。 MinIO使用密鑰管理系統(tǒng)(KMS)來支持SSE-S3。
如果客戶端請求SSE-S3或啟用自動加密,則MinIO服務(wù)器使用唯一的對象密鑰加密每個對象,該對象密鑰受KMS管理的主密鑰保護。 鑒于極低的開銷,可以為每個應(yīng)用程序和實例打開自動加密。
IdentityManagement:身份管理
MinIO支持身份管理中最先進的標(biāo)準(zhǔn),與OpenID連接兼容提供商以及關(guān)鍵的外部IDP供應(yīng)商集成。 這意味著訪問是集中的,密碼是臨時的和輪換的,而不是存儲在配置文件和數(shù)據(jù)庫中。 此外,訪問策略是細粒度和高度可配置的,這意味著支持多租戶和多實例部署變得簡單。
ContinuousReplication:連續(xù)復(fù)制
傳統(tǒng)復(fù)制方法的挑戰(zhàn)在于,它們無法有效擴展超過數(shù)百TB。 話雖如此,每個人都需要一個復(fù)制策略來支持災(zāi)難恢復(fù),并且該策略需要跨越地域、數(shù)據(jù)中心和云。
MinIO的持續(xù)復(fù)制專為大規(guī)模、跨數(shù)據(jù)中心部署而設(shè)計。 通過利用Lambda計算通知和對象元數(shù)據(jù),它可以高效快速地計算增量。 Lambda通知確保更改立即傳播,而不是傳統(tǒng)的批處理模式。
連續(xù)復(fù)制意味著如果發(fā)生故障,即使面對高度動態(tài)的數(shù)據(jù)集,數(shù)據(jù)丟失也將保持在最低限度。 最后,與MinIO所做的一樣,持續(xù)復(fù)制是多供應(yīng)商的,這意味著您的備份位置可以是從NAS到公共云的任何位置。
GlobalFederation:全球聯(lián)合會
現(xiàn)代企業(yè)到處都有數(shù)據(jù)。 MinIO允許將這些不同的實例組合起來形成一個統(tǒng)一的全局命名空間。 具體來說,可以將任意數(shù)量的MinIO服務(wù)器組合成一個分布式模式集,多個分布式模式集可以組合成一個MinIO服務(wù)器聯(lián)合。 每個MinIOServerFederation都提供統(tǒng)一的管理和命名空間。
MinIO聯(lián)合服務(wù)器支持無限數(shù)量的分布式模式集。 這種方法的影響是對象存儲可以為大型、地理分布的企業(yè)大規(guī)模擴展,同時保留從單個控制臺容納各種應(yīng)用程序(Splunk、Teradata、Spark、Hive、Presto、TensorFlow、H20)的能力。
Multi-CloudGateway:多云網(wǎng)關(guān)
所有企業(yè)都在采用多云戰(zhàn)略。 這也包括私有云。 因此,您的裸機虛擬化容器和公共云服務(wù)(包括Google、Microsoft和阿里巴巴等非S3提供商)必須看起來相同。 雖然現(xiàn)代應(yīng)用程序具有高度可移植性,但支持這些應(yīng)用程序的數(shù)據(jù)卻不是。
讓這些數(shù)據(jù)無論位于何處都可用,是MinIO解決的主要挑戰(zhàn)。 MinIO在裸機、網(wǎng)絡(luò)附加存儲和每個公共云上運行。 更重要的是,MinIO通過AmazonS3API確保您從應(yīng)用程序和管理的角度來看這些數(shù)據(jù)的視圖看起來完全相同。
MinIO可以走得更遠,使您現(xiàn)有的存儲基礎(chǔ)設(shè)施與AmazonS3兼容。 影響是深遠的。 現(xiàn)在,組織可以真正統(tǒng)一他們的數(shù)據(jù)基礎(chǔ)設(shè)施——從文件到塊,所有這些都顯示為可通過AmazonS3API訪問的對象,而無需遷移。
WORM:WORM對象鎖定
啟用WORM后,MinIO會禁用所有可能改變對象數(shù)據(jù)和元數(shù)據(jù)的API。 這意味著一旦寫入的數(shù)據(jù)就可以防篡改。 這對于許多不同的監(jiān)管要求具有實際應(yīng)用。
基本架構(gòu)MinIO被設(shè)計為云原生,可以作為由外部編排服務(wù)(如Kubernetes)管理的輕量級容器運行。 整個服務(wù)器是一個約40MB的靜態(tài)二進制文件,并且在使用CPU和內(nèi)存資源方面非常高效-即使在高負載下也是如此。 結(jié)果是您可以在共享硬件上共同托管大量租戶。
MinIO在帶有本地連接驅(qū)動器(JBOD/JBOF)的商用服務(wù)器上運行。 集群中的所有服務(wù)器的能力相同(完全對稱架構(gòu))。 沒有名稱節(jié)點或元數(shù)據(jù)服務(wù)器。
MinIO將數(shù)據(jù)和元數(shù)據(jù)作為對象一起寫入,無需元數(shù)據(jù)數(shù)據(jù)庫。 此外,MinIO將所有功能(擦除代碼、bitrot檢查、加密)作為內(nèi)聯(lián)、嚴格一致的操作執(zhí)行。 結(jié)果是MinIO非常有彈性。
每個MinIO集群是一組分布式MinIO服務(wù)器,每個節(jié)點一個進程。 MinIO作為單個進程在用戶空間運行,并使用輕量級協(xié)程來實現(xiàn)高并發(fā)。 驅(qū)動器被分組到擦除集(默認情況下每組16個驅(qū)動器),并且使用確定性散列算法將對象放置在這些集上。
MinIO專為大規(guī)模、多數(shù)據(jù)中心的云存儲服務(wù)而設(shè)計。 每個租戶運行自己的MinIO集群,與其他租戶完全隔離,使他們能夠保護他們免受升級、更新和安全事件的任何中斷。 每個租戶通過跨地域聯(lián)合集群來獨立擴展。
MinIO服務(wù)器功能MinIO的企業(yè)級特性代表了對象存儲空間的標(biāo)準(zhǔn)。 從AWSS3API到S3Select以及我們對內(nèi)聯(lián)擦除編碼和安全性的實施,我們的代碼廣受贊譽,并經(jīng)常被一些技術(shù)和商業(yè)領(lǐng)域的大腕復(fù)制。
默認情況下,對唯一對象名稱的每次新寫入操作都會導(dǎo)致覆蓋該對象。 您可以將MinIO配置為創(chuàng)建每個對象突變的版本,從而保留該對象的完整歷史記錄。 MinIO還支持一次寫入多次讀取(WORM)鎖定版本化對象,以確保在指定的持續(xù)時間內(nèi)或直到顯式解除鎖定為止的完全不變性。
版本控制和對象鎖定功能僅適用于分布式MinIO部署:
BucketVersioning:存儲桶版本控制
MinIO支持在單個存儲桶中保存對象的多個“版本”。 通常會覆蓋現(xiàn)有對象的寫入操作會導(dǎo)致創(chuàng)建新的版本化對象。 MinIO版本控制可防止意外覆蓋和刪除,同時支持“撤消”寫入操作。 存儲桶版本控制是配置對象鎖定和保留規(guī)則的先決條件。
對于版本化存儲桶,任何改變對象的寫入操作都會導(dǎo)致該對象的新版本具有唯一的版本ID。 MinIO標(biāo)記客戶端默認檢索的對象的“最新”版本。 然后,客戶端可以明確選擇列出、檢索或刪除特定對象版本。
其中:
具有單一版本的對象:MinIO為每個對象添加一個唯一的版本ID作為寫入操作的一部分。
2.具有多個版本的對象:MinIO保留對象的所有版本,并將最新版本標(biāo)記為“最新”。
3.檢索最新的對象版本
4.檢索特定對象版本
WORM:對象鎖定
MinIO對象鎖定(“對象保留”)強制執(zhí)行一次寫入多次讀取(WORM)不變性以保護版本化對象不被刪除。 MinIO支持基于持續(xù)時間的對象保留和無限期合法保留保留。
MinIO對象鎖定提供關(guān)鍵數(shù)據(jù)保留合規(guī)性,并符合CohassetAssociates的SEC17a-4(f)、FINRA4511(C)和CFTC1.31(c)-(d)要求。
其中:
不帶鎖的桶:MinIO版本控制保留了對象突變的完整歷史。 但是,應(yīng)用程序可以明確刪除特定的對象版本。
帶鎖的桶:對存儲桶中的對象應(yīng)用默認的30天WORM鎖定可確保所有對象版本的最短保留期和保護期。
3.鎖定桶中的刪除操作:刪除操作遵循版本化存儲桶中的正常行為,其中MinIODeleteMarker為對象創(chuàng)建一個。 但是,對象的非刪除標(biāo)記版本仍受保留規(guī)則約束,并且不會受到任何特定刪除或覆蓋嘗試的影響。
4.鎖定存儲桶中的版本化刪除操作:MinIO會阻止任何刪除在WORM鎖定下持有的特定對象版本的嘗試。 客戶端可以刪除版本的最早可能時間是鎖定到期時。
MinIO是一個軟件定義的高性能分布式對象存儲服務(wù)器。 您可以在消費級或企業(yè)級硬件以及各種操作系統(tǒng)和架構(gòu)上運行MinIO。
MinIO支持兩種部署模式:獨立和分布式:
獨立部署:具有單個存儲卷或文件夾的單個MinIO服務(wù)器。 獨立部署最適合使用MinIO進行對象存儲的應(yīng)用程序的評估和初始開發(fā),或為單個存儲卷提供S3訪問層。 獨立部署不提供對全套MinIO高級S3特性和功能的訪問。
分布式部署:一臺或多臺MinIO服務(wù)器,所有服務(wù)器上至少有四個總存儲卷。 分布式部署最適合生產(chǎn)環(huán)境和工作負載,并支持MinIO的所有核心和高級S3特性和功能。 對于生產(chǎn)環(huán)境,MinIO建議使用4個節(jié)點和4個驅(qū)動器的基線拓撲。
內(nèi)容聲明:
1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請聯(lián)系我們進行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請聯(lián)系我們進行舉報處理!
4、本文地址:http://www.lmxpnzry.com/article/e8c6b501c8f36b656fd6.html,復(fù)制請保留版權(quán)鏈接!
物聯(lián)網(wǎng),IoT,設(shè)備正在改變我們與周圍世界互動的方式,它們將家庭和企業(yè)連接起來,使自動化和遠程監(jiān)控成為可能,家庭中的物聯(lián)網(wǎng)設(shè)備家庭中的物聯(lián)網(wǎng)設(shè)備可以幫助我們過上更舒適、更便捷的生活,它們可以自動執(zhí)行任務(wù),例如打開燈、鎖門和調(diào)節(jié)恒溫器,它們還可以讓您遠程監(jiān)控您的家,即使您不在家也能保證您的安全,以下是一些最流行的家庭物聯(lián)網(wǎng)設(shè)備,智能音箱...。
技術(shù)教程 2024-09-29 15:22:56
在線客服系統(tǒng)能夠收集有關(guān)客戶交互的豐富數(shù)據(jù),包括聊天記錄、電子郵件和支持票據(jù),這些數(shù)據(jù)可用于以下目的,改進客戶支持,分析數(shù)據(jù)可以幫助確定客戶最常見的問題和痛點,從而提高支持質(zhì)量,個性化客戶體驗,通過了解客戶偏好和互動歷史,客服人員可以提供更個性化的支持體驗,識別趨勢和模式,長期收集數(shù)據(jù)可以幫助企業(yè)識別客戶行為和支持需求的趨勢,從而預(yù)測...。
最新資訊 2024-09-26 23:57:14
浮點數(shù)使用科學(xué)計數(shù)法來表示數(shù)字,使數(shù)字可以根據(jù)指數(shù)進行縮放,這提供了不同數(shù)量級的數(shù)字的相對精度,相對精度相對精度,通常用k表示,是數(shù)字的表示能夠分辨的最小相對變化,例如,如果一個數(shù)字的相對精度為10,6,則該數(shù)字的末六位有效數(shù)字是精確的,相對精度可以根據(jù)以下公式計算,k=ε,x,其中,是機器精度,即浮點數(shù)可以表示的最小正歸一化數(shù),x是...。
互聯(lián)網(wǎng)資訊 2024-09-23 02:09:28
pagedresultscontrol,允許分批檢索結(jié)果,sortkeycontrol,指定用于排序結(jié)果的屬性,timelimitcontrol,指定搜索操作的最大持續(xù)時間,例如,以下控制以每頁10個結(jié)果的方式檢索結(jié)果,控制,pagedresultscontrol,size=10,LDAP搜索語法示例以下是一些LDAP搜索語法示例,基...。
互聯(lián)網(wǎng)資訊 2024-09-14 15:46:32
在當(dāng)今快節(jié)奏的數(shù)字世界中,網(wǎng)站的速度和效率至關(guān)重要,緩慢或反應(yīng)遲鈍的網(wǎng)站可能會失去訪問者并損害您的業(yè)務(wù),如果您使用的是PHP應(yīng)用程序,選擇優(yōu)化PHP托管服務(wù)將對您的網(wǎng)站性能產(chǎn)生巨大影響,什么是PHP托管,PHP托管是一種專門為運行PHP應(yīng)用程序而配置的Web托管服務(wù),與通用的Web托管不同,PHP托管旨在提供針對PHP應(yīng)用程序的優(yōu)化環(huán)...。
最新資訊 2024-09-13 02:03:09
引言單片機是一種功能強大的微控制器,具有獨立的處理器、存儲器和輸入,輸出,I,O,引腳,嵌入式系統(tǒng)使用單片機,用于從簡單的家電到復(fù)雜工業(yè)設(shè)備的廣泛應(yīng)用,單片機編程是創(chuàng)建這些嵌入式系統(tǒng)的關(guān)鍵部分,單片機編程基礎(chǔ)處理器,單片機的大腦,執(zhí)行程序指令,存儲器,存儲程序代碼和數(shù)據(jù),I,O引腳,與外部設(shè)備進行通信,編程語言單片機使用與C類似的低級...。
最新資訊 2024-09-12 00:32:11
簡介數(shù)據(jù)遷移是指將數(shù)據(jù)從一個數(shù)據(jù)庫系統(tǒng)傳輸?shù)搅硪粋€數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)遷移可能包括以下內(nèi)容,將數(shù)據(jù)從舊系統(tǒng)遷移到新系統(tǒng)在不同數(shù)據(jù)庫系統(tǒng)之間遷移數(shù)據(jù)在不同服務(wù)器或云平臺之間遷移數(shù)據(jù)數(shù)據(jù)遷移對于以下情況非常重要,合并系統(tǒng)或遷移到新的數(shù)據(jù)庫系統(tǒng)升級或更新現(xiàn)有數(shù)據(jù)庫系統(tǒng)遵守法規(guī)或安全要求規(guī)劃數(shù)據(jù)遷移在開始數(shù)據(jù)遷移之前,規(guī)劃至關(guān)重要,以下是規(guī)劃數(shù)據(jù)...。
本站公告 2024-09-11 21:37:13
什么是VisualBasic,VisualBasic,VB,是一種由Microsoft開發(fā)的面向?qū)ο蟮木幊陶Z言,用于創(chuàng)建基于Windows的應(yīng)用程序,它最初于1991年發(fā)布,并已成為一種廣泛使用的語言,尤其是對于初學(xué)者和愛好者,VB的優(yōu)點易于學(xué)習(xí)和使用,VB的語法簡潔易懂,非常適合初學(xué)者,面向?qū)ο螅琕B采用面向?qū)ο缶幊蹋琌OP,范式,...。
技術(shù)教程 2024-09-11 15:54:50
PHP套件是預(yù)先構(gòu)建的代碼組件,旨在簡化PHP開發(fā)并提高生產(chǎn)率,它們提供了一系列功能,包括數(shù)據(jù)庫連接、圖像處理、表單驗證和緩存等,PHP套件的優(yōu)勢提高生產(chǎn)率,PHP套件可讓您復(fù)用代碼,從而節(jié)省時間和精力,改善代碼質(zhì)量,PHP套件是由經(jīng)驗豐富的開發(fā)者創(chuàng)建的,經(jīng)過了廣泛的測試,以確保可靠性和穩(wěn)定性,強大的社區(qū)支持,PHP套件擁有活躍的社區(qū)...。
互聯(lián)網(wǎng)資訊 2024-09-09 12:02:38
在當(dāng)今數(shù)字時代,編程已成為一項必備技能,它為我們提供了塑造和改變世界的強大力量,通過學(xué)習(xí)編程,我們可以將我們的想法轉(zhuǎn)化為現(xiàn)實,解決復(fù)雜的問題,并創(chuàng)造出創(chuàng)新解決方案,本文將帶你踏上探索編程語言迷人世界的旅程,從基礎(chǔ)到高級,讓你了解不同語言的優(yōu)點和用途,讓你邁出成為一名熟練程序員的第一步,什么是編程語言,編程語言是一種用符號和語法編寫的人...。
本站公告 2024-09-08 17:20:31
引言織夢仿站是一種通過模仿其他網(wǎng)站的功能和設(shè)計來創(chuàng)建新網(wǎng)站的技術(shù),通過遵循業(yè)界最佳實踐,仿站開發(fā)者可以創(chuàng)建可靠且有效的網(wǎng)站,遵守網(wǎng)頁標(biāo)準(zhǔn)使用有效的HTML和CSS代碼,遵循網(wǎng)絡(luò)無障礙指南,WCAG,2.0,確保所有用戶都可以訪問網(wǎng)站,使用響應(yīng)式設(shè)計,讓網(wǎng)站在各種設(shè)備上都能正常顯示,優(yōu)化網(wǎng)站加載速度,以提高用戶體驗,確保安全性使用安全套...。
互聯(lián)網(wǎng)資訊 2024-09-06 07:57:43
簡介沈陽故宮,又稱盛京皇宮,是清朝初期的皇宮,位于中國東北部遼寧省沈陽市,這座宏偉的建筑群以其豐富的歷史、精美的建筑和迷人的傳說而聞名,其中一些傳說與超自然現(xiàn)象有關(guān),傳說慈寧宮的哭聲,據(jù)說,在慈寧宮中,人們經(jīng)常聽到嬰兒的哭聲,一些人認為,這是清太祖努爾哈赤的孫子福臨的鬼魂在哭泣,福臨在年幼時被選中繼位,但由于他的殘疾而被迫退位,大政殿...。
互聯(lián)網(wǎng)資訊 2024-09-05 02:50:07