版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
電商平臺(tái)的原生遷移技術(shù)實(shí)踐SomeLessons
WeLearnedfromMovingE-businessGianttoCloud
NativeAlibaba’sJourneytoCloud
Native2011:
containerizeLXCOnepoolper
BU2015:dockerize
+smart
schedulingDockerIn-housescheduling2017-18:k8swithbasic
orchestration“Rich
Container”O(jiān)nePod
onecontainerK8S
API2019:cloud
nativeContainerdPod
withsidecarsFullK8S
stackExplore(K8sAPIcentric)Cloud
Native(Standard+Open)Containerize(container
centric)Current
StateAlibababegantomoveitse-businessplatformtocloudStandingontheshoulderofopen
source:KubernetesOperator
FrameworkCNI,CSI,CRI,DevicePlugin
…PrometheusContainerdrunC+
KataContainersDevOpsframeworkfrom
ACKACK=AlibabaContainerService
forKubernetesandmuchmore
…ArchitectureEliminate“Rich
Container”Before
2018JavaPID1processis
SystemdALLinONEcontainer("RichContainer"),independent
upgradeapp,sshd,log,monitoring,cache,VIP,DNS,proxy,agent,start/stopscripts
…Traditionaloperating
workflowStartcontainer->SSHintocontainer->Startthe
appLogfiles&userdataaredistributedeverywhereinthecontainerIn-houseorchestration&scheduling
systemEliminate“Rich
Container”Declarative:TheBiggestBenefitisUpgradeofOperating
ModelImperative:Create3more
containersDeletecontainernamedxxxUpgradethiscontainerwithnew
imageOnenodehasbroken,weshoulddeletethosecontainersonitandcreatetheminother
placesIneed5replicasformy
applicationThisapplicationshouldupdatetoanewversionAutomation
!Stability!Efficiency!As
ResultResourceutilizationCo-locationbyunified
schedulerApp
managementCloudNativeAppMgmtStorage
strategyDatainpersistentvolumeCooperatewithdevelopersalloverthe
worldStandard+Open+KeepupdatingwithupstreamK8s1.10->1.12->1.14
…CloudNativeApp
MgmtCloudNativeApp
MgmtK8s
作業(yè)管理挑戰(zhàn)巨大WorkloadMgmtinWeb-scaleis
ChallengingapplicationmigrationcomplicatedscenehelpPaaSmoveto
cloudnativecontainertransformationstabilityguaranteeWhatwearemovingtoCloudNative:almostonehundred
sitesmorethanahundredthousandapplicationsnearlyonemillion
containersBeforeAlibabaSinglesDaysale,we
may:CreatemorethanahundredthousandofPodsoverthousandsofapplicationsNodesofallthesePodswillbecalculatedbyaoff-linebatchschedulerbeforePod
creation
Throughthisway,wecanimproveresourceutilization,cpucoreallocation,affinity/anti-affinityofapplicationsandso
onBatch
placementBatch
placementBatchAllocationPlanCRDforcreatingbufferPodswithcandidate
nodesBatchAdoptionCRDforhelpingworkloadadoptbuffer
PodsApplication
upgradeAlldefaultworkloadsrecreatePodsduringrollingupdate.Strategiesthey
offered:maxSurge/maxUnavailable/partition/…What’sthe
problem?IfweusethedefaultupdatepolicyinK8s,thedeterminacywillbebrokenTopologychanges,imagere-warm,unexpectedoverhead,resourceallocationchurn
…Introduce:in-place
updateAdvanced
StatefulSetPod-1appsidecarPod-0appPod-1sidecar appsidecarNodeNodeKubeletUpdateappimageintemplatePartition=1Patchimage
ofapp
containerFindhash
changedRecreatecontainerwithnew
imageKubeletComparationRecreate
updateInPlaceupdateClusterdeterminacyEfficiencyofimage
downloadingRequirementof
resourceReschedulingandservice
registrationRecovery
automaticallySupportallfields
updaterolling
updateinplace
updateSidecar managementDefinedinapp
workloadsHardtomanagewhentherearelotsofapplicationsand
workloadsApplicationdevelopersdon’tknowwhichsidecartouseHowtoupdatesidecarintoomany
workloads……Injectedby
SidecarSetDefinesidecarsalone,partfromapplicationworkloadsApplicationdevelopershavenottocareaboutsidecarsUpdatesidecarcontainersin-place,noeffecton
applicationsSidecarSet
injectionWhenwehavethousandssidecars,we’ll
need:ASidecarSetCRD:Describeallsidecarsneedtobe
operatedA
SidecarOperator:Injectsidecarcontainerstoselected
PodsUpgradesidecarcontainersfollowingrolloutpolicywhenSidecarSetis
updatedDeletesidecarcontainerswhenSidecarSetisdeletedWhatcanSidecarSet
doSidecarSetcan
doIstiocan
doUpdate
strategyIn-placeupdateMountdata
volumesResourcelimitwithpodMore
configurationLabel
selectorInject
locationBasic
injectionapp
containersidecar
containerpod1.copy
data2.
trigger3.read
datasharedvolume0.updatesidecar
in-placeHotupgradeusing
sidecarOpenKruise/openkruise/kruiseSharewhathaveextremelyhelpedusmovetoCloud
NativeAdvancedStatefulSetAdvancedStatefulSetMaxUnavailableImprovespeedof
updating.(ForaStatefulSetwith500Podsandupdatein10batches,thismayaccelerate50times.)InPlaceUpdateUpdatePodswithoutrecreate.AvoidPodsrescheduleand
reshuffleReadinessGateensuresPodsstayNotReadyduring
updating.Morefeaturescoming
soon…SidecarSetand
BroadcastJobSidecarSetInjectsidecatcontainerintomatchedPods.Currently,itcanjustdoinjectionduringpodcreating,andwewillsupportsidecarupdatein-place
soonBroadcastJobAblendofDaemonSetand
JobRunpodsonallmachinesexactly
onceUsecase:softwareupgrade,nodevalidator,nodelabeler
etcScalabilityMattersin
AlibabaScalabilityboundaryofupstreamK8s
(v1.14)Nomorethan5k
nodesNomorethan150ktotal
podsNomorethan300ktotal
containersNomorethan100podsper
nodeScalabilitygoalinourweb-scale
clusterMorethan10k
nodesMorethan300k
podsNon-goal:Totalcontainers&podsper
nodeQuestion:Howtodiscoverscalabilityissuein10knodes
cluster?PerformanceBenchmark
ToolkitkubemarkwithHTTP
interfaceHollow-NodePodscmd/kubemark/hollow-node.goTaintanddrainnodesforperftest,andrun
itTypicaltestcasesin10knodes
cluster:Startuptimeduringscaling
podsTimeofcreatinganddeletingpodsPodlisting
RTFailure
countscurl-XPOST-H"Content-Type:application/json"
\"/api/kubemark/test"
\-d
'{"test_focus":"\\[Feature:Performance\\]","test_skip":"handle","node_count":10000,"pods_per_node":30}'Howto
run?DiscoverPerformance
BottlenecksFixingPerformanceBottleneckswith
Upstream#9296#9384#9511#9418bbolt#141#10283PodListIndexing:
~35x
(upstream
soon)Watch
Bookmark:#75474
(New!)etcd APIServer KubeletBug
fix:#72709LockAlgorithm
~24x*Cherrypick:Incrementalheartbeat
#14733PerfConfigureEtcd100clients,1millionrandomkeyvaluepairs,5000
QPSCompletiontime:
~200sLatency:99.9%in
97.6msK
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山西省大同四中聯(lián)盟體物理高一上期中教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 2025屆河南省八市重點(diǎn)高中高三物理第一學(xué)期期末檢測(cè)模擬試題含解析
- 甘肅省武威市涼州區(qū)武威六中2025屆高一物理第一學(xué)期期末聯(lián)考試題含解析
- 2025屆天津市河西區(qū)達(dá)標(biāo)名校物理高二第一學(xué)期期末經(jīng)典模擬試題含解析
- 2025屆海南省??谑形锢砀叨谝粚W(xué)期期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 上海市東實(shí)驗(yàn)學(xué)校2025屆高三物理第一學(xué)期期中監(jiān)測(cè)模擬試題含解析
- 2025屆西寧市重點(diǎn)中學(xué)物理高二上期末統(tǒng)考模擬試題含解析
- 2025屆黑龍江省牡丹江市三中物理高二第一學(xué)期期中統(tǒng)考模擬試題含解析
- 山東省日照市五蓮縣2025屆高一物理第一學(xué)期期中考試試題含解析
- 天津市六校2025屆高三上物理期中聯(lián)考模擬試題含解析
- ASTM B366 B366M-20 工廠制造的變形鎳和鎳合金配件標(biāo)準(zhǔn)規(guī)范
- 汽車(chē)維修工時(shí)收費(fèi)標(biāo)準(zhǔn)二類(lèi)企業(yè)
- JIS G4304-2021 熱軋不銹鋼板材、薄板材和帶材
- 鋼筋直螺紋連接課件PPT
- 2022年中級(jí)經(jīng)濟(jì)師-人力資源管理專(zhuān)業(yè)押題模擬試卷3套及答案解析
- 小學(xué)綜合實(shí)踐活動(dòng)《認(rèn)識(shí)校園植物》優(yōu)秀PPT課件
- XRD在薄膜材料研究中應(yīng)用
- 變壓器專(zhuān)業(yè)詞匯英文翻譯
- 藏傳佛教英文詞匯
- 鐵路雜費(fèi)收費(fèi)項(xiàng)目和標(biāo)準(zhǔn)
- 定量訂貨與定期訂貨習(xí)題練習(xí).
評(píng)論
0/150
提交評(píng)論