免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

OpenShift-Origin源碼靜態(tài)工程評(píng)測(cè):結(jié)構(gòu)、依賴與落地風(fēng)險(xiǎn)

OpenShift-Origin源碼靜態(tài)工程評(píng)測(cè):結(jié)構(gòu)、依賴與落地風(fēng)險(xiǎn) OpenShift-Origin的源碼倉庫一直是不少企業(yè)技術(shù)團(tuán)隊(duì)重點(diǎn)研究的對(duì)象。一方面它是RedHat OpenShift的企業(yè)級(jí)Kubernetes發(fā)行版底座承載著容器云平臺(tái)的核心能力另一方面36669個(gè)文件的體量又讓很多想深入源碼的人望而卻步。我花了大概一周時(shí)間把這個(gè)工程的靜態(tài)結(jié)構(gòu)完整捋了一遍包括頂層目錄、模塊劃分、依賴管理、構(gòu)建體系、測(cè)試覆蓋這些維度都有過一遍現(xiàn)在把整個(gè)評(píng)測(cè)過程和結(jié)論整理出來。這篇東西適合三類人看正在做Kubernetes發(fā)行版技術(shù)選型的技術(shù)負(fù)責(zé)人計(jì)劃基于OpenShift-Origin做二次開發(fā)的平臺(tái)工程師以及單純想研究大型云原生開源項(xiàng)目代碼組織方式的開發(fā)者。我會(huì)把評(píng)測(cè)思路、具體分析維度和落地風(fēng)險(xiǎn)判斷全部講清楚盡量給你一份可以直接參考的源碼工程盡調(diào)筆記。1. 源碼靜態(tài)評(píng)測(cè)為什么值得做1.1 企業(yè)選型Kubernetes發(fā)行版的三個(gè)真實(shí)痛點(diǎn)過去幾年我接觸過不少企業(yè)的容器云選型項(xiàng)目大家普遍面臨三個(gè)問題。第一個(gè)是黑盒依賴很多團(tuán)隊(duì)直接用社區(qū)版Kubernetes或者商業(yè)發(fā)行版出了問題只能等上游修復(fù)自己完全不具備診斷能力。第二個(gè)是定制成本企業(yè)往往需要定制調(diào)度策略、網(wǎng)絡(luò)方案、存儲(chǔ)插件但不知道上游代碼哪些地方可以改、改了之后怎么維護(hù)。第三個(gè)是長(zhǎng)期運(yùn)維風(fēng)險(xiǎn)發(fā)行版更新的節(jié)奏、API兼容性、組件升級(jí)的連帶影響這些都直接決定平臺(tái)能不能穩(wěn)定跑上五年。這三個(gè)問題靠看文檔和跑Demo解決不了必須回到源碼層面去判斷。源碼靜態(tài)評(píng)測(cè)的核心價(jià)值就在這不看源碼你永遠(yuǎn)不知道一個(gè)發(fā)行版真正的架構(gòu)復(fù)雜度、模塊耦合度、依賴健康度也無法判斷它在你的企業(yè)環(huán)境下落地時(shí)會(huì)踩多少坑。動(dòng)態(tài)測(cè)試解決的是“能不能跑”靜態(tài)分析解決的是“能不能維護(hù)”“能不能改”“會(huì)不會(huì)埋雷”。1.2 36669文件這個(gè)規(guī)模意味著什么OpenShift-Origin這個(gè)倉庫我用cloc工具做了初步統(tǒng)計(jì)注釋、空白、代碼行分開統(tǒng)計(jì)再結(jié)合官方Git倉庫的Git對(duì)象數(shù)據(jù)交叉核對(duì)最終確認(rèn)倉庫里實(shí)際追蹤的文件總數(shù)是36669個(gè)。這個(gè)數(shù)字本身就能說明很多問題。作為參照標(biāo)準(zhǔn)Kubernetes主倉庫k8s.io/kubernetes的追蹤文件數(shù)量大概在2.5萬到3萬個(gè)之間而OpenShift-Origin在此基礎(chǔ)上還多了大量OpenShift特有的API對(duì)象、準(zhǔn)入控制邏輯、SDN網(wǎng)絡(luò)組件和安全上下文機(jī)制。36669個(gè)文件意味著如果你用普通的grep方式去搜代碼邏輯效率會(huì)極低。我后來都是用rgripgrep配合.gitignore排除vendor目錄才能勉強(qiáng)做到秒級(jí)響應(yīng)。這也從側(cè)面說明OpenShift-Origin不是一個(gè)小項(xiàng)目它是一個(gè)需要長(zhǎng)期投入人力去維護(hù)和理解的復(fù)雜系統(tǒng)。從工程量級(jí)估算36669個(gè)文件、按平均每個(gè)文件150~300行算總代碼量大概在700萬到1000萬行之間。這個(gè)量級(jí)對(duì)應(yīng)的是一個(gè)幾百人規(guī)模的核心團(tuán)隊(duì)外加大量社區(qū)貢獻(xiàn)者多年迭代的成果。企業(yè)如果打算完全吃透這套代碼再做深度定制需要投入的人力成本是相當(dāng)可觀的必須先有心理預(yù)期。1.3 評(píng)測(cè)的邊界與方法說明在做這次源碼評(píng)測(cè)之前我明確了一個(gè)原則只做靜態(tài)分析不跑完整集群不做功能級(jí)聯(lián)調(diào)。原因是OpenShift-Origin的完整集群環(huán)境涉及DNS、負(fù)載均衡、存儲(chǔ)、網(wǎng)絡(luò)等大量基礎(chǔ)設(shè)施依賴單機(jī)靜態(tài)分析反而能更快定位代碼結(jié)構(gòu)和工程質(zhì)量問題。具體的評(píng)測(cè)路徑是這樣的先通過官方Git倉庫拉取release-4.x分支選擇的是當(dāng)前穩(wěn)定流通的4.12版本然后用tree命令導(dǎo)出完整目錄樹再配合cloc做語言構(gòu)成統(tǒng)計(jì)接著用go list和go mod graph分析Go模塊依賴關(guān)系最后針對(duì)幾個(gè)核心子項(xiàng)目如openshift-apiserver、openshift-controller-manager、cluster-network-operator等做定向代碼走讀。這個(gè)方法不復(fù)雜但有個(gè)好處整個(gè)分析過程不依賴運(yùn)行環(huán)境結(jié)果可復(fù)現(xiàn)。你拿同樣的分支和工具重新跑一遍得到的結(jié)論應(yīng)該和我基本一致。下面我就把評(píng)測(cè)中發(fā)現(xiàn)的東西按維度一層層拆開講。2. 源碼工程全景拆解2.1 頂層目錄結(jié)構(gòu)與印象判斷OpenShift-Origin的倉庫布局保留了比較明顯的Kubernetes上游風(fēng)格但又有自己的演進(jìn)痕跡。頂層目錄主要分為幾類api/存放OpenShift自定義API對(duì)象的定義包括types、deepcopy、conversion等這部分是擴(kuò)展Kubernetes API資源的基礎(chǔ)。pkg/核心Go源碼目錄包含cmd入口、controllers、api擴(kuò)展、client等內(nèi)容體量非常大。vendor/第三方依賴的固定快照全部鎖定版本保證可重復(fù)構(gòu)建。hack/存放大量構(gòu)建、測(cè)試、代碼生成腳本是理解整個(gè)工程構(gòu)建流程的關(guān)鍵入口。docs/文檔目錄不過內(nèi)容更新速度明顯跟不上代碼變化。contrib/、examples/、test/輔助目錄包含一些示例配置和測(cè)試用例。只看頂層結(jié)構(gòu)能立刻得到一個(gè)判斷這是一個(gè)嚴(yán)格遵守Kubernetes上游約定、同時(shí)大量擴(kuò)展自有API的工程。pkg/目錄下的內(nèi)容非常龐大說明OpenShift的很多邏輯不是以獨(dú)立倉庫形式管理的而是直接內(nèi)嵌在主倉庫里這決定了它的二次開發(fā)和維護(hù)方式與純Kubernetes會(huì)有很大差異??吹竭@樣的頂層結(jié)構(gòu)我做了一個(gè)重要判斷源碼層面的模塊耦合度偏高pkg目錄內(nèi)的代碼太內(nèi)聚很多子組件共享了內(nèi)部的公共庫后續(xù)如果想拆出來單獨(dú)維護(hù)成本會(huì)非常高。這個(gè)風(fēng)險(xiǎn)后面再展開說。2.2 組件構(gòu)成與模塊依賴關(guān)系從組件構(gòu)成看OpenShift-Origin的核心組件可以分成三層。第一層是Kubernetes上游基礎(chǔ)組件包括kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy。OpenShift在這層做了大量定制和替換比如對(duì)kube-apiserver嵌入了openshift-apiserver-aggregator通過聚合層擴(kuò)展了OpenShift專屬的API資源。第二層是OpenShift核心控制組件包括openshift-apiserver提供Route、BuildConfig、ImageStream等OpenShift資源的API服務(wù)、openshift-controller-manager管理各類OpenShift控制循環(huán)、cluster-openshift-controller-manager-operator、cluster-config-operator等。這一層是OpenShift實(shí)現(xiàn)“以應(yīng)用為中心”編排的核心邏輯所在。第三層是各類Operator組件包括cluster-network-operator、cluster-storage-operator、cluster-authentication-operator、cluster-console-operator等。Operator機(jī)制是OpenShift最重要的擴(kuò)展方式它把各種基礎(chǔ)設(shè)施能力的生命周期管理全部抽象成了自定義控制器。依賴關(guān)系上用go list -deps ./cmd/...可以觀察到明顯的分層依賴形態(tài)最底層是k8s.io/api、k8s.io/apimachinery這類上游基礎(chǔ)庫往上一層是github.com/openshift/api這類OpenShift自定義API定義再往上才是各類控制器和Operator的實(shí)現(xiàn)代碼。這種依賴分層是健康的但同時(shí)也意味著升級(jí)Kubernetes上游版本時(shí)openshift/api和所有依賴它的組件都需要聯(lián)動(dòng)升級(jí)這個(gè)聯(lián)動(dòng)成本非常考驗(yàn)團(tuán)隊(duì)的工程管理能力。2.3 語言構(gòu)成與多語言混編觀察用cloc跑出來的語言構(gòu)成Go語言占據(jù)絕對(duì)主導(dǎo)地位這是預(yù)料之中的。但真正值得注意的是幾個(gè)小體量但位置關(guān)鍵的語言類別。JavaScript/TypeScript的文件主要集中在console/目錄也就是OpenShift的Web控制臺(tái)前端。前端代碼和后端代碼放在同一個(gè)倉庫里雖然方便了版本對(duì)齊但讓倉庫體積變得更大對(duì)純后端開發(fā)者的代碼閱讀體驗(yàn)也有一定影響。Shell腳本集中在hack/和build/目錄數(shù)量大概在幾百個(gè)級(jí)別。這些腳本承擔(dān)著非常重要的構(gòu)建邏輯包括鏡像構(gòu)建、代碼生成、測(cè)試環(huán)境準(zhǔn)備等。我建議不要忽視這部分因?yàn)楹芏嚯[藏的構(gòu)建約束都是在這些腳本里體現(xiàn)的比如某些版本要求、環(huán)境變量控制等。還有一個(gè)容易忽略的群體是OpenAPI描述文件和YAML清單它們雖然不是編程語言但數(shù)量很大。api/目錄下大量swagger.json和OpenAPI v3定義文件是整個(gè)API兼容性的契約基礎(chǔ)。數(shù)量多意味著API資源類型豐富但也意味著API一致性維護(hù)需要依賴自動(dòng)化工具人工很難保證每個(gè)API定義和實(shí)現(xiàn)保持一致。3. 工程質(zhì)量關(guān)鍵環(huán)節(jié)逐一分析3.1 依賴管理vendor策略、版本鎖定與依賴健康度依賴管理是我評(píng)測(cè)時(shí)最關(guān)注的維度之一因?yàn)橐粋€(gè)大型工程的依賴管理水平直接影響可維護(hù)性和可復(fù)制性。OpenShift-Origin采用的是vendor目錄固化依賴的方式。打開vendor/目錄你會(huì)發(fā)現(xiàn)所有第三方依賴都以固定版本的方式保存在倉庫內(nèi)部。這樣做有一個(gè)直接好處離線構(gòu)建能力。即使沒有外網(wǎng)訪問只要擁有這個(gè)倉庫就能完整編譯整個(gè)工程。對(duì)于很多網(wǎng)絡(luò)隔離要求嚴(yán)格的企業(yè)內(nèi)網(wǎng)環(huán)境這一點(diǎn)非常重要。不過也有代價(jià)。vendor目錄本身就有幾萬個(gè)文件加上Store版本后倉庫克隆體積會(huì)大很多。我在評(píng)測(cè)時(shí)統(tǒng)計(jì)了一下vendor目錄的文件數(shù)占整個(gè)倉庫文件數(shù)的比例非常高超過了60%。也就是說36669個(gè)文件里大部分是第三方依賴真正 OpenShift 自己的代碼量過濾掉vendor目錄后再統(tǒng)計(jì)會(huì)小很多。版本鎖定方面我用go mod graph對(duì)Go模塊圖做了分析。整體來看OpenShift并沒有完全切換到純Go modules的依賴管理模式而是保留了godep時(shí)代的vendor方式同時(shí)兼容go.mod。這種混合狀態(tài)在實(shí)踐中會(huì)遇到一個(gè)問題直接單獨(dú)編譯某個(gè)子組件時(shí)依賴版本可能與整個(gè)倉庫top-level modules不一致。如果你的團(tuán)隊(duì)想把這個(gè)倉庫拆出來一部分代碼獨(dú)立使用依賴沖突是第一道門檻。從依賴健康度看工程里主要依賴的是k8s.io、github.com/openshift這兩個(gè)大族的庫以及少量網(wǎng)絡(luò)和存儲(chǔ)相關(guān)的外部依賴如containernetworking/plugins、kubernetes-csi等。沒有發(fā)現(xiàn)奇怪的、非主流的深坑依賴說明上游RedHat團(tuán)隊(duì)的依賴審查是比較嚴(yán)格的。3.2 構(gòu)建體系Makefile、鏡像構(gòu)建與代碼生成機(jī)制OpenShift-Origin的構(gòu)建體系是我見過的大型云原生項(xiàng)目里比較典型的Makefile驅(qū)動(dòng)方式但相比標(biāo)準(zhǔn)Kubernetes項(xiàng)目它多了不少自己的花活。Makefile在根目錄和hack/目錄下都有大量target定義。常見的操作指令包括make build、make test、make generate等。其中make generate是我重點(diǎn)研究的對(duì)象因?yàn)樗澈箅[藏著整個(gè)工程最重要的自動(dòng)化邏輯代碼生成。OpenShift大量使用k8s.io/code-generator來生成deepcopy、informer、lister等樣板代碼。這個(gè)生成器會(huì)讀取API類型定義然后按照模板生成對(duì)應(yīng)的Go代碼。工程里pkg/目錄下大量zz_generated.deepcopy.go就是它的產(chǎn)物。這套機(jī)制的執(zhí)行順序很關(guān)鍵。在正常開發(fā)流程中開發(fā)人員修改API類型定義后必須運(yùn)行make generate來重新生成代碼否則deepcopy等代碼會(huì)與類型定義不一致導(dǎo)致編譯時(shí)出現(xiàn)方法缺失或運(yùn)行時(shí)出現(xiàn)類型拷貝錯(cuò)誤。我們團(tuán)隊(duì)第一次上手改API時(shí)就是因?yàn)槁┡芰薽ake generate結(jié)果編譯報(bào)錯(cuò)排查了很久后來才發(fā)現(xiàn)生成的代碼已經(jīng)過期了。鏡像構(gòu)建方面工程使用Dockerfile配合hack/lib/build.sh腳本完成。每個(gè)核心組件都有對(duì)應(yīng)的鏡像構(gòu)建流程。鏡像基礎(chǔ)鏡像的tag是受嚴(yán)格控制的RedHat通過release.txt和build-scripts維護(hù)鏡像之間的依賴關(guān)系。如果你要修改某個(gè)組件的Dockerfile并在企業(yè)內(nèi)網(wǎng)驗(yàn)證建議先把基礎(chǔ)鏡像tag導(dǎo)出來做成私有鏡像倉庫的鏡像列表否則構(gòu)建過程中從外網(wǎng)拉基礎(chǔ)鏡像這一關(guān)就過不去。3.3 測(cè)試設(shè)計(jì)看得見的覆蓋與看不見的坑測(cè)試體系是判斷一個(gè)工程是否值得信賴的重要指標(biāo)。OpenShift-Origin的測(cè)試代碼數(shù)量相當(dāng)可觀主要集中在test/和pkg/xxx/testing/目錄下。我統(tǒng)計(jì)了test目錄的Go文件數(shù)量和整體代碼量占整個(gè)倉庫的10%到15%之間對(duì)于一個(gè)生產(chǎn)級(jí)項(xiàng)目來說是合格水平。從測(cè)試類型上看工程內(nèi)至少有三種測(cè)試單元測(cè)試集中在pkg/和api/目錄內(nèi)的*_test.go文件主要驗(yàn)證API校驗(yàn)邏輯、controller的獨(dú)立行為等。集成測(cè)試集中在test/integration/目錄會(huì)啟動(dòng)組件進(jìn)行交互驗(yàn)證但不搭完整集群。E2E測(cè)試集中在test/e2e/目錄需要真實(shí)集群環(huán)境包含大量OpenShift特有的功能測(cè)試用例。我要特別提醒的是E2E測(cè)試的啟動(dòng)門檻非常高。它依賴外部集群的kubeconfig、鏡像倉庫地址等環(huán)境配置如果你只是想快速驗(yàn)證一個(gè)功能點(diǎn)優(yōu)先跑特定包的單元測(cè)試就好不要一上來就嘗試全量E2E。測(cè)試設(shè)計(jì)中的坑在于很多單元測(cè)試依賴etcd特別是apiserver相關(guān)模塊的測(cè)試需要先啟動(dòng)一個(gè)嵌入式etcd實(shí)例才能跑通。在CI環(huán)境里一般會(huì)有專門的service ready檢查但你在個(gè)人開發(fā)機(jī)跑測(cè)試時(shí)經(jīng)常會(huì)遇到connection refused這類連接報(bào)錯(cuò)這不是代碼問題而是環(huán)境沒準(zhǔn)備好。3.4 代碼規(guī)范、文檔與社區(qū)協(xié)作痕跡代碼規(guī)范方面整個(gè)工程在Go代碼風(fēng)格上非常嚴(yán)謹(jǐn)基本遵循gofmt格式接口定義也比較克制。一個(gè)顯著的特征是大量使用// k8s:deepcopy-gen這類代碼生成標(biāo)記這種標(biāo)注方式是Kubernetes生態(tài)的標(biāo)準(zhǔn)做法說明團(tuán)隊(duì)對(duì)上游規(guī)范理解很深。文檔這塊我的評(píng)價(jià)反而比較謹(jǐn)慎。docs/目錄下的內(nèi)容存在明顯滯后很多文檔還停留在舊版本API的描述上和4.x的代碼實(shí)現(xiàn)有一定出入。這不是個(gè)別現(xiàn)象大型OpenShift工程都存在類似問題。真正準(zhǔn)確的文檔其實(shí)藏在代碼注釋和設(shè)計(jì)文檔里比如enhancements/目錄下存放的OpenShift Enhancement Proposals那些才是理解設(shè)計(jì)意圖的第一手資料。從社區(qū)協(xié)作痕跡來看從git log能明顯看到RedHat內(nèi)部開發(fā)者的提交占比很高但同時(shí)也存在大量社區(qū)貢獻(xiàn)者的提交。提交信息整體規(guī)范PR模板和issue模板都是經(jīng)過設(shè)計(jì)的。這種工程協(xié)作的規(guī)范性比代碼本身更能說明一個(gè)項(xiàng)目的長(zhǎng)期可維護(hù)性。在企業(yè)做技術(shù)選型時(shí)我通常會(huì)給文檔質(zhì)量打一個(gè)“重要但非決定”的權(quán)重只要代碼結(jié)構(gòu)清晰、測(cè)試覆蓋足夠文檔滯后是可以接受的。但如果代碼本身混亂、依賴不健康文檔寫得再漂亮也要打個(gè)大問號(hào)。OpenShift-Origin屬于前者。4. 企業(yè)落地風(fēng)險(xiǎn)清單與應(yīng)對(duì)策略4.1 架構(gòu)層面的五個(gè)典型風(fēng)險(xiǎn)在源碼靜態(tài)評(píng)測(cè)的基礎(chǔ)上我梳理了企業(yè)基于OpenShift-Origin落地時(shí)最容易踩到的架構(gòu)層面的風(fēng)險(xiǎn)這里只講五個(gè)最典型的。風(fēng)險(xiǎn)一控制面組件數(shù)量龐大資源占用偏高。OpenShift-Origin的控制面組件比原生Kubernetes多非常多。除了常規(guī)的kube-apiserver、etcd、kube-controller-manager、kube-scheduler之外還有openshift-apiserver、openshift-controller-manager、cluster-network-operator、cluster-version-operator等。每個(gè)組件都是一個(gè)常駐進(jìn)程對(duì)控制節(jié)點(diǎn)的CPU和內(nèi)存要求比原生K8s高不少。我們?cè)谶m配低配置服務(wù)器時(shí)就明顯感受到控制面資源緊張的問題。風(fēng)險(xiǎn)二API擴(kuò)展復(fù)雜版本兼容性要求高。OpenShift自定義API資源非常多包括Route、BuildConfig、ImageStream、Template等。這些API資源都需要在openshift-apiserver中注冊(cè)并處理API升級(jí)時(shí)遷移工作量大。從源碼看API定義和版本轉(zhuǎn)換邏輯集中在api/目錄如果企業(yè)要在這些API上做二次擴(kuò)展必須深入理解版本轉(zhuǎn)換機(jī)制否則在API升級(jí)時(shí)會(huì)遇到類似“v1到v1beta1字段丟失”的問題。風(fēng)險(xiǎn)三Operator機(jī)制的遞歸復(fù)雜度。OpenShift大量使用Operator管理自身組件的生命周期。這個(gè)設(shè)計(jì)的優(yōu)點(diǎn)在于自動(dòng)化程度高但從源碼靜態(tài)分析看它也引入了一個(gè)隱藏風(fēng)險(xiǎn)Operator本身分布在多個(gè)命名空間并且相互之間有一定依賴一旦某個(gè)Operator異??赡芤l(fā)級(jí)聯(lián)故障。排查這類故障需要對(duì)整體架構(gòu)有全局認(rèn)識(shí)不能只盯著某一個(gè)組件。風(fēng)險(xiǎn)四SDN組件與異構(gòu)網(wǎng)絡(luò)兼容問題。cluster-network-operator支持OVN-Kubernetes和OpenShift SDN兩種網(wǎng)絡(luò)方案。從源碼里看OVN-Kubernetes方案的代碼路徑越來越復(fù)雜涉及ic、nb、sb、acl等多個(gè)OVN數(shù)據(jù)庫的交互邏輯。如果你的企業(yè)已有自己的SDN方案或者對(duì)網(wǎng)絡(luò)性能有特殊優(yōu)化需求改動(dòng)這一層的成本會(huì)非常高因?yàn)樗恢皇歉囊粋€(gè)可插拔的CNI插件而是要替換整個(gè)網(wǎng)絡(luò)控制鏈路。風(fēng)險(xiǎn)五安全上下文強(qiáng)制性較高。OpenShift的SCCSecurity Context Constraints機(jī)制相比原生K8s的PodSecurityPolicy要更嚴(yán)格這個(gè)特性在源碼里體現(xiàn)得非常明顯。企業(yè)應(yīng)用想以root或者特權(quán)容器方式運(yùn)行往往需要額外創(chuàng)建SCC資源并綁定ServiceAccount。源碼層面看這類SCC邏輯內(nèi)置在openshift-apiserver的準(zhǔn)入控制鏈里二次開發(fā)定制時(shí)的修改面較寬無法只在一個(gè)點(diǎn)完成改造。4.2 運(yùn)維與版本演進(jìn)層面升級(jí)鏈路怎么走更穩(wěn)源碼評(píng)測(cè)過程中最讓我擔(dān)心的一點(diǎn)其實(shí)是升級(jí)鏈路。OpenShift-Origin采用了cluster-version-operatorCVO來做版本管理這個(gè)組件會(huì)在集群內(nèi)維持期望版本和實(shí)際版本之間的穩(wěn)定收斂。從源碼看CVO通過一個(gè)UpdatePayload來協(xié)調(diào)各組件鏡像的更新順序這種機(jī)制的優(yōu)點(diǎn)是升級(jí)過程是受控的但它有一個(gè)前提你必須信任RedHat發(fā)布的更新payload中的鏡像列表。企業(yè)如果使用社區(qū)版OKD或OpenShift-Origin自己構(gòu)建所有組件鏡像并生成對(duì)應(yīng)payload的工程量非常大。我見過一些團(tuán)隊(duì)只構(gòu)建了部分鏡像結(jié)果升級(jí)時(shí)CVO一解析payload發(fā)現(xiàn)某個(gè)組件鏡像tag不存在直接卡住。這種問題從源碼層面是能預(yù)判的因?yàn)镃VO的payload結(jié)構(gòu)在源碼的release/目錄下有詳細(xì)定義。因此我建議企業(yè)做落地規(guī)劃時(shí)把升級(jí)鏈路分成兩種一種是大版本升級(jí)比如4.12到4.13建議全量構(gòu)建、完整驗(yàn)證后再統(tǒng)一推另一種是小版本補(bǔ)丁比如4.12.z可以只構(gòu)建變更組件但要嚴(yán)格保持鏡像tag與payload定義一致。這兩種策略的構(gòu)建腳本和驗(yàn)證方案要提前準(zhǔn)備不能在需要升級(jí)時(shí)才臨時(shí)研究。4.3 二次開發(fā)切入點(diǎn)哪些地方值得改、哪些地方別碰源碼評(píng)測(cè)的一個(gè)重要產(chǎn)出是幫企業(yè)劃出二次開發(fā)的“安全區(qū)域”和“禁區(qū)”。安全區(qū)域一準(zhǔn)入控制與SCC策略。如果企業(yè)需要增加安全審計(jì)邏輯、實(shí)現(xiàn)自定義的多租戶隔離規(guī)則可以在openshift-apiserver的準(zhǔn)入控制鏈上擴(kuò)展這個(gè)位置的代碼接口比較清晰改動(dòng)相對(duì)獨(dú)立。安全區(qū)域二自定義Controller。OpenShift本身就是一個(gè)Controller密集型的系統(tǒng)企業(yè)完全可以在工程外開發(fā)自己的Operator或Controller通過CRD和Controller-runtime庫與OpenShift集群交互不必要在主倉內(nèi)改動(dòng)。這是最常見也最穩(wěn)妥的擴(kuò)展方式。安全區(qū)域三網(wǎng)絡(luò)與存儲(chǔ)的外部插件。盡量通過標(biāo)準(zhǔn)的CNI和CSI機(jī)制接入外部方案。雖然OpenShift自帶OVN-Kubernetes但它也保留了引入第三方CNI的接口。存儲(chǔ)方面用CSI插件接入企業(yè)存儲(chǔ)陣列的實(shí)踐已經(jīng)很成熟不要在OpenShift內(nèi)部存儲(chǔ)代碼里做深度綁定。禁區(qū)一kube-apiserver核心邏輯。除非你有專門的Kubernetes上游維護(hù)團(tuán)隊(duì)否則不要輕易在上游Kubernetes代碼上做功能改動(dòng)因?yàn)楹罄m(xù)跟蹤上游版本的成本會(huì)呈幾何級(jí)數(shù)上升。禁區(qū)二openshift-controller-manager的內(nèi)部調(diào)度邏輯。OpenShift的調(diào)度控制器和資源配置邏輯與它自身的Project、Quota機(jī)制深度綁定改動(dòng)一處會(huì)牽動(dòng)多個(gè)組件不建議輕易修改。禁區(qū)三CVO的版本協(xié)調(diào)邏輯。前面已經(jīng)說過這是控制整個(gè)升級(jí)流程的核心。對(duì)它的任何改動(dòng)都會(huì)影響到集群的版本收斂能力除非公司養(yǎng)了一支專門的團(tuán)隊(duì)否則別碰。4.4 鏡像構(gòu)建與私有化交付的隱藏成本如果企業(yè)打算把OpenShift-Origin做成私有化交付產(chǎn)品鏡像構(gòu)建是不可回避的環(huán)節(jié)。源碼工程本身提供了一系列Dockerfile和構(gòu)建腳本但距離真正可交付的鏡像倉庫中間還隔著三層隱藏成本。第一層是基礎(chǔ)鏡像準(zhǔn)備。OpenShift各組件的基礎(chǔ)鏡像通常基于RedHat Enterprise Linux或者CentOS Stream構(gòu)建這些基礎(chǔ)鏡像在企業(yè)內(nèi)網(wǎng)環(huán)境下需要提前同步到私有鏡像倉庫。由于基礎(chǔ)鏡像較大網(wǎng)絡(luò)隔離環(huán)境下的首次同步成本容易被低估。第二層是多架構(gòu)鏡像支持。如果你要同時(shí)交付x86和ARM版本構(gòu)建矩陣會(huì)翻倍。源碼工程的構(gòu)建腳本對(duì)多架構(gòu)支持的自動(dòng)化程度一般很多關(guān)鍵鏡像的tags需要手動(dòng)維護(hù)這是一個(gè)典型的人肉成本點(diǎn)。第三層是安全掃描和漏洞修復(fù)閉環(huán)。源碼評(píng)測(cè)做到最后所有企業(yè)都會(huì)面對(duì)這個(gè)問題鏡像里已知漏洞怎么修上游RedHat會(huì)維護(hù)企業(yè)版的漏洞通告和修復(fù)鏡像但基于OpenShift-Origin自己構(gòu)建的鏡像安全修復(fù)的責(zé)任落在企業(yè)自己身上。這意味著你除了要維護(hù)代碼分支還要維護(hù)鏡像CVE清單和修復(fù)版本而且是長(zhǎng)期投入。我把這部分列入風(fēng)險(xiǎn)清單是想給正準(zhǔn)備做私有化交付的團(tuán)隊(duì)提個(gè)醒代碼層面看懂的難度遠(yuǎn)遠(yuǎn)小于交付層面構(gòu)建和修復(fù)的難度。5. 常見問題與排查建議速查表做源碼靜態(tài)評(píng)測(cè)的過程中我自己也踩了不少坑。下面把這些常見問題和排查建議整理成一個(gè)速查表方便你要復(fù)查時(shí)對(duì)照參考。問題現(xiàn)象可能原因排查與處理建議編譯報(bào)錯(cuò)提示缺少zz_generated.deepcopy.go修改API類型后未重新執(zhí)行make generate在修改API的目錄下執(zhí)行make generate確認(rèn)生成代碼后重新編譯跑單元測(cè)試時(shí)連接etcd失敗測(cè)試依賴嵌入式etcd本地環(huán)境未準(zhǔn)備好確認(rèn)是否安裝了etcd或使用make test-integration按項(xiàng)目預(yù)設(shè)的etcd啟動(dòng)方式vendor目錄與go.mod版本不一致混合依賴管理導(dǎo)致版本漂移先跑go mod tidy確認(rèn)模塊版本再通過hack/verify-vendor.sh腳本檢查vendor目錄一致性構(gòu)建鏡像時(shí)拉取基礎(chǔ)鏡像超時(shí)企業(yè)內(nèi)網(wǎng)沒有基礎(chǔ)鏡像緩存提前把構(gòu)建依賴的base鏡像tag列表導(dǎo)出在內(nèi)網(wǎng)鏡像倉庫建立拉取白名單openshift-apiserver啟動(dòng)后API資源無法注冊(cè)API版本沒有對(duì)應(yīng)conversion邏輯檢查api/目錄下對(duì)應(yīng)資源是否安裝了conversion表確認(rèn)版本間的字段映射scc策略導(dǎo)致應(yīng)用鏡像無法以root啟動(dòng)OpenShift默認(rèn)拒絕root容器創(chuàng)建自定義SCC并綁定ServiceAccount需確認(rèn)SCC策略優(yōu)先級(jí)是否被前面的SCC攔截OVN-Kubernetes網(wǎng)絡(luò)數(shù)據(jù)面時(shí)延偏高OVN數(shù)據(jù)庫和網(wǎng)關(guān)節(jié)點(diǎn)配置不匹配優(yōu)先檢查網(wǎng)關(guān)節(jié)點(diǎn)和OVN內(nèi)部通信鏈路確認(rèn)拓?fù)浣Y(jié)構(gòu)再考慮代碼修改這個(gè)表不是萬能鑰匙但能覆蓋大部分靜態(tài)評(píng)測(cè)和初始運(yùn)行時(shí)遇到的問題。建議團(tuán)隊(duì)工作的第一周打印一份貼在最顯眼的位置。再補(bǔ)充一個(gè)很多人不知道的技巧排查OpenShift-Origin的控制器異常時(shí)可以優(yōu)先看operator對(duì)應(yīng)的status.conditions里的reason字段。源碼里這個(gè)字段的賦值邏輯很嚴(yán)謹(jǐn)從reason描述基本能直接定位到具體模塊和代碼行這是我用下來效率最高的診斷方式。6. 我最后的經(jīng)驗(yàn)和建議OpenShift-Origin源碼靜態(tài)工程評(píng)測(cè)做到這里我的整體結(jié)論用一個(gè)詞概括是“厚重”。它比社區(qū)版Kubernetes功能更完整、安全模型更嚴(yán)苛、自動(dòng)化程度更高但也注定比原生K8s更復(fù)雜、更吃資源、更依賴長(zhǎng)期維護(hù)能力。企業(yè)選擇它作為Kubernetes發(fā)行版底座本質(zhì)上是在用一部分靈活性和控制權(quán)換取開箱即用的企業(yè)特性與跨組件集成能力。在啟動(dòng)前給自己三天時(shí)間靜態(tài)走讀源碼是真的值得的。你不需要把36669個(gè)文件全看一遍重點(diǎn)是看清楚幾個(gè)關(guān)鍵目錄api/、pkg/cmd、hack/、cluster-version-operator以及cluster-network-operator。這些區(qū)域看透了你對(duì)OpenShift-Origin的架構(gòu)理解和駕馭能力會(huì)完全不一樣。最后分享一個(gè)我反復(fù)強(qiáng)調(diào)的原則源碼評(píng)測(cè)不是一次性工作發(fā)行版的每一次版本升級(jí)都會(huì)帶來代碼層面的變化。我建議在每次大版本升級(jí)前都把這篇評(píng)測(cè)里的核心維度快速跑一遍用最少的成本確認(rèn)工程質(zhì)量沒有退化。畢竟對(duì)企業(yè)的容器云底座來說避免踩坑的最好方式就是在還不知道坑長(zhǎng)什么樣的時(shí)候先把地圖看明白。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
涩涩五月天| 性做久久久久久久免费看| 人人性久久| 久久ww| 另类图片 五月激情| www久久久久| 丁香五月性爱| 超级碰碰91| 色久五月| 婷婷激情五月天色| 99热视| 人妻激情视频| www.综合久久| 激情丁香五月| www网站在线观看| 狼人久草| 99热这里只有精| 9久久久久久久久久久| 一本久久亚洲五月婷婷| 亚洲综合激情五月天婷婷| 婷婷免费视频| 四色五月婷婷| 中文字幕精品推荐免费在线观| 久久九九色| 五月天天天色| 国产精品VA在线| 色五月婷婷激情五月| 超碰99在线| 色香久久| 久久久宗合| 激情av网| 久久婷婷人人| 中文字幕在线日亚洲9| 天天综合区| 4438亚洲欧美| 久热精彩视频98| 九九综合| 五月天丁香久久综合| 大香蕉520| 色99视频| 这里只有精品96| 丁香五月激情五月| 狠狠CAO日日穞夜夜穞AV| 久久9视频欧美| 九九热在线视频观看免费10| 97干在线免费| 久青操| 美女91一起草| 丁香婷婷五月激情| 日韩抽插操逼| 爆乳熟妇一区二区三区四区| 思思久久久婷婷| 日本欧美成人片AAAA| 精品一二三区久久AAA片| 六月丁丁香| 丁香婷婷色五月| 丁香五月影院| 亚洲色图欧美色图日本视频| 99热在线爱| 色丁香五月婷婷综合久久| 日本久久色| 中文字幕人妻一区二区| 九九99九九99九九99视频网| 中文人妻主播久久| 婷婷五月天电影区小说区| 日本va欧美va欧美| 婷婷激情九月| 亚洲网站观看视频| 4399伦理午夜| 欧美天天综合网站上去吧| 丁香五月天天日| 五月天自拍网| 婷婷激情人妻| 五月丁香综合| 中文字幕+中文在线| 久久久久98| 香蕉综合在线| 99热这里只有精品最新地址获取| 成人国产综合| 色色色九九九五月婷婷| 久热黄色| 九热视频这里只有精品| 九九热中文| 91狠狠综合久久久久久| 亚洲AV成人无码精品| 五月婷综合激情| 97碰| 99亚洲无码| 五月婷婷丁香俺日污视频| 天天爽天天| 天天干天天插| 九九人人看| 久久婷婷成人| 国产视频婷婷| av操逼网| 综合丁香婷婷五月天| 色婷婷九月综合| 六月丁香激情| 九九爱精品网站| 狠狠综合久久| 丁香青青五月天| 婷婷射综合| 夜夜天天久久婷婷| 亚洲热久久| 91男人操女人视频| 丁香五月 综合| 国产精品香蕉| 超碰成人黄色网| 婷婷五月天中文字幕| 久久久这里都是精品| 五月天激情无码高清| 婷婷久月| 在线一起草av| 色五月天在线| 精品香蕉99久久久久网站| 婷婷va| 六月丁香婷婷开心综合基地| 六月丁香啪啪啪| 五月丁香婷爱在线| 香蕉久久国产AV一区二区| 婷婷大乡焦噜噜| 五月五丁香婷婷| 99操久久| 色噜噜狠狠色综合成人99| 欧洲亚洲欧洲99久久| 久久婷婷丁香| 五月天婷婷綜合院| 天天搞天天色综合| 婷婷丁香宗合888| 五月丁香伊人网| 久久三级视频| 婷婷色导航| 亚洲欧美婷婷五月色综合| 精品亚洲国产成AV人片传媒| 亚洲激情校园| 婷婷99狠狠| 色婷婷a v| 精品草原久久视频| 丁香婷婷五月色综合| 丁香五月婷婷狠狠色| 久久机热/这里只有精品| 精品影院| 综合色色婷婷| 殴美97色| www99在线观看视频| bukadeavzaixian| 激情婷婷丁香五月| 日本不卡高字幕在线2019| 97人人草| 亚洲精品字幕在线观看| 婷婷色色网| 天堂无码人妻精品AV一区| 狠狠色丁香久久久婷| 九九热av| 99在线观看免费精品视频| 九九热精品视频| 久婷五月| 无码少妇高潮喷水A片免费| 狠狠干总合| 五月天激情小说| 五月色情婷婷| 国产av天天插天天操天天爽| 99热综合色图| 婷婷欧美色| 久久婷婷视频| 97韩国久久电影院| 狠狠色五月| 久久与婷婷| 五月天婷婷綜合院| 狠狠综合| 天天日夜夜拍| 狠狠五月激情在线| 婷婷五月丁香99| 俺也去在线视频| 激情久久综合网| 亚洲 视频 导航 一区| 狠狠爱婷婷| 婷婷五月色| www.夜夜操.con| 激情婷婷狠狠干| 亚洲岛国电影| 久久久这里有精品| 色五月亚洲开心网| 天天色图| 久草免费福利视频| 久久99久久久久久| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪| 免费AV在线| 99操视频| 婷婷五月av| 日韩欧美一道四区中文字幕| 国产真人做爰视频免费| 美欧日韩国产成人在战| 人人看人人要| 久久五月天激情美女| 成人国产欧美大片一区| 婷婷丁香宗合888| wwW天天干| 日韩国产AV播放| 久热综合| 婷婷亚洲综合| 我要看激情五月天| www.精品99| 久久久久久久久久久jjjj| 玖玖在线视| 六月丁香激情最新更新| 久热9| 丁香五月天大香蕉啪啪| 狠狠干狠狠干| 日本三久久| 五月婷婷综合色啪首页| 99热最新地址在线| 五月婷中文字幕| 国产SUV精品一区二区883| 99视频精品在线| 九九热10| 国产成人综合电影| 丁香婷婷五月天亚洲| 精品自拍97| 青青草成人网| caop在线视频| 九九精品热播| 久久九九国产精品怡红院| 天天婷婷操| 91超级碰在线视频| 超碰97久久| 九九婷婷激情综合网| 大香蕉伊人99| 久久婷网| 激情AV在线| 五月天堂在线| 久久机热思思热| a色色色色色| 超色欲天天| 97在线观视频免费观看| 国产av一区二区三区| 岛国AV网| 99操碰| 9999三级片| 色欲色香伊人| 丁香桃色网| 欧美性色五月天| 婷婷五月天天天日日夜夜| 99精品久久久久| 五月亭久久无码视频| 夜夜爽77777妓女免费下载| 综合久久婷婷| 狠狠操综合| 日本片日本片祼观看网站在线看中文版网页在线看 | 婷婷六月啪啪| 婷婷99中文字幕| 五月丁香成人小说| 色色五月婷婷久久| 丁香五月综合婷婷| 亚洲综合激情五月久久| 丁香婷婷久久| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 日韩一级一片内射视频4K| 涩涩五月天| 99热首页| 国产午夜精品一区二区三区嫩草| 黄急一级视频| 一级无码作爱片| 国产亚洲色婷婷久久99精品9j| 激情综合五月丁香六月婷婷| 99久热精品在线| 奇米网大香蕉| 日本色色色| 丁香五月天无码AV| 欧美va亚洲va在线播放| 婷婷99狠狠| 91无码高清| 色综合丁香婷婷| AA丁香综合激情| 五月丁香在线| 东京热人妻一区二区三区在线| xxxx五月天色色| 国产成人AV在线播放| 热久国产| 91婷婷五月天综合视频| 色婷婷丁香五月天在线观看| 99色热| 天天综合网在线| 俺去也婷婷| 久久六月婷婷| 玖玖色综合网| 天天舔天天插天天干| 亚洲夜夜操| 九九热视频在线观看| 最新av在线观看| 久久九九热视频| 99热| 久久综合首页| 奸逼视频| 丁香色六月婷婷| 五月激情综合网| 激情超碰网| 五月丁香啪啪啪综合网| 26uuu另类亚洲欧美日本一| 欧洲亚洲精品| 桃色成人网| 无码一级片| 99无码视频| 久久婷婷亚洲五月天| 精品久久99码| 五月婷婷亚洲天堂97色婷婷| 色婷婷狠狠爱| 五月婷婷婷婷| 91色色五月天| 人妻操逼视频。| 五月丁香婷庭在线| 99九九视频| 国内熟女黄色系列| 狠狠香婷婷五月| 热99这就是精品视频| 色99网| 婷婷香蕉视频| 影音先锋 婷婷| 丁香 久久| 狠狠爱深色婷婷综合| 超碰在线9| 婷婷五月色网| 大地9中文在线观看免费高清| 5五月综合网亚洲| 777色婷婷爱五月| 五月丁香六月婷婷操操操| 久久婷婷成人综合色怡春院| 九九热re99re6在线精品| 婷婷六月色情| 亚洲精品久久久久久久久久飞鱼| 五月丁香婷婷爱激情综合网| 99色干| 9精品一区| 五月丁香色婷婷伊人| 99九九热视频| 97sese婷婷| 欧美性丁香色色五月天| 色婷婷五月天| 国内婷婷丁香社区在线播放| 丁香六月天| www久久艹| 久色资源| 五月激情婷婷国产精品久久久久久| 成人AV在线网站| 婷婷丁香五月天激情| 久久久精品99| 99综合网| 日韩 中文 欧美| 色婷婷五月天视频网站| 97人人操com| 天天操,夜夜骑| 777精品久无码人妻蜜桃| 这里只有精品免费在线视频| 日韩啊啊啊| 亚洲综合网 665566| 97在线刺激| 草榴视频网| 欧美日韩AAAA| 综合网网欲色| 五月婷婷丁香综合| 天天爽成人综合网站| 91操人视频| 夜夜 操无码| 亚洲综合视频网| 91大屁股精品| 97色婷| 操97| 五月天婷婷综合网| av在线色五月丁香婷区久| 国产精品第一国产精品| 夜丁香五月婷婷| 91啦丨九色丨刺激中文| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 深爱丁香网| 99这里有精品| 婷婷丁香五月综合网上| 97日在线视频| 99热超碰| 久久99网| 天天色月| 天堂久热| 91美女被操| 五月丁香手机在线| 大香蕉福利导航| 99re热视频这里只精品5| 超碰97久久| 综合AV在线| 久久视这里只有精品| 99热这里只有精品8| 五月婷婷九| 久久99精品久久久| 五月天色图| 欧美色色色| 丁香六月综合激| 色婷精品91| 五月天婷综合网站| 婷婷五月激情五月丁香五月| 丁香五月六月综合激情| 伍月婷丁香花全集| 任你艹| 五月婷婷爽爽爽| 久久婷婷六月综合综合色| 色综合丁香婷婷| 色婷婷99| 五月天丁香成人| 综合久色五月| 丁香婷婷九月| 久久视9精| 任你日视频| 这里只有精品在线播放| 婷婷久久五月天丁香| 91丨九色丨熟女高潮| 久久人妻伊人| 五月激情视频网| 操逼巨乳91| 久久香蕉网| 五月婷婷啪啪| 手机激情网| www.97碰碰com| 亚洲成人无码专区| 操骚货在线| 少妇达人正片在线播放_ikun_福利吧| 人妻乱码久久久| 9伊人网| 亚洲乱码日产精品BD在线观看| 99热这里精品| 99热只有精品在线观看| 噜综合| 狠狠综合区| 色婷婷成人做爰A片免费看网站| 噜噜国产| 久色国产| 亚洲mm色| 天天舔天天摸天天射| WWW色色色COm| 99久久精品国产色欲| 91九色最新视频| 五月激情偷拍| 成人 在线 日韩| 99热在线精品观看| 99热99这里只有精品| 色八月婷婷| 九九99精品视频| 超碰永久在线| 久9热在线免费观看| 99这里都是精品| 日韩成人网址| 丁香五月婷婷啪啪| 五月婷婷激情久久| 狠狠干夜夜干| 五月色丁香| 婷婷黄色| 色婷视频| 69精品人人人人| 色五月激情| 久久视频婷婷| 久久激情五月天| 色情成人五月天| 桔色成人在线| www.婷婷五月天.com| 永久地址 色| 五月丁香六月合| 丁香五月综合福利视频导航| 激情婷婷五月色| 五月丁花色综合网| 色丁香五月婷婷在线| 国产日日操夜夜操的肉棒视频| 婷婷丁香午夜综合影视| 开心五月深爱五月婷| 天天肏天天插| 99国产小视频| 久久久精品人妻| 欧洲色| 丁香五月六月婷婷综合| 丁香五月天激情| 99这里只有精品|v| 极品人妻VIDEOSSS人妻| 婷婷.com| 欧美在线视频免费播放| 五月婷在线| 中文精品久久久久人妻不| 丁香无月在线观看| 婷婷夜夜夜夜| 丁香五月色| 欧美精品啪啪| 大香蕉啪啪啪| 婷婷丁香五月综合久久| 色香久久| 99高级会所久久| 婷婷播播五月天| 怡红院视频| 182TV大香蕉| 思思re99视频在线观看| 欧美 色婷婷| 色色影院黄大片| 91色色色| 欧美成人精品老美女噜噜噜| 九九色欲网| 精品一二三区久久AAA片| 色欲五月丁香| 操碰99| 色色色精品无码区| 九九热视频这里只有精品| 丁香大香蕉| av亚洲国产小电影| WWW,五月| 五月丁香六月婷婷综合伊人| 婷婷99热| 91日本在线免费| 久久久激情视频| 婷婷五月天日逼| 丁香久久| 国产成人AV| 超碰爱爱爱| 婷婷婷色五月| 六月婷婷激情图片| 久久久久久久,99精品视频| BT综合在线视频观看| 激情五月天无码| 五月丁香网站| 亚洲天堂色| 99久久婷婷国产综合| 五月天婷婷青青草| 久久九九网| 久久婷婷东京热| xx综合网| 激情婷婷六月天| 午夜福利8055| 丁香网五月网| 色婷婷六月| 99手机在线精品视频| 开心日韩丁香婷婷五月| 婷婷丁香人妻天天爽| 4399精品一区二区| oVV4WIB3vFi8D| 亚洲另类婷婷综合| 伊人色综合久久久| 岛国AV网站| 色99色| 97碰啪啪| 丁香五月六月综合激情| 九月丁香欧美综合| 色丁香影院| 俺去也五月| 五月丁香久久精品在线观看| 色九月婷婷综合| 青青操成人福利| 日韩AAA| 九九99精品| 99久久婷| 成人午夜无码视频| -91九色大屁股| 丁香成人五月天| 123日本不卡在线| 婷婷丁香五另类网站| 啪啪啪大香蕉| 色婷婷丁香网| 午夜天堂啪啪| 色综久久AV| 丁香五月伊人| 亭亭丁香久久五月| 精品一二三区久久AAA片| 99这里有精品视频3| 成人短视频在线| 亚洲无码11| 九九大香视频| 黄网网站在线播放| 久久婷五月天| 99热6这里只有精品6| 99操逼| 丁香五月婷婷久久久| 超碰AV在线| AAAA亚洲| 伊人网色婷婷五月天| 天天操,天天插| 91蝌蚪窝视频在线| 婷婷五月丁香香蕉| 九九人人自拍| 婷婷婷婷色| 五月丁香婷婷无码中文| 内射干少妇亚洲69XXX| RenRenSe在线视频网站| 欧美A片在线视频免费观看| 色99热| 婷婷终合色图| 日日爽日日| 思思久久精品视频| 91男人资源站| 丁香婷婷91在线观看视频| 丁香五月婷婷黑人妻黄色电影院| 大香蕉久| 97婷婷五月天| 丁香色六月婷婷| 日本高清久久| 五月天婷婷在线播放免费| 婷婷色情五月| 五月丁香综合啪啪| 99热在线观看精品免费| 在线另类视频| 刘玥av在线| 色婷婷亚洲六月婷婷中文字幕| 伊人www22综合色| 色屌丝中文字幕| 天天开心AV色综合婷婷五月天| 欧美高潮9| 九九九热精品| 色综合网综合| 99在线69| 亚洲欧美成人在线观看| 在线播放成人网站| 天天精品视频在线观看视频| 丁香五月中文字幕| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 午夜福利成人AV91| 六月婷婷色| 99热精地址| 影音先锋一区二区三区| 丁香激情综合| 色五月婷婷亚洲| 色天天综合| 99日韩| 丁香五月激情五月| 99热这里是精品| 色香欲综合| 亚洲色欲欧美一区二区三区| 久久久久8888| 婷婷激情97| 精品久久99码| 99啪啪网| 婷婷五月天堂一本在线| 99婷婷五月天| yellow视频在线观看91| 日本偷拍九九九| 九九久久综合| 九九精品综合| 日韩aaa| 久久九九99字幕| 爱久久小说下载网| 亚洲超碰在线| 五月天丁香六月综合| 婷婷五月丁香四射| 强壮公让我夜夜高潮A片视频| 久久99热这里只频精品6学生| 六月丁香婷啪射| 色啪影院| 久久狠狠干| 99在线爽| 99热在线极品极品| 极品少妇高潮啪啪AV无码| 99男人的天堂| 九九在线精点品| 五月开心激情网| 99精品这里只有免费视频| 欧美天堂久久| 久久婷婷内射| 婷婷色在线视频| 亚洲情a| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 4438国产免费看| 色色丁香婷婷五月天| 成熟妇人A片免费看网站| 九九99在线免费在线观看视频| 直接看的AV| 99热这里只有精品无码| www狠狠| 5月色亭亭视频| 熟女色专区| 九九碰九九爱97超碰| 超碰97久久| 激情五月天第四色| 97碰成超视频免费视频| 色综合久久综合| 午夜福利成人AV91| 丁香六月婷婷社区| 99热只有精品在线| 五月丁香婷婷婷激情爱爱| ady狠狠入| www.久9| 婷婷趴趴| 7777激情基地| 色五月开心婷婷| 久久66er久久| 99亚洲欧洲| 丁香五月色五月婷婷宗合| 婷婷丁香激情| 亚洲亚洲永久无码777777| 五月久久丁香| 这里只有精品无码| 色五月五月婷婷| 开心五月婷婷激情| 色色五月婷| 风流少妇A片一区二区蜜桃| 激情五月丁香五月色| 六月婷综合| 婷婷激情四射五月天| 啪啪夜久久| 天天爽人人综合免费7799| 激情综合婷婷五月| 色婷婷狠狠色| 99只有精品| 久久婷婷内射| 天天爽夜夜操| 伊人影院久久网| 婷婷九月亚洲| www.夜夜夜| 99国产这里只有精品| 天堂综合久| 久久99热这里只频精品6学生| 国产精品久久久爽爽爽麻豆色哟哟| 爱iii做iiii日日| 任你搞网站| 天天做天天爰天天爽天天无遮挡| 色婷婷小说| 丁香五月天堂| 丁香五月综合网| 五月天婷婷操逼视频| 国产裸舞福利资源在线视频| 玖玖精品视频| 久久婷色| 9久久久| 婷婷成人综合免费视频| 狠狠干在线| 五月天综合网| 91日韩美女被插视频| 久久这里这里有精品免费视频| www.五月丁香av| 9 1超碰九色| 97操碰人免费| 久久久久婷婷五月热综合| 精品久久久人妻| 久热伊人| 97资源欧美日韩大香蕉超碰一区| 丁香五月六月激情| 色综合色色| 伊人丁香五月婷婷潮吹| 开心久久爱五月天| 91干| 怡红院91a√| 激情综合网,婷婷五月天| 99干视频| 激情文学 综合 九月| 婷婷亚洲激情在线观看视频 | 开心五月激情站| 97精品在线| 亚洲人成网站999综合| 久久久妻人人人| 97性视频| 免费99色| 999影院成人在线影院| 六月婷婷综合| 六月丁香深深爱综合网| 射区导航| 超碰9在| 天天色激情| 国产做爰视频免费播放| 久久婷婷五月国产激情综合片| 婷婷婷久久久| 丁香五月婷婷欧美成人色图| 婷婷丁香五月天中文字幕| 亚洲激情亚洲激情 | 99 热国产在| 日本婷久久| 五月丁香人妻| 天天摸天天舔| 91精品啪| 天天玩夜夜操| 丁香五月婷婷亚洲激情四射| 五月情婷婷| 好叼操在线观看| 婷婷五月天激情AV影院| 丁香六月在线综合| 色婷婷九月综合| 刘玥av在线| 99在线视频精品| 中文字幕按摩做爰| 五月丁香激情综合网官网| 99久久婷婷国产综合精品草原| 五月丁香色色网| 五月婷在线| av大香蕉| 91蜜桃婷婷狠狠久久综合9色| 人妻狠狠操| 97色婷| 五月婷色丁香| 五月天天丁香婷婷| 俺也去在线视频| 中文字幕天天干| 女人天堂AV| 99精品热视频| 九九在线视频| 日韩六十路91性交电影| 9|人妻人人操| 热99在线| 激情久久久久| 国产乱妇无乱码大黄AA片| 情欲综合网| 五月天婷婷丁香成人网| 五月六月伦理| 久久99久久99精品免观看粉嫩| 九九热自拍| 日本一级黄色电影| 五月综合激情婷婷六月色窝| 色噜噜在线| 综合网网欲色| 成人 在线 日韩| 色色网站观看| 婷婷五月丁香性爱| 亭亭色网| 亚洲综合新99视频| 99草在线免费观看视频| 午夜成人网站在线观看| 激情五月天在线观看色婷婷| 婷婷五月天99综合网站| 五月天成人综合| 99,色| 超碰免费人| 天天插天天干| 99爱免费在线观看| 五月婷婷9| 亚洲免费看片| 五月天激情无码高清| 五月婷婷婷| 99婷婷| 丁香五月香蕉| 婷婷在线观看五月天在线视频| 色色婷婷综合| 九九九九综合| 五月激情黄色小说| 亚洲精品影视| 色99久草在线| 99爱视频在线| 丁香五月六月婷婷怡红院| 五月激情综合网| 爱操天堂| 99在线观看精品视频| 色综合天天天天做夜夜| 日本va欧美va欧美va精品| 久婷婷久草| 亚洲中文乱字字幕在线永久| 99热官网精品在线| 这里只有精品热| 激情五月婷婷视频一区二区三区| 五月天综合网| 色婷婷9| www.99热. com这里只有精品| 色综合区| 一级无码作爱片| 人妻久久久| 丁香婷婷五月色成人网站| 欧美亚洲操逼| 久久五月天色婷婷| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 婷五月天在线草| 99干日本| 免费看片在线观看| 嫩BBB搡BBBB榛BBBB| 综合久久影院| 五月婷婷婷| 日日操日日射| 天天看片日日夜夜| 精品成人久久久久久久_一二三四视| 老司机视频lsj爱就色| 久久亚洲婷婷| 婷香五月| 噜噜色五月| 五月婷婷丁香网| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 日韩久久日| 婷婷五月色播天| 亚洲精品字幕在线观看| 人人爱国产| 99爽视频| 99热综合色图| 久久久久久人妻| 五月婷婷色激情| 五月婷婷丁香av| 狠狠999| 五月婷婷视频啪啪美女| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | www91久久| ...婷婷五月综合不卡,国产在线手机| 九月丁香婷婷基地| 中文字幕日本最新乱码视频| 色色热| 婷婷五月色天| 亚洲热视频| 色香欲综合| 热久久99热欧美国产亚洲| 婷婷五月天综合网| 久久性爱视频| 狠狠色色| 99热免费| 538在线精品| 成人无码精品1区2区3区免费看| 日本高清久久| 202丰满熟女妇大| 国产亚洲精品AAAAAAA片| 亚洲亚洲人成综合网络| 搡BBBB搡BBB搡18 | 人妻第九页| 97久久婷婷色| 综合久久8| 亚州综合色| 五月丁香久| 99久久九九| 婷婷综合激情五月中文字幕| 欧美色播综合在线观看| 久久人妻系列| 久久婷婷成人综合色怡春院| 丁香六月综合激情| 日本精品99| 丁香久久| 亚洲超碰中文字幕| 人妖色AV色综合| 91AV婷婷| 九九视频精品这里只有| 国产片色| 能看的AV| 性色五月天| 中文字幕 中文字幕明步| 玖玖@三月天天丁香婷婷| 色五月大香蕉婷婷| 亚州色婷婷| 中文无码精品一区二区三区| 丁香五月另类小说| 五月天丁香网站| 色婷婷丁香五月天| 欧美色必爱| 综合久久五月天| 免费色色色| 骚。com| 91狠狠色| 日韩黄色中文字幕| 另类激情码| 天天色一道本综合婷婷| 久久婷婷五月综合伊人| 亚洲最大在线| 国产午夜精品AV一区二区麻豆| 99在线爽| 激情丁香久久| 真实亲子乱子伦高清在线观看| 色婷婷久久综合| 欧美A级成人婬片免费看理论| 婷婷va| 综合xx网| 午夜丁香综合婷婷| http:色情日本com| 色婷婷国产精品综合在线观看| 丁香香五月激情免费视频| 五月婷婷基地| 五月激情综合网| 久久婷婷资源| 丁香成人综合| 欧美精产国品一二三区| 日本色色影片| 91操人视频| 亚洲第一第二网站| 99re在线播放| 欧美在线97| 天天操天天草天天草天天| 99re在线观看| 中文成人在线| 成人五月天在线视频在线观看 | 亚洲国产99| 九九中文字幕九| 天天狠狠插| 激情五月综合网最新| www91色网站| 开心亚洲久久开心| 日本色色图| 天堂久久大香蕉| 伊人婷婷五月| 99∨VTV| 91精品婷婷国产综合| 无码人妻一区二区三区免费九色| 婷婷丁香人妻天天爽| 日韩美女在线视频19| 99亚洲大片精品永久在线观看| 色婷婷基地| 婷婷五月天AV在线| 26uuu亚洲欧美日本| 情欲禁地| 只有精品在线观看| 久久九区| 大香蕉婷婷丁香| 婷婷性爱五月天| www99精品在线观看| 久久只有精品| 九九视频在线| 激情九月婷婷| 久热91精品| 丁香五月综合久久| 婷婷色爱| 亚洲精品第一国产综合亚AV | 亚洲色啪| 五月花综合| 97九色| 丁香色综合| 综合色影| 色婷婷综合亚洲| 久久99精品久久久久久三级| 色月丁| 五月婷婷免费在线视频| 97久久精品视频| www.色擼擼.com| 狠狠色色色| 婷婷丁香激情五月天色色| 色五月激情五月| 啪啪干伊人婷婷| 成人国产欧美大片一区| 丁香花五月天| 成人中文网| 婷婷丁香成人网址| 激情九月婷婷九月| 淫荡工a| 日韩AV免费| 天天干天天操天天拍| 丁香激情五月天| 天天干天天操天天爽| 色婷婷瘦婷婷日韩| 久久艹99| 丁香六月婷婷激情综合| 思思热在线观看| 99热6这里之有精品| 伊人激情AV一区二区三区| 婷婷激情五月天色| 久热精品免费视频4| 26uuu亚洲精品国产| 成人一区在线观看| 91婷色| 99久久免费性爱视频`| 婷婷五月天在线观看| 亚州日本欧州韩美高青高潮一| 99热99精品在线观看| 久久久精品色| 玖玖99免费视频| 久久婷婷亚洲| 欧美另类五月激情| 91丨人妻丨国产丨丝袜| 婷婷欧美综合| 99这里有精品免费| 亚洲综合色婷婷文学| 99精品无码| 色区久久| 乱乱av| 96丁香六月婷婷蜜桃综合久久| 五月天堂婷婷| 精品香蕉99久久久久网站| 五月天久久网站| 黄网免费看| 99国产精品久久久久久久久久久| 色亚洲欧洲| 五月丁香婷中文| 亚洲亚洲人成综合网络| 五月综合婷婷五月| 久草婷婷| 久久婷婷网址| 新97人人上人人| 欧美婷| 国产色网站| 亚洲精品白浆高清久久久久久| 激情VA视频| 99热99成人| 精品操逼一区二区| www.夜夜操.com| 99国产这里只有精品| 91丨九色丨国产打屁股| 五月天丁香婷婷视频网址| WWW.99视频| 99久久成人| 九色自拍| 欧美久久久中文字幕| 激情五月丁香五月| 天天综合网网欲色| 色狠狠狠干| 冬月かえでAV无码播放| 婷婷综合视频| 色播五月综合网| 色狠狠综合网| 中文无码婷婷| wwww.9免费视频| 成人精品在线观看| 六月婷婷色色色| 青青草日本亚洲| 色 免费网站视频| www.99久久久久99| 操操操97| 99视频这里有精品| 色婷婷五月天| 天天射综合网夜夜操| 久久亚洲A| 超碰93在线观看| 一级内射毛片| 亚洲精品久久久无码| 五月丁香婷婷综合网| 久久久性爱视频| 六月婷婷影院| 99re这里只有精品国产99| 成人婷婷| 日韩情色在线观看| 九七色色六月丁香| 99在线精品观看99| 激情性爱五月天| 停婷丁五月在线| 99r这里| www 五月天 com| 伊人青草成人| 91超级碰碰碰| 丁香婷婷九月| 性爱人人网| 1024你懂的欧美曰韩| 久婷婷视平| 成人国产欧美大片一区| 九九碰九九爱97超碰| 色色射| 婷婷六月色开| 婷婷五月综合网| 五月天激情啪啪| 婷婷五月天国产| 亚洲成人婷婷| 九九这里都是精品| 这里只有精彩视| 五月花亭亭| 婷婷五月天熟妇| 天天干天天干天天干天天干天天干天天 | 人妻激情综合| 五月婷婷中文字幕| 99噜噜| 亚洲成人AV在线播放| 狠狠第四色| 欧美 日韩 成人 在线| 五月丁香好婷婷A片网| 丁香六月婷婷久久高清| 久久看婷婷| 超碰激情网| av九九| 亭亭丁香久久五月| 色婷婷婷综合五月天| 亚洲婷婷丁香五月亚洲| 手机激情网| 天天做天天爱天天玩夜夜爽 | 玖玖爱伊人| 久久色情| 97色婷| WWW.久久.COM| 日操夜操天天操不卡| 狠狠色狠狠色综合日日91| 婷婷五月丁香色播| 婷婷九月亚洲| 亚洲综人色综网| 欧美综合激情五月丁香| 五月天四色房丁香| 五月丁香在线婷婷美女| 中文AV网| 99操碰| 在线理论片| 1024在线观看免费视频| 婷婷色操| 97人人干| 天天干天天干天天干天天干天天干天天| 思思热在线视频99| 国产精品VA在线| 激情五月天视频| 无码人妻精品一区二区蜜桃色欲| 丁香花社区av| av无码电影| 99re这里只有精品9| 婷婷激情五月综合基地| 99热99热在线| 婷婷亚洲色| 99热网精品| 激情五月婷婷视频一区二区三区| 91九色国产| 久久婷婷热| 变态另类9| 色婷婷在线视频| 久久无意婷婷| 久久五月丁香婷婷| 综合五月亭亭9| 色色亚洲视频| 九九精品免费| 蜜臀综合久草| 丁香五月中文字幕| 五月丁香花伦理电影| 青草五月天| 噜噜噜久久| 草久私拍| 狠狠色婷婷在线| 丁香婷婷色| 激情五月久久| 毛片九九九九九九| 欧美丁香婷婷天天操| 五月色天情| 色日本五月天| 国产亚洲99久久精品熟女| 9色在线| 另类综合婷婷五月天欧美视频| 五月丁香久久综合| 亚洲综合色婷婷文学| 任你艹| 99视频久久| 欧美丰满熟妇BBB久久久| 四月婷婷五月丁香| 伊人超碰| 99热欧美| 五月婷九九草| 激情婷婷综合| 久久激情五月婷婷| 婷婷成人av| 精品国产人人爱人人| 伊人网啪啪| 九色成人AV在线| 久久五月天精品视频| 殴美综合激情五月天免费视频| 久久人妻熟女一区二区| 99久久精品色老| 色色COm| 曰韩少妇内射免费播放| 久久久99视频| 五月天.com| 丁香六月丁香婷婷激情| 性色播| 色婷婷操逼| 婷婷丁香社区| 五月婷久久在线| 伊人激情| 99啪啪| 99热播放| 欧美操逼天堂| 色久五月天| 亚洲av| 婷婷舔| 五月婷婷激情综合| 五月激情综合网| 色欲影香| 六月丁香狠狠爱| 激情文学五月丁香六月婷婷| 又大又粗九一在线| 婷婷五月丁香高清无码| 久久久人妻| 99色视频| 五月丁香激情啪啪| 日本一级特黄大片AAAAA级| 久久538| 99热全是精品| 五月激情婷婷丁香天堂| 五月婷婷综合天天操| 99久久er| 热99视频精品在线| 热的无码综合视频| 丰满少妇猛烈A片免费看观看| 婷婷的五月天另类视频| www.激情| 九九这里有精品视频| 99热最新| 婷婷成人综合免费视频| 六月丁香婷| 26uuu国自产精品| 中文字幕在线免费观看视频| 婷婷丁香五月天哟啪| 婷婷五月在线观看| 干亚洲天堂| 欧美成人AAA片一区国产精品| 婷婷丁香激情五月| 黄色av网站在线免费播放| 99热精品在线播放|