99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

Kubernetes Pod 重啟排查全流程:狀態(tài)、事件、日志與根因定位

Kubernetes Pod 重啟排查全流程:狀態(tài)、事件、日志與根因定位 搞 Kubernetes 的誰(shuí)還沒(méi)被 Pod 重啟折磨過(guò)尤其是在線(xiàn)上環(huán)境上一小時(shí)告警還風(fēng)平浪靜下一秒突然彈出通知Pod 頻繁重啟、服務(wù)間歇性不可用甚至直接 CrashLoopBackOff。十次有八次大家第一反應(yīng)是趕緊看日志結(jié)果日志一片正常越查越懵最后只能重啟大法把 Pod 刪了讓 Deployment 重新拉一個(gè)看似好了但過(guò)幾個(gè)小時(shí)又復(fù)發(fā)。以我排查過(guò)幾十個(gè) Pod 重啟問(wèn)題的經(jīng)驗(yàn)來(lái)看這類(lèi)問(wèn)題真正難的地方不是“查不到”而是“查的先后順序不對(duì)”。狀態(tài)、事件、日志、節(jié)點(diǎn)這四層信息必須按順序看順序一亂很容易被表象帶偏。這篇文章就把我平時(shí)排查 POD 重啟問(wèn)題的一套完整流程拆開(kāi)講清楚包括怎么看狀態(tài)、怎么讀事件、什么時(shí)候才輪到日志以及最常見(jiàn)的幾個(gè)根因和那些容易誤判的干擾項(xiàng)。不管你是剛?cè)腴T(mén) Kubernetes 的運(yùn)維還是天天跟 Deployment、ConfigMap、探針打交道的開(kāi)發(fā)這套思路應(yīng)該都能幫你少走不少?gòu)澛贰?. 先從現(xiàn)象說(shuō)起Pod 重啟并不都是 CrashLoopBackOff很多人一看到 Pod 重啟腦子里自動(dòng)就蹦出“CrashLoopBackOff”這個(gè)詞但實(shí)際上“重啟”這兩個(gè)字在 Kubernetes 里對(duì)應(yīng)著好幾種完全不同的現(xiàn)象每種現(xiàn)象的排查入口完全不一樣。如果連現(xiàn)象都沒(méi)分清楚就開(kāi)始查日志大概率會(huì)被帶進(jìn)死胡同。1.1 Pod “重啟”的三個(gè)層面先別混為一談第一層是容器內(nèi)進(jìn)程退出后被殺掉重啟。這個(gè)層面下Pod 本身沒(méi)有消失Running 狀態(tài)還在但容器里的主進(jìn)程曾經(jīng)退出過(guò)Kubelet 按照重啟策略把它重新拉起來(lái)了。表現(xiàn)是RESTARTS這個(gè)字段在漲但 Pod 的名字、UID 都沒(méi)變。第二層是 Pod 被刪除后重建。這種情況常見(jiàn)于 Deployment 滾動(dòng)更新、節(jié)點(diǎn)故障、Pod 被驅(qū)逐Evicted。表現(xiàn)是 Pod 的名字變了比如帶了一串-xxxxx的 hash 后綴或者 AGE 突然變成幾秒鐘。這其實(shí)不是“容器重啟”而是“整個(gè) Pod 生命周期重建”。第三層是節(jié)點(diǎn)重啟導(dǎo)致所有 Pod 重新調(diào)度。節(jié)點(diǎn)宕機(jī)、系統(tǒng)維護(hù)、硬件故障等情況上面所有 Pod 都會(huì)被迫遷移到其他節(jié)點(diǎn)甚至直接失聯(lián)后重建。這時(shí)候你會(huì)看到一批 Pod 的 AGE 幾乎在同一時(shí)間重置而且分布在不同節(jié)點(diǎn)上。這三層我習(xí)慣用一個(gè)生活類(lèi)比來(lái)理解容器重啟等于餐廳廚房里某個(gè)廚師干得好好的突然被換掉餐廳本身還在營(yíng)業(yè)Pod 重建等于整個(gè)店重新裝修了桌子和菜單全部換新節(jié)點(diǎn)重啟等于整棟樓斷電里面所有店鋪都得重新開(kāi)張。排查入口完全不同所以開(kāi)工第一步一定是先確認(rèn)“你遇到的到底是哪一層”。實(shí)際操作中用一條kubectl get pods -n namespace -o wide就能看出不少信息如果 Pod NAME 后綴變了說(shuō)明 Pod 被重建過(guò)如果 NAME 沒(méi)變但 RESTARTS 在漲說(shuō)明是容器反復(fù)重啟再配合 NODE 字段和 AGE節(jié)點(diǎn)層面的干擾也有跡可循。1.2 STATUS 和 RESTARTS 里藏著最直接的線(xiàn)索kubectl get pods的結(jié)果里有幾個(gè)字段非常容易被忽略但其實(shí)信息量很大。STATUS 是你最先應(yīng)該看的它告訴你 Pod 處于什么階段RESTARTS 告訴你當(dāng)前容器重啟了多少次AGE 告訴你這個(gè) Pod 已經(jīng)存活了多久。這里有個(gè)很關(guān)鍵的細(xì)節(jié)如果 Pod 曾經(jīng)被刪除重建RESTARTS 會(huì)歸零因?yàn)樾碌?Pod 里容器是全新啟動(dòng)的。所以你如果看到一個(gè) Pod 的 AGE 只有幾分鐘但 RESTARTS 顯示 10 次說(shuō)明這個(gè) Pod 很穩(wěn)定地“活著”但沒(méi)有“活得健康”容器一直在被殺又重啟卻沒(méi)觸發(fā) Pod 重建——這種通常和探針有關(guān)。反過(guò)來(lái)如果看到一批 Pod 的 AGE 都只有幾秒RESTARTS 也是 0那大概率是 Deployment 滾動(dòng)更新或者節(jié)點(diǎn)故障觸發(fā)了整體重建根本不是“某個(gè)應(yīng)用崩了”而是上層動(dòng)作導(dǎo)致的。STATUS 的值也分好幾種CrashLoopBackOff表示容器啟動(dòng)后反復(fù)退出Kubelet 用了指數(shù)退避策略重啟間隔會(huì)越來(lái)越長(zhǎng)Running表示容器正在運(yùn)行但如果 RESTARTS 一直在漲說(shuō)明有探針在殺它Error通常是容器執(zhí)行完但退出時(shí)出錯(cuò)Completed是正常執(zhí)行完就退出常用于一次性任務(wù)Evicted則是被節(jié)點(diǎn)驅(qū)逐這個(gè)后面會(huì)專(zhuān)門(mén)說(shuō)。先把這個(gè)表格刻在腦子里看到什么狀態(tài)就知道往哪個(gè)方向查。STATUS含義優(yōu)先排查方向CrashLoopBackOff容器反復(fù)啟動(dòng)即退出退避重啟退出碼、啟動(dòng)命令、配置掛載Running RESTARTS 漲容器活著但被健康檢查殺掉Liveness/Readiness 探針配置OOMKilled容器內(nèi)存超過(guò) limits 被內(nèi)核殺死內(nèi)存配額、應(yīng)用內(nèi)存占用EvictedPod 被節(jié)點(diǎn)驅(qū)逐節(jié)點(diǎn)磁盤(pán)/內(nèi)存壓力Error容器異常退出退出碼、應(yīng)用日志Completed正常退出一次性任務(wù)一般無(wú)需處理2. 排查第一件事先分清是誰(shuí)在重啟當(dāng)你確定 “Pod 確實(shí)在重啟” 之后第一件事不是抓日志而是用kubectl describe看清楚這輪重啟的“案發(fā)現(xiàn)場(chǎng)”。我會(huì)把這步叫作“看尸檢報(bào)告”因?yàn)槿萜鞅恢貑⒑笊弦惠嗊M(jìn)程的狀態(tài)、退出時(shí)間、退出碼、被誰(shuí)殺掉的這些都記錄在 Pod 的狀態(tài)里不先看這些就直接翻日志等于跳過(guò)報(bào)告去猜死因非常容易漏掉關(guān)鍵信息。2.1 用 kubectl describe pod 讀重啟的“尸檢報(bào)告”kubectl describe pod pod-name -n namespace輸出的內(nèi)容很長(zhǎng)但核心就幾個(gè)區(qū)域。最上面是 Pod 基本信息包括 Node、IP、QoS 等級(jí)中間的 Conditions 反映 Ready、PodScheduled、Initialized 等狀態(tài)再往下是容器列表每個(gè)容器下面有 State、Last State、Exit Code、Reason 和 Started/Finished 時(shí)間最后是滾動(dòng)的 Events 時(shí)間線(xiàn)。我重點(diǎn)看的是 Last State 那一塊。Last State 里會(huì)記錄上一個(gè)容器的終止時(shí)間和退出碼如果顯示 TerminatedReason 是 Completed 還是 ErrorExit Code 是多少這決定了排查方向。舉個(gè)例子如果 Exit Code 是 0說(shuō)明上一個(gè)進(jìn)程是被“正常結(jié)束”的通常意味著有人刪 Pod、滾動(dòng)更新觸發(fā)優(yōu)雅終止或者探針之外的機(jī)制主動(dòng)殺了它如果 Exit Code 是 137對(duì)應(yīng) 128 9也就是 SIGKILL這往往是被 OOM Killer 或者外部 kill 命令強(qiáng)殺的如果是 143對(duì)應(yīng) 128 15也就是 SIGTERM通常是收到了優(yōu)雅終止信號(hào)但沒(méi)處理完如果是 1、2 這種就是應(yīng)用自身啟動(dòng)失敗或運(yùn)行錯(cuò)誤。這里面的坑是137 并不完全等同于內(nèi)存超限。Kubelet 主動(dòng)殺掉容器時(shí)Exit Code 也可能被標(biāo)記為 137尤其是探針失敗、節(jié)點(diǎn)驅(qū)逐、手動(dòng)刪除容器這些場(chǎng)景也會(huì)走 SIGKILL。所以看到 137 先別急著下“肯定是 OOM”的結(jié)論得繼續(xù)看 Reason 字段。如果 Reason 寫(xiě)的是 OOMKilled那才是內(nèi)存原因如果 Reason 是 ContainerCannotRun 或者空那就要再往 Events 里找。2.2 一份退出碼速查表排查時(shí)對(duì)照著看我整理過(guò)一份簡(jiǎn)化版的退出碼速查表排查時(shí)貼在終端旁邊非常實(shí)用Exit Code含義常見(jiàn)場(chǎng)景0正常退出任務(wù)執(zhí)行完、主動(dòng)退出、優(yōu)雅終止1通用應(yīng)用錯(cuò)誤啟動(dòng)失敗、配置錯(cuò)誤、運(yùn)行時(shí)異常2參數(shù)/環(huán)境錯(cuò)誤啟動(dòng)腳本參數(shù)不對(duì)、依賴(lài)缺失126命令不可執(zhí)行權(quán)限問(wèn)題、或動(dòng)態(tài)鏈接庫(kù)缺失127命令不存在entrypoint/command 寫(xiě)錯(cuò)、鏡像缺少命令137SIGKILL內(nèi)存 OOM、被強(qiáng)殺、節(jié)點(diǎn)壓力143SIGTERM優(yōu)雅終止超時(shí)后被 SIGKILL 跟進(jìn)有一次我排查一個(gè) Java 應(yīng)用頻繁重啟describe 里顯示 Exit Code 是 137Reason 是 OOMKilled但看應(yīng)用日志根本沒(méi)打印任何 JVM 內(nèi)存溢出異常。后來(lái)才發(fā)現(xiàn)OOM 發(fā)生在容器總內(nèi)存層面應(yīng)用層根本來(lái)不及報(bào)錯(cuò)內(nèi)核直接把進(jìn)程殺了。這類(lèi)問(wèn)題如果只查日志永遠(yuǎn)找不到原因必須結(jié)合 describe 和節(jié)點(diǎn)層的內(nèi)存監(jiān)控一起看。2.3 一個(gè)很常見(jiàn)的誤判RESTARTS 高但 STATUS 是 Running很多新手看到 STATUS 是 Running 就覺(jué)得“沒(méi)問(wèn)題”實(shí)際上這是最容易被坑的場(chǎng)景之一。如果容器狀態(tài)是 Running但 RESTARTS 一直在漲最常見(jiàn)的原因是 Liveness 探針失敗——Kubelet 判斷容器不健康殺掉了它然后又按策略拉起來(lái)。這時(shí)候日志往往非?!罢!币?yàn)閼?yīng)用啟動(dòng)后確實(shí)能跑只是探針訪(fǎng)問(wèn)的端口或路徑在特定時(shí)刻響應(yīng)超時(shí)觸發(fā)了 kill。所以我的排查習(xí)慣是先看 STATUS 能排除掉很多方向再看 RESTARTS 的漲勢(shì)判斷是持續(xù)還是偶爾然后立刻kubectl describe看 Last State 和 Reason。如果這些都看完還不能定位才考慮日志。這個(gè)順序能幫你過(guò)濾掉至少一半的無(wú)效信息。3. 三個(gè)最常見(jiàn)的重啟根因與定位方法根據(jù)我這些年的經(jīng)驗(yàn)線(xiàn)上 Pod 重啟 80% 以上逃不出這三個(gè)方向健康檢查探針配置不合理、內(nèi)存資源限制導(dǎo)致 OOM、配置或鏡像問(wèn)題導(dǎo)致啟動(dòng)即退出。每一個(gè)都有比較典型的特征掌握一套對(duì)應(yīng)的定位方法排查效率能提升一大截。3.1 Liveness 探針配置不當(dāng)容器“死于”健康檢查這是我見(jiàn)過(guò)最多的一個(gè)坑也是最“玄學(xué)”的一類(lèi)問(wèn)題。容器明明進(jìn)程還在、端口也在監(jiān)聽(tīng)但 Kubelet 通過(guò) Liveness 探針檢查時(shí)發(fā)現(xiàn)不健康于是按照策略把容器殺了重啟。表現(xiàn)非常典型STATUS 是 RunningRESTARTS 持續(xù)上漲describe 里能看到 “Liveness probe failed” 和 “Killing container” 的事件但應(yīng)用側(cè)日志往往沒(méi)有致命報(bào)錯(cuò)。Liveness 探針有幾個(gè)參數(shù)會(huì)直接影響重啟行為initialDelaySeconds是容器啟動(dòng)后等待多久才開(kāi)始探測(cè)設(shè)短了會(huì)導(dǎo)致應(yīng)用還沒(méi)完全初始化就被探針判定失敗periodSeconds是探測(cè)頻率默認(rèn) 10 秒太頻繁會(huì)放大瞬時(shí)波動(dòng)timeoutSeconds是單次探測(cè)的超時(shí)時(shí)間默認(rèn)只有 1 秒這個(gè)非常容易踩雷——很多應(yīng)用的 HTTP 接口在 GC 停頓、慢查詢(xún)或瞬時(shí)高負(fù)載時(shí)響應(yīng)時(shí)間超過(guò) 1 秒很正常但探針等不了直接就失敗failureThreshold是連續(xù)失敗多少次才觸發(fā)重啟默認(rèn) 3 次。我踩過(guò)最慘的一次是一個(gè) Java 服務(wù)啟動(dòng)需要大概 40 秒但 YAML 里initialDelaySeconds配的是 10periodSeconds是 10failureThreshold是 3。等于說(shuō)應(yīng)用還在啟動(dòng)階段探針已經(jīng)開(kāi)始探測(cè)三次失敗后 Kubelet 直接殺容器重啟然后又是 40 秒啟動(dòng)又是 30 秒后被探針殺掉形成了一個(gè)永遠(yuǎn)起不來(lái)的循環(huán)。表面上看是 CrashLoopBackOff實(shí)際根因就是探針配置和實(shí)際啟動(dòng)時(shí)間不匹配。解決辦法很簡(jiǎn)單把initialDelaySeconds調(diào)大到 60讓?xiě)?yīng)用先完成啟動(dòng)再開(kāi)始健康檢查。這里要特別強(qiáng)調(diào)一個(gè)概念Readiness 探針和 Liveness 探針職責(zé)不同。Readiness 失敗只代表“這個(gè)容器暫時(shí)不能接收流量”Kubelet 會(huì)把它的 Endpoint 摘掉不會(huì)殺容器只有 Liveness 失敗才會(huì)觸發(fā)重啟。很多團(tuán)隊(duì)圖省事把 Readiness 和 Liveness 配成一模一樣結(jié)果一個(gè)接口偶發(fā)慢查詢(xún)集群里一堆副本進(jìn)入 NotReady 狀態(tài)甚至容器反復(fù)重啟流量反復(fù)轉(zhuǎn)移。如果你遇到 Pod “又重啟又看起來(lái)正?!钡那闆r先搞清楚到底是哪個(gè)探針在報(bào)錯(cuò)describe 的 Events 里會(huì)明確寫(xiě)。3.2 資源限制導(dǎo)致 OOMKilled進(jìn)程“安靜的”消失了容器重啟的第二個(gè)高頻根因是內(nèi)存超限。每個(gè)容器可以設(shè)置requests和limits其中 limits 是硬上限一旦容器內(nèi)存用量超過(guò)這個(gè)值內(nèi)核 OOM Killer 就會(huì)介入直接發(fā)送 SIGKILL 殺掉容器里最耗內(nèi)存的進(jìn)程。表現(xiàn)是 Pod STATUS 一度是 OOMKilled然后被 Kubelet 重啟RESTARTS 加一一段時(shí)間后又重復(fù)。describe 里會(huì)看到 Reason: OOMKilledExit Code: 137。定位 OOM 問(wèn)題有個(gè)很關(guān)鍵的坑容器被殺的時(shí)候應(yīng)用本身可能根本來(lái)不及打印任何錯(cuò)誤日志所以你在kubectl logs里看不到“OutOfMemory”之類(lèi)的字樣。正確做法是看kubectl describe的 Reason以及節(jié)點(diǎn)層面的dmesg輸出里面會(huì)出現(xiàn)oom-killer和對(duì)應(yīng)的進(jìn)程 PID。另外監(jiān)控曲線(xiàn)非常重要要看容器內(nèi)存是緩慢爬坡最終觸頂還是瞬間突刺。緩慢爬坡大概率是內(nèi)存泄漏瞬間突刺往往是業(yè)務(wù)高峰或某個(gè)大請(qǐng)求導(dǎo)致的那就需要從應(yīng)用層去限流或優(yōu)化。JVM 應(yīng)用是 OOM 重災(zāi)區(qū)中的重災(zāi)區(qū)。很多團(tuán)隊(duì)把容器 limits 設(shè)成 4Gi但在 JVM 啟動(dòng)參數(shù)里把堆設(shè)成-Xmx3g看著好像沒(méi)問(wèn)題實(shí)際上 JVM 除了堆還有元空間、線(xiàn)程棧、JIT 編譯緩存、堆外內(nèi)存等一大堆開(kāi)銷(xiāo)加起來(lái)輕松超過(guò) 4Gi。換句話(huà)說(shuō)容器 limits 不足堆還沒(méi)到上限整個(gè)容器先被殺了。經(jīng)驗(yàn)做法是-Xmx不要超過(guò)容器 limits 的 60%—70%預(yù)留出堆外和系統(tǒng)層面的緩沖。這個(gè)問(wèn)題如果不用 describe 和內(nèi)存監(jiān)控一起看很容易誤判成“Java 進(jìn)程崩了”實(shí)際上容器層面先你一步動(dòng)了手。3.3 配置或鏡像問(wèn)題導(dǎo)致進(jìn)程啟動(dòng)即退出CrashLoopBackOff 的老熟人第三種常見(jiàn)根因就是容器啟動(dòng)起來(lái)之后立刻崩潰導(dǎo)致 Kubelet 反復(fù)拉起進(jìn)入 CrashLoopBackOff。這種問(wèn)題的特征最明顯STATUS 直接是 CrashLoopBackOff退出碼往往非 0。但“啟動(dòng)即退出”的誘因很多我把它拆成幾類(lèi)逐步排查。第一類(lèi)是啟動(dòng)命令或入口配置錯(cuò)誤。Deployment 里command和args寫(xiě)錯(cuò)比如指向了一個(gè)不存在的文件鏡像沒(méi)有那個(gè)二進(jìn)制就會(huì)報(bào) Exit Code 127command not found如果二進(jìn)制存在但沒(méi)有執(zhí)行權(quán)限Exit Code 是 126。這類(lèi)問(wèn)題查起來(lái)最直接kubectl logs看一下就會(huì)看到 “exec: ...: not found” 或者權(quán)限錯(cuò)誤。第二類(lèi)是 ConfigMap 掛載問(wèn)題。Deployment 通過(guò) volume 掛載 ConfigMap 時(shí)如果 key 不存在、路徑寫(xiě)錯(cuò)了、或者掛載的配置文件名和應(yīng)用預(yù)期不一致應(yīng)用啟動(dòng)時(shí)找不到配置文件就直接退出。這類(lèi)問(wèn)題的坑在于它可能不是每次都會(huì)失敗因?yàn)槟承?yīng)用會(huì)根據(jù)環(huán)境變量或默認(rèn)值兜底只在特定條件下才讀某個(gè) key。我遇到過(guò)一個(gè)典型場(chǎng)景項(xiàng)目里把一個(gè) ConfigMap 的 key 從APP_CONF改成了app.confDeployment 里的掛載路徑也改了但新版本鏡像里的啟動(dòng)腳本讀的還是舊路徑線(xiàn)上直接 CrashLoopBackOffdescribe 里只看到MountVolume.SetUp failed的 events應(yīng)用日志基本為空或者只有一行 “file not found”。第三類(lèi)是啟動(dòng)腳本依賴(lài)外部依賴(lài)。比如應(yīng)用啟動(dòng)時(shí)要連接數(shù)據(jù)庫(kù)、Redis、或者注冊(cè)中心如果這些依賴(lài)沒(méi)就緒或者地址配錯(cuò)應(yīng)用會(huì)連接失敗后直接退出。這種在微服務(wù)架構(gòu)里特別常見(jiàn)癥狀和“代碼有問(wèn)題”非常像。排查時(shí)先看啟動(dòng)日志里的報(bào)錯(cuò)信息是connect refused還是unknown host前者查網(wǎng)絡(luò)和端口后者查 DNS 解析和 Service 配置。這里也順帶提醒一句不要一看到 CrashLoopBackOff 就懷疑代碼質(zhì)量先檢查配置聲明、環(huán)境變量、掛載卷再往深處挖。4. 從事件到日志一層層剝開(kāi)真相當(dāng)狀態(tài)、事件都看完了還沒(méi)有鎖定根因下一步才是日志。但日志的打開(kāi)方式也有講究很多人一頭扎進(jìn)kubectl logs猛翻結(jié)果看到的是重啟之后的“新”進(jìn)程日志上一輪進(jìn)程退出前寫(xiě)的“遺言”根本沒(méi)看見(jiàn)。4.1 kubectl logs --previous 才能看到上一輪的“遺言”在容器被重啟之后kubectl logs默認(rèn)顯示的是當(dāng)前容器進(jìn)程的輸出。如果當(dāng)前進(jìn)程又活了但上一輪是崩潰退出的你真正需要的是上一個(gè)進(jìn)程留下的日志。這時(shí)候必須加--previous參數(shù)kubectl logs pod-name -n namespace --previous --tail50這個(gè)命令會(huì)返回上一次容器實(shí)例的日志也就是崩潰前打印的最后 50 行。很多 CrashLoopBackOff 的真相就藏在這幾十行里。比如啟動(dòng)腳本報(bào)Caused by: java.lang.IllegalArgumentException: ...或者 Python 直接 traceback一目了然。有個(gè)需要注意的細(xì)節(jié)如果容器狀態(tài)已經(jīng)是 CrashLoopBackOffKubelet 會(huì)按退避策略等待一段時(shí)間才重啟下一次但--previous日志只在容器被重建之前有效。如果 Pod 已經(jīng)被刪除重建歷史容器日志就沒(méi)了。所以要趁重啟間隙趕緊抓或者用-f持續(xù)跟蹤當(dāng)前日志等到下一次崩潰瞬間的尾部輸出。我自己還會(huì)把日志推到 stdout 的同時(shí)寫(xiě)到本地文件萬(wàn)一崩潰太頻繁至少本地文件能留底。4.2 kubectl get events 是重建時(shí)間線(xiàn)的最好工具事件Events是 Kubernetes 的審計(jì)日志記錄了 Pod 生命周期里的每一個(gè)關(guān)鍵動(dòng)作。排查重啟問(wèn)題時(shí)我會(huì)把 Events 按時(shí)間排好序看一遍基本能把“誰(shuí)在什么時(shí)候干了什么”還原出來(lái)kubectl get events -n namespace --sort-by.lastTimestamp如果 Pod 很多可以加--field-selector只看目標(biāo) Podkubectl get events -n namespace --field-selector involvedObject.namepod-name --sort-by.lastTimestampEvents 里最有價(jià)值的幾類(lèi)信息Scheduled說(shuō)明 Pod 被調(diào)度到哪個(gè)節(jié)點(diǎn)Created/Started是容器創(chuàng)建的節(jié)點(diǎn)Killing或者Unhealthy往往是觸發(fā)重啟的直接原因Evicted則說(shuō)明是節(jié)點(diǎn)壓力導(dǎo)致驅(qū)逐。有一次我排查一個(gè) Pod 頻繁重啟應(yīng)用日志干凈得不行但 Events 里反復(fù)出現(xiàn)Liveness probe failed: HTTP probe failed with statuscode: 500緊接著又是Killing container。這一下就把嫌疑集中到了探針和它后面的應(yīng)用路徑上再往應(yīng)用層查探針接口為什么偶發(fā) 500就順理成章了。我在團(tuán)隊(duì)里常說(shuō)一句話(huà)Events 是案發(fā)現(xiàn)場(chǎng)的監(jiān)控錄像日志只是兇手臨走前留下的字條。先看錄像再讀字條順序不要反。很多人在kubectl logs里耗兩小時(shí)回頭一看 Events 里早就寫(xiě)得明明白白。4.3 別忽略節(jié)點(diǎn)層面kubelet 日志和節(jié)點(diǎn)健康狀況如果是節(jié)點(diǎn)層面的問(wèn)題比如 kubelet 崩潰、磁盤(pán)滿(mǎn)了、節(jié)點(diǎn)內(nèi)存不足光看 Pod 內(nèi)部的信息是看不出來(lái)的。這時(shí)候需要把視野從 Pod 提升到 Node 層。一條比較有用的命令是journalctl -u kubelet -n 200 --no-pagerkubelet 日志里能看到它對(duì)某個(gè)容器的SyncLoop判斷、探針失敗記錄、驅(qū)逐決策等信息。節(jié)點(diǎn)磁盤(pán)滿(mǎn)會(huì)導(dǎo)致鏡像拉取失敗、容器日志寫(xiě)不進(jìn)去甚至觸發(fā) Pod 驅(qū)逐節(jié)點(diǎn)內(nèi)存壓力觸發(fā)系統(tǒng) OOM 或者 Eviction Manager 介入Pod 會(huì)被標(biāo)記為Evicted。這些在 Pod 的 Events 里能看到但根因在節(jié)點(diǎn)上不結(jié)合起來(lái)看就容易誤判成應(yīng)用問(wèn)題。另外DNS 和網(wǎng)絡(luò)配置也經(jīng)常背鍋。有些應(yīng)用啟動(dòng)時(shí)需要解析外部的服務(wù)域名如果節(jié)點(diǎn)上的 DNS 配置有問(wèn)題Pod 里解析一直失敗應(yīng)用就反復(fù)啟動(dòng)退出。這種問(wèn)題我們?cè)?K8s 里排查時(shí)也可以借鑒一個(gè)思路系統(tǒng)層面“重啟能恢復(fù)”的怪毛病往往和某個(gè)服務(wù)狀態(tài)異常有關(guān)比如 DNS 緩存、網(wǎng)絡(luò)棧狀態(tài)先在事件里把時(shí)間點(diǎn)對(duì)齊再判斷到底是哪一層出了問(wèn)題。4.4 實(shí)操?gòu)?fù)盤(pán)一次 Java 服務(wù)頻繁重啟的完整排查說(shuō)一個(gè)我印象很深的實(shí)際案例。當(dāng)時(shí)線(xiàn)上有個(gè) Java 服務(wù)告警顯示 Pod RESTARTS 每隔 10 分鐘左右漲一次STATUS 一直是 Running。團(tuán)隊(duì)里有人說(shuō)“狀態(tài)正??赡苁钦`報(bào)”但我看 RESTARTS 在漲就知道肯定有東西在殺容器。我執(zhí)行的第一條命令是kubectl describe pod看到 Last State 顯示 Exit Code 137但 Reason 并不是 OOMKilled而是空。這說(shuō)明不是內(nèi)存問(wèn)題那就有可能是探針失敗后 Kubelet 主動(dòng) SIGKILL。然后我用kubectl get events --sort-by.lastTimestamp看了一下時(shí)間線(xiàn)里面清楚地寫(xiě)著Unhealthy和Liveness probe failed: HTTP probe failed with statuscode: 500。再往前幾條 Events是/healthz返回 500 后探針連續(xù)失敗。接下來(lái)我沒(méi)有繼續(xù)翻業(yè)務(wù)日志而是先看探針配置timeoutSeconds默認(rèn)是 1 秒但服務(wù)的/healthz接口在 GC 發(fā)生時(shí)會(huì)偶爾慢過(guò) 1 秒。FS 小哥也確認(rèn)服務(wù)堆內(nèi)存較大Full GC 時(shí)停頓能達(dá)到好幾秒。于是我把探針的timeoutSeconds調(diào)到了 5periodSeconds保持 10 秒同時(shí)讓?xiě)?yīng)用團(tuán)隊(duì)優(yōu)化 GC 參數(shù)問(wèn)題很快就不再出現(xiàn)。四步定位先看狀態(tài)排掉分支再看 describe 鎖定退出碼再用 Events 找到直接觸發(fā)原因最后結(jié)合探針配置和應(yīng)用行為制定修復(fù)方案。全程沒(méi)靠猜這就是順序的力量。5. 還要小心“看似 Pod 重啟”的干擾項(xiàng)排查 Pod 重啟問(wèn)題最怕的不是根因復(fù)雜而是被干擾項(xiàng)帶偏方向。有幾種情況和“Pod 重啟”非常像但實(shí)際上完全是另一碼事。如果在第一步?jīng)]識(shí)別出來(lái)后面所有精力都白費(fèi)。5.1 節(jié)點(diǎn)重啟導(dǎo)致一批 Pod 同時(shí)“重啟”節(jié)點(diǎn)宕機(jī)、系統(tǒng)升級(jí)、硬件被重啟會(huì)導(dǎo)致節(jié)點(diǎn)上的所有 Pod 突然消失隨后重新調(diào)度到其他節(jié)點(diǎn)甚至同一個(gè)節(jié)點(diǎn)重啟回來(lái)。這種時(shí)候你在kubectl get pods里看到一堆 Pod 的 AGE 都?xì)w零RESTARTS 也可能歸零第一反應(yīng)可能是“某個(gè)應(yīng)用掛了”實(shí)際上你看到的是一整批 Pod 被重建。怎么判斷先看kubectl get nodes里節(jié)點(diǎn)的 AGE 和 CONDITIONS。如果節(jié)點(diǎn) Uptime 只有幾分鐘再看 kubelet 的啟動(dòng)時(shí)間基本能確認(rèn)是不是節(jié)點(diǎn)層重啟。另外看 Pod 是不是分布在同一個(gè)節(jié)點(diǎn)上特別關(guān)鍵。如果重啟的 Pod 集中在同一個(gè) Node 上那問(wèn)題大概率不在應(yīng)用而在節(jié)點(diǎn)生命周期。這就像 Windows 系統(tǒng)重啟后開(kāi)機(jī)黑屏、拔掉網(wǎng)線(xiàn)就正常的那種“硬故障”你得先查系統(tǒng)底層和驅(qū)動(dòng)而不是在應(yīng)用層摳日志。5.2 Evicted 和搶占Pod 被驅(qū)逐而非崩潰節(jié)點(diǎn)有磁盤(pán)壓力、內(nèi)存壓力、PID 壓力時(shí)kubelet 會(huì)執(zhí)行驅(qū)逐策略把一部分 Pod 標(biāo)記為Evicted隨后刪除。被驅(qū)逐的 Pod 通常不是“崩潰”了而是“被請(qǐng)走”了。它們的 STATUS 會(huì)顯示Evicteddescribe 里能看到類(lèi)似node.kubernetes.io/disk-pressure的污點(diǎn)和事件。這種情況如果你只盯著應(yīng)用日志會(huì)發(fā)現(xiàn)什么異常都沒(méi)有因?yàn)閼?yīng)用可能是被 SIGTERM 優(yōu)雅停掉的甚至日志里只有 graceful shutdown 的記錄。真正要查的是節(jié)點(diǎn)層面的監(jiān)控磁盤(pán)使用率、內(nèi)存水位、inode 數(shù)量。如果節(jié)點(diǎn)磁盤(pán)滿(mǎn)了鏡像拉取、日志寫(xiě)入都會(huì)出問(wèn)題Pod 也會(huì)被優(yōu)先驅(qū)逐。另外如果集群里有搶占式 PodPriorityClass 很高低優(yōu)先級(jí)的 Pod 可能會(huì)被搶占刪除這在 Events 里能看到Preempting相關(guān)條目。5.3 滾動(dòng)更新和配置變更造成的“假重啟”Deployment 升級(jí)鏡像、修改副本參數(shù)、或者觸發(fā)rollout restart都會(huì)創(chuàng)建新的 ReplicaSet然后滾動(dòng)替換舊 Pod。這時(shí)候你會(huì)看到舊 Pod 被刪、新 Pod 被創(chuàng)建表面上也是“Pod 重啟”但這是一個(gè)期望中的發(fā)布動(dòng)作不是故障。判斷方法很簡(jiǎn)單看 ReplicaSet。kubectl get rs -n namespace如果出現(xiàn)了新的 ReplicaSet且新舊并行那就說(shuō)明是發(fā)布不是故障。還有kubectl rollout status deployment/name能直接看到當(dāng)前部署狀態(tài)。這里有個(gè)工程上的常見(jiàn)坑修改 ConfigMap 并不會(huì)自動(dòng)觸發(fā) Deployment 滾動(dòng)更新很多人改了配置后手動(dòng)刪除 Pod 讓它重建如果 ConfigMap 名稱(chēng)沒(méi)變很多場(chǎng)景下 kubelet 不會(huì)重新拉取最新的配置掛載雖然新版 K8s 有了更細(xì)的優(yōu)化但很多情況下還是需要顯式觸發(fā)。規(guī)范做法是配置變更后執(zhí)行kubectl rollout restart deployment/name讓它走一遍新 ReplicaSet 的滾動(dòng)邏輯而不是手動(dòng)隨機(jī)刪 Pod。5.4 云廠(chǎng)商底層故障與基礎(chǔ)設(shè)施漂移最后一個(gè)干擾項(xiàng)來(lái)自基礎(chǔ)設(shè)施層。節(jié)點(diǎn)出現(xiàn) NotReady、被云平臺(tái)自動(dòng)重啟、或者底層網(wǎng)絡(luò)設(shè)備故障也可能導(dǎo)致 Pod 重啟。這種情況下Pod 層面能看到的只有“節(jié)點(diǎn)失聯(lián)”“容器重建”之類(lèi)的結(jié)果根因在集群之外。排查時(shí)要結(jié)合云平臺(tái)的控制臺(tái)事件和節(jié)點(diǎn)監(jiān)控把時(shí)間線(xiàn)對(duì)齊。很多 SRE 在這類(lèi)問(wèn)題上有過(guò)慘痛教訓(xùn)排查一整天應(yīng)用側(cè)毫無(wú)頭緒最后發(fā)現(xiàn)是底層虛擬機(jī)漂移。6. 如何減少 Pod 重啟探針與資源的工程化實(shí)踐排查問(wèn)題很重要但更值得花時(shí)間的是讓這些問(wèn)題少發(fā)生。Pod 重啟這件事尤其是探針 OOM 和配置不當(dāng)引發(fā)的重啟大部分是可以在架構(gòu)和配置層面提前規(guī)避的。這一節(jié)我把它沉淀成幾個(gè)工程化建議。6.1 探針配置的量化建議和模板探針不是越嚴(yán)格越好而是要符合應(yīng)用的實(shí)際啟動(dòng)時(shí)間和對(duì)瞬時(shí)故障的容忍度。我通常按下面這個(gè)模板來(lái)配置livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 60 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 60 periodSeconds: 5 timeoutSeconds: 2 failureThreshold: 2解釋一下幾個(gè)關(guān)鍵參數(shù)的思路。initialDelaySeconds要覆蓋應(yīng)用最慢啟動(dòng)時(shí)間寧大勿小至少要在“實(shí)測(cè)從容器創(chuàng)建到接口可響應(yīng)”的時(shí)間基礎(chǔ)上再加 20 秒冗余。timeoutSeconds別用默認(rèn)的 1 秒除非你確認(rèn)應(yīng)用接口響應(yīng)永遠(yuǎn)在毫秒級(jí)否則至少給 3 秒。failureThreshold不建議堆到幾十次那等于把探針變成了擺設(shè)合理區(qū)間是 2—5 次既能容忍偶發(fā)抖動(dòng)又不至于讓不健康容器長(zhǎng)期留在服務(wù)里。還有一條很重要的原則探針路徑必須輕量。不要把數(shù)據(jù)庫(kù)連接檢查、下游依賴(lài)檢查都塞進(jìn)/healthz里否則數(shù)據(jù)庫(kù)抖動(dòng)一次所有 Pod 一起重啟這是典型的故障放大。健康檢查應(yīng)該只反映本進(jìn)程的存活狀態(tài)下游依賴(lài)的狀態(tài)交給業(yè)務(wù)層的熔斷和報(bào)告機(jī)制。6.2 資源配額與 JVM/內(nèi)存優(yōu)化內(nèi)存類(lèi)應(yīng)用最容易因 OOM 和重啟糾纏不清所以資源配額不能拍腦袋。我的建議是requests必須設(shè)不要只給limits。只給 limits 不給 requests會(huì)導(dǎo)致調(diào)度器以為節(jié)點(diǎn)資源很寬裕實(shí)際運(yùn)行時(shí)卻在高水位很容易觸發(fā)節(jié)點(diǎn)級(jí)壓力。盡量讓 requests 等于實(shí)際穩(wěn)態(tài)占用limits 比 requests 高出一定冗余比如 1.2 到 1.5 倍但不要差距過(guò)大否則會(huì)削弱 QoS 保障。JVM 應(yīng)用有一個(gè)鐵律-Xmx必須小于容器 limits而且要留足堆外空間。粗略估算時(shí)容器 limits 可以按“堆內(nèi)存的 1.5 倍”起步比如-Xmx2g的容器limits 至少給 3Gi。如果有大量線(xiàn)程、堆外緩存或者 NIO 緩沖還要再上調(diào)。要不然你總會(huì)遇到那種“明明堆內(nèi)存還有一半容器卻被 OOM 殺掉”的詭異問(wèn)題實(shí)際上元空間和堆外早就爆了。集群層還可以用 LimitRanger 和 ResourceQuota 兜底避免某個(gè)團(tuán)隊(duì)隨手寫(xiě)一個(gè)巨大的 limits。這些策略看起來(lái)是約束實(shí)際上是在保護(hù)整個(gè)集群的穩(wěn)定性也保護(hù)你自己的服務(wù)不會(huì)互相踩踏。6.3 配置變更與發(fā)布策略ConfigMap 和 Deployment 是結(jié)對(duì)出現(xiàn)的但配置變了不會(huì)自動(dòng)滾動(dòng)更新這是很多人栽過(guò)跟頭的地方。工程化的做法是ConfigMap 一旦創(chuàng)建不要原地修改而是新版本命名空間下重建一個(gè) ConfigMap比如帶 v2 后綴然后通過(guò)修改 Deployment 里的 configMap 引用并執(zhí)行kubectl rollout restart。這樣既保留歷史版本又能回滾。K8s 1.20 還支持 ConfigMap 的immutable: true選項(xiàng)直接禁止原地修改避免誤操作。滾動(dòng)發(fā)布的參數(shù)也值得精確控制。Deployment 里的maxSurge和maxUnavailable決定滾動(dòng)的節(jié)奏。舉例strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0這個(gè)配置的意思是滾動(dòng)過(guò)程中最多額外創(chuàng)建一個(gè)新 Pod并且不允許服務(wù)實(shí)例數(shù)降到期望值以下。適合在線(xiàn)服務(wù)能最大程度保證容量。缺點(diǎn)是發(fā)布速度慢一些但換來(lái)的安全感非常值。尤其是你的服務(wù)有流量突刺maxUnavailable: 0能避免發(fā)布瞬間大量請(qǐng)求 503。另外給容器加preStophook 是減少“被 SIGKILL”的有效手段lifecycle: preStop: exec: command: [/bin/sh, -c, sleep 5]Kubelet 在收到停止信號(hào)時(shí)先執(zhí)行 preStop 的 sleep再發(fā) SIGTERM 給主進(jìn)程。這幾秒時(shí)間能讓?xiě)?yīng)用把進(jìn)行中的請(qǐng)求處理完把連接優(yōu)雅關(guān)閉。對(duì)很多服務(wù)端應(yīng)用來(lái)說(shuō)少了這 5 秒后面省下的排障時(shí)間可能是幾個(gè)小時(shí)的量級(jí)。6.4 建立“重啟即告警”的可觀(guān)測(cè)性與其等用戶(hù)反饋“服務(wù)掛了一會(huì)兒”不如在重啟剛開(kāi)始時(shí)就收到告警。Prometheus 生態(tài)里kube-state-metrics 會(huì)暴露一個(gè)指標(biāo)kube_pod_container_status_restarts_total記錄容器累計(jì)重啟次數(shù)。可以用它做一條簡(jiǎn)單的告警規(guī)則- alert: ContainerRestarting expr: increase(kube_pod_container_status_restarts_total[5m]) 2 for: 5m labels: severity: warning annotations: summary: Pod {{ $labels.namespace }}/{{ $labels.pod }} container {{ $labels.container }} restarting意思是“5 分鐘內(nèi)某個(gè)容器重啟超過(guò) 2 次并且持續(xù) 5 分鐘”就觸發(fā)告警。這個(gè)閾值比 CrashLoopBackOff 出現(xiàn)早得多往往在探針開(kāi)始反復(fù)殺容器、但還沒(méi)進(jìn)入退避階段的時(shí)候就能報(bào)警。事后分析時(shí)事件和日志也應(yīng)該盡量留存到外部系統(tǒng)比如 Loki、Elasticsearch否則 Pod 被重建之后很多現(xiàn)場(chǎng)證據(jù)就瞬間蒸發(fā)了。6.5 一個(gè)小技巧臨時(shí)容器調(diào)試啟動(dòng)即退出的問(wèn)題最后分享一個(gè)挺實(shí)用的技巧。如果你遇到容器啟動(dòng)即退出、日志也沒(méi)留下什么有效信息又來(lái)不及把鏡像拉出來(lái)手動(dòng)跑可以借助臨時(shí)容器ephemeral container進(jìn)到 Pod 里“圍觀(guān)”。前提是 Kubernetes 版本在 1.23 以上并且集群?jiǎn)⒂昧讼嚓P(guān)特性。命令類(lèi)似kubectl debug -it pod-name -n namespace --imagebusybox --targetcontainer-name臨時(shí)容器會(huì)共享目標(biāo)容器的命名空間你可以在里面看文件、查網(wǎng)絡(luò)、檢查掛載內(nèi)容甚至手工執(zhí)行目標(biāo)命令親眼看到它到底報(bào)什么錯(cuò)。如果臨時(shí)容器一時(shí)半會(huì)兒進(jìn)不去還有個(gè)土辦法先把 Deployment 的啟動(dòng)命令臨時(shí)改成command: [sleep, 9999]讓容器穩(wěn)定跑起來(lái)再kubectl exec進(jìn)入容器手動(dòng)執(zhí)行原來(lái)的啟動(dòng)命令看完整報(bào)錯(cuò)。這個(gè)辦法唯一的代價(jià)是業(yè)務(wù)暫時(shí)不提供服務(wù)但在測(cè)試環(huán)境或者低峰期效率遠(yuǎn)超來(lái)回翻日志。排查了這么多 Pod 重啟問(wèn)題我自己最深的一個(gè)體會(huì)是流程比經(jīng)驗(yàn)靠譜。第一次遇到 CrashLoopBackOff 我也慌日志翻到頭大后來(lái)發(fā)現(xiàn)只要按“狀態(tài) → 事件 → 日志 → 節(jié)點(diǎn)”這個(gè)順序查80% 的問(wèn)題十分鐘內(nèi)都能定位。最后再分享一個(gè)小習(xí)慣每次排查完把 describe 輸出和 events 存一份到本地筆記里。很多問(wèn)題過(guò)兩個(gè)月會(huì)以非常相似的形態(tài)再出現(xiàn)翻舊案比從零開(kāi)始排查快得多而且你會(huì)慢慢發(fā)現(xiàn)Kubernetes 的故障雖然花樣多但底層邏輯永遠(yuǎn)是那幾板斧。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亭亭丁香久久五月| 天天操狠狠操| 啪啪五月天啪啪| 成人无码精品1区2区3区免费看| 亚洲狠狠狠色婷婷综合激情久久久| 白人荫道BBWBBB大荫道| 婷婷人人操| 婷五月天在线草| 草榴视频黄色网| 久久久无码精品成人A片小说 | 风流少妇A片一区二区蜜桃| 五月婷婷免费| 色亭亭五月天网扯| 亚洲色啪| 97碰人人操| 色色婷婷五月天| 亚洲另类噜噜| 色婷丨日丨天丨综合久久| 99热亚洲| 岛国av电影网站| 五月天社区婷婷丁香社区| 综合色色色| 激情婷婷网| 日本色天堂| 国产成人精品一区二三区熟女在线| 欧美婷婷色五月| 国产成人av在线| 丁香婷婷六月| 欧美A级成人婬片免费看理论| 婷婷丁香激情综合色情| 狠狠干狠狠干| 久久人妻乱| 天天色一道本综合婷婷| 丁香五月婷婷狠狠色| 久热精品在看| 97人人操人人拍| www九九热| 婷婷五月精品中文字幕| 热99re| 婷婷久热| 色9999日韩国产| 九九超碰人人| 婷婷九九视频| 99色在线观看视频| 97日在线视频| 九月婷婷综合| 六月婷婷av| 综合久久六月| 六月丁香久久| 婷婷的激情五月| 五月婷婷精品| 丁香五月六月综合激情| 五月色婷婷影院| yiqicaoav| 亚洲欧洲美女在线观| 国外亚洲成AV人片在线观看| 丁香五月综合| 综合色色五月| 日日操天堂| 国产偷人爽久久久久久老妇APP| 丁香久久久| 五月丁香六月婷婷中文版| 色五月婷婷影院| 国产九九一区二区三区| 久久在这里99| 丁香午夜天| 97碰碰在线看视频免费| 婷婷六月综合激情| 北京熟妇搡BBBB搡BBBB| 综合久久激情久久| 婷婷狠狠香蕉综合| 97人人干| 91夫妻视频| 免费视频在线观看的网站| 一本道在线电影| 久久激情五月| 婷婷综合国产| 婷婷天堂站| 婷婷黄色| 婷婷五月天xxx| 五月天中文字幕在线婷婷| 九月婷婷| 久色中文| 97干97色| 91精品婷婷国产综合久久| 欧美熟女99| 伊人婷婷五月天| 五月丁香影院| 亚洲AVwwwwwww| 热99精品视频| 五月色天五月色| 99er精品视频| 五月天婷婷久久| 性色做爰片在线观看WW| www.sebowuyue| 亚洲激情婷婷| 久久99性爱视频| 日日干夜夜干| 亚洲情综合五月天| 能看的av| 超碰人人操| 在线99热| 思思热在线观看| 成人av免费观看| 中文成人在线| www.99久久久| 99精品福利视频| 久久六月天| 国产又粗又大又爽又黄| 爆乳熟妇一区二区三区爆乳| 激情五月六月婷婷| 丁香久久五月天视频在线观看| 久久婷婷六月天| 久久99久久99精品免视看婷婷| 噜噜噜噜噜色| 国产69久久久欧美黑人A片| av在线免费播放观看| 99色在线观看视频| 可以免费看AV网站| 欧美内射AA| 久久无码成人| site:xmssd.com| 开心五月激情婷婷| 清纯唯美 激情四射| 天堂综合久| 97涩涩丁香五月天| 91人人爽狠狠狠| 91色呦哟| www.日韩艹| 色婷婷色99国产综合精品| 欧美搡BBBBB摔BBBBB| 激情五月婷婷她| jiujiu无码五区| 亚洲综合婷婷六月丁香五月| 噼里啪啦完整版中文在线观看| 在线不卡中文字幕| 婷婷五月天堂| 五月天婷婷综合| 99国产精品久久久久久久久久久 | 午夜av网| 丁香六月情| 99色综合| 免费精品66| 久久3p| 婷婷五月色综合香五月| 亚洲九九99精品视频在线播放| 激情综合网激情五月欧美| 在线成人网址| 五月天婷婷影院| 色五月天成人| 亚洲自拍天堂| 欧洲激情五月天婷婷| 一级精品999WWW| 人妻中文av| 精品动漫 无码av| 五月丁香在线婷婷蜜桃| 亚洲av| 色青青五月| 激情婷婷五月| 思思久久精品视频| 丁香性爱在线视频| 手机免费福利视频| 伊人九九综合| 操91| 蜜臀av无码久久久久久久久| 亚洲性爱AV在线| 2050人人操免费工开爱| 成人国产欧美大片一区| 综合激情深爱| 五月丁香888| 天天婷婷| 色婷婷狠狠18禁| YJLZZJLZZ亚洲乱熟无码| 99九九中文字幕视频| 天天日夜夜拍| 五月婷婷亚洲| 中国女人做爰A片| 五月婷婷丁香大陆免费| 精品婷婷丁香五| 五月丁香中文字幕| 色五月婷婷基地| 婷婷色综合| 五月五婷婷网| 国外亚洲成AV人片在线观看| 欧洲第一久色| 丁香五月天婷婷激情| 激情五月天久久丁香| 天天天干夜夜夜操| 精品A√| 狠狠色丁香久久婷婷综合五月| 思思热热久久| 色色色五月婷| 国产做爰视频免费播放| 播五月,色五月,开心五月播放器| 五月开心婷婷极品激情| 激情 久久 婷婷| 很很干夜夜干| 久久这里都是精品免费| 91a片爽| 丁香婷婷社区| 色国产五月| 色色综合网www| 丁香五月婷婷在线| 日日日,com| 欧美三级巜人妻互换| 天天夜夜六月丁香五月婷婷老师| www.精品99| 99色色网| 色色亚洲| 午夜电影网VA内射| 五月婷婷激情综合在线| 欧美婷婷丁香五月| 少妇人妻人伦A片| av操一操| 五月停停99| 九热免费视频| 丁香五月天激情网| 五月婷婷内射网| 色天使色综合| A片试看50分钟做受视频| 天天色官网| 欧美激情综合色综合啪啪五月| 久色激情| 武则天精品久久| 色综合播放| 玖玖五月丁香| 97超级碰人人| 九七色色六月丁香| 色婷婷丁香五月| 色五月大| 91久久婷婷| 17.c黄色| 九色视频这里只有精品| www.粉嫩av.com| 中文成人在线| 综合五月婷婷| 天天爽综合| 丁香五月影视| 玖玖婷婷色| 99在线视频网址在线观看| 亚洲这里只有精品| www.久久久久久久| 婷婷五月激情图片| 激情五月激情综合网| 色五月婷婷久久爱| 性色播| 欧美日韩成人在线网| 婷婷色影音天| 丁香花社区av| 亚洲AV成人一区二区在线观看| 五月久久婷婷| 五月丁香免费视频| 国产午夜一区二区三区| 婷婷五月丁香六月天亚洲综合| 大香蕉啪啪啪| 天天色天天搡| 五月婷婷 欧美| 五月婷婷熟女| 99内射视频| 天天日色情| 日韩精品AV一区二区三区| 操人无码| 天天干天天插| 日韩免费视频| 五月丁香婷婷欧美色图视频五月丁香777电影 | 久久激情天堂| 激情婷婷五月| 婷婷伊人| 天天爽天天爽| 不卡成人免费| 色播五月综合网| 色九九九综合| www.99精品视频| 玖玖激情网| 久久五月热| 刘玥精品一区| 九九色天堂| 秋霞网在线免费基地五月婷婷丁香| 日本欧美成人片AAAA| 五月天婷婷色色| 天天操天天插| 91日婷婷在线| 熟女激情网| 五月丁香六月综合基地| 久久这里精彩免费在线观看| 五月婷婷亚洲综合网| 婷婷五月丁香五月天| 襙逼网| AV79| 丁香婷婷色| 久9视频| 99热这里有精品| 99精品在线| 久草xx性爱视频| www激情网| 激情五月婷婷综合色播小说| 99热这里只有的精品视 | 丁香桃色网| 丁香五月欧美午夜视频| 五月丁香影视| 日本高清不卡免费一区二区三区| 婷婷六月激情| 99热精品一区| 97影院一级片| 在线视频区| 日韩久综合| 99啪啪视频| 久久这里只精品66| 欧美五月婷婷| 777精品久无码人妻蜜桃| 色婷婷色综合| 538午夜激情| 久久久区区一久久久久久| 天天色天天色天天色天天色天天色| 五月天综合激情网| 99re在线观看| www.婷婷,com| 颜射 精品性爱av| 色五婷婷开心缴| 99网| 97色婷婷在线观看| 天天日夜夜B久久| 丁香婷婷十月| 久久久婷婷婷| 久久精品99久久| 99亚洲精品综合在线| 久久99精品久久久久久三级| 思思热思在线精品视频| 综合激情五月婷婷| 九热av| 婷婷五月综合激情| 丁五月激情视频免费| 99ER热精品视频| 色五月自偷自拍婷婷婷婷| 亚洲AV免费在线| 日韩十国产极品久久| 五月丁香六月激情在线| 日韩ww| 9久久久久| 国产精品色色色色| 97热这里只有精品| 91狠狠综合网| 99丁香五月婷| 五月天婷婷色情| 五月的丁香六月的婷婷| 激情五月天婷婷五月天| 色色五月天网站| 日日日影院| 网站免费一站二站| 国产激情综合| 久久HD| 九九99精品免费播放| 激情婷婷| 婷婷激情社区| 超碰免费成人| 二色AV| 最新日韩久热免费视频看看| 亚洲激情精品| 97婷婷五月丁香| 婷婷综合成人五月天| 激情丁香五月天| 亚洲久久日| 日日夜夜狠狠操| 怎么样可以看免费的一级av| 99热精这里只有精品| 开心五月婷婷激情| 天天色天天色天天色天天色天天色天天色| 噜噜视频| 婷婷色播六月无码| 日本色爽| 超碰在线观看9| 人人草开心五月天| 久久精品99久久久久久| 六月婷婷开心| 综合五月天亚洲婷婷| 激情深爱五月天| 五月激情视频| 色色五月天婷婷| 久色视频在线| 嫩草AV久久伊人妇女超级A| 婷婷97| 这里只有精品视频99| 99九九在线| 停停五月色宗合| 九九热在线视频观看免费10| 丁香五月欧美色综合| 超碰在线综合| 日本一道久久| 丁香五月婷婷丫| 国产精品久久久久久喷浆| 丁香五月婷婷成人色区| 免费91久久精品| 天天摸夜夜夜| 色婷婷婷婷| 九九热视频在线观看| 激情综合4月| 中文字幕日产A片在线看| 人人舔人人色人人高潮| 天堂网亚洲色图| 天天爱天天秀天天做| 991自拍视频| 99久久玖玖| 婷婷九九色| 婷婷五月骚厕所| 五月天堂六月丁香亚州中文字幕久久| 激情五月天啪啪| 色婷婷基地在线| 日产精品久久久久久久蜜臀| 婷婷丁香成人五月天| 99这里只有精品|v| 天天肏天天爽夜夜爽| 9 1大香蕉| 婷婷伊人綜合中文字幕| 久热精品视频| 欧洲毛片基地c区| 日本天天操| 久久99这里只有精品视频 | 激情五月丁香激情综合网| 大香蕉九九| 99成人无码| 熟女网站久久| 婷婷五月激情欧美大胆视频| 丁香五月六月综合激情| 丁香六月中文| 婷婷五月综合网| 极品少妇XXXX精品少妇偷拍| 色播婷婷五月天| 亚洲最大在线| AV操一操| 丁香五月婷婷五月| 天天操婷婷| 久久人妻乱子伦| 人人干人人操外国| 国产亚洲成AV人片在线观黄桃| 五月婷婷激清网| 91色五月| 九九十99视频| 伊人天堂婷婷| 一起草AV入口| 五月亭亭开心网| 开心五月网 | 噜噜噜狠狠色综| 亚洲 在线 另类| 天堂久久婷婷| 久久狠狠干| 色五月综合激情网| 香蕉综合网| 午夜婷婷久久 | 日本不卡一区二区三区| 99热免费| 亚洲色碰| 五月天激情久久| 婷婷五月天激情五月天| 九九热99精品在线| 久久九九免费大视频| 婷婷丁香综合在线| 五月激情婷婷偷拍| 色色色com| 亚洲丁香花色| 欧美色五月| 这里只有精品免费| 久热 91| 亚洲aV写真天天综合网久久| 亚洲色色精品| 五月婷婷色吧!| 亚洲 精品 综合 精品| 综合色视频| 婷婷五月丁香综合亚洲| 一区二区三区四日本| 色综合天天| 二色av| 婷婷少妇激情| 91操网| 五月丁花色综合网| 人人干Av| 这里只有免费精品| 思思热AV| 99这里只有精品| 久久538| 丁香婷婷五月| 色九月婷婷丁香| 天天做天天爱| 亚洲网视屏| 91人操人人人操人| 97操操| 大香蕉精品视频| 六月丁香啪啪| 亚洲妇女熟BBW| 天天激情站| 五月亭亭直播| 站长推荐无码播放| 五月天综合色| 无码 av电影| 日韩AV中文在线观看| 中日韩美欧成人一区二区精品在线| 99精品偷自拍| 大香蕉人人网| 第四色激情网| 天天插天天很| 久草五月天| 天天干天天干天天干| 色婷婷导航| 五月色亚洲| 欧美性生交XXXXX无码小说| 丁香五月影| 99ri国产精品| 激情综合网五月在线播放| 五月婷婷内射网| 日批在线看| 色婷婷www| 99在线热| 我淫我色婷婷五月天激情四射| 日韩av高清| 91精品久久久久久久| 婷色人人狠| 在线观看玖玖资源免费观看| 99超级碰碰| 婷婷六月激情| 97久久精品视频| 久久婷丁香五月| 超碰九色| 激情五月天小说| 亚洲av网站| 99热这里只有精| 2018夜夜草| 五月丁香激情综合网| 五月激情影院| 91久久免费| 青青草a在线| 婷婷干五月综合在线播放| 伊人狠狠丁香婷婷综合尤物| 99在线资源视频| www.91在线观看| 色婷婷婷综合五月天| 99久久这里只有精品| 日韩另类| 色婷婷88| 欧美啄木乌丝袜人妻系列| 九热视频| 很很色丁香久久停停| 午夜理论片最新午夜理论剧| 26uuu| 国产做A爰片毛片A片美国| 九九人人看| 色很很96| 五月丁香色婷婷久久| AV成人在线网站| 色色丁香婷婷| 天天噜| 五月天久久婷| 天天射美女| 无码 色| 婷婷五月天小说| 啪啪视频99| 婷婷另类开心| 99欧美| 无码动漫AV| 天天操天天谢| 综合色播| 五月天婷婷综合久久| 伊人婷婷色| 色婷婷91激情小说| 99热九九在线| 久久人妻熟女一区二区| 99热国内| 天天爽夜夜操| 婷婷激情五月天综合| 激情五月,色五月| 日本啪啪网| 色色影院黄大片| 亚洲色模骚货| 九热视频在线伦| 操逼福利视频| 国产美女无遮挡裸体毛片A片| 99在线69| 婷婷午夜天| 97视频.干com| 人妻综合网| 亚洲无码成人| 99九九99九九九视频精彩| 韩日另类| 婷婷丁香激情| 综久久久| 激情五月丁香婷婷| 亚洲成人av在线| 婷婷欧美激情综合| 色色五月婷婷| 五月丁香影院| 五月天成人在线精品| 久久久中文| 蜘蛛女免费观看完整版高清电影| 六月丁香五月婷婷| 思思久久思思| 潮汕成人AV片在线| 五月丁香激| 久久激情五月婷婷| 性生活视频98791| 99热主页日本| 超碰av在线| 色婷五月丁香久亚洲| 婷婷五月天综合亚洲| 亚洲网站在线鸭子av| 九九碰九九爱97超碰| 五月丁香直播| 久久久久久婷| 婷婷综合97| 亚洲色夜| 丁香激情网| 欧美性丁香色色五月天| 99色免费在线观看| 综合色播| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | 伊人久久大香线蕉av一区| www.精品99| 久热这里只有精品6官网亚洲| 最近中文字幕大全免费版在线 | 丁香五月婷婷色| 中文字幕综合| 欧美性猛交99久久久久99按摩| 少妇人妻综合色6699| www.日本91| 另类激情综合| 丁香六月五月天| www久| 在线看的免费网站| 色五月偷偷| 天堂婷婷五月在线| 免费99色| 婷婷色婷婷| 色色色色网站| 蜜乳.comcom| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 思思热在线精品视频网站| 婷婷色五月天色色| 久久久久婷婷| 五月天综合在线观看视频| 亚洲国产精品成人免费一区久久久在线观看AAAA | 99超超碰| 激情五月天在线视频| 色五月婷婷婷婷| 大香蕉久久久久| 婷婷丁香18| 天天插天天插天天操| 色五月丁香91| 99精品在这里| 丁香五月天啪啪a日本| 九九国产精视频| 丁香婷婷丁香五月欧美人| 婷婷五月丁香六月| 日日天天操| 色色色区| 97在线/日本| 日本一级特黄大片AAAAA级| 久久五月天黄色五月天色网址| 182.t午在线观看| WWW,五月| www.jiujiujiu| 五月婷婷丁香综合网| 五月综合亚洲色| 亚州婷婷五月激情综合| 国产熟妇的荡欲午夜视频| 任你日视频| 婷婷五月天激情网站| a69在线视频| Av九九| se.久久视频在线观看| 91919191919久久成人视频| 天天爱天天做天天操| 色婷婷综合影院| 丁香五月中文字幕久色| 五月丁香网中文字幕| 秋霞三级色戒| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 九九一综合精品| 九九热视频精品2| 亚韩在线视频| 肏屄色播伊人97婷婷| 中文字幕人妻AV| 影音先锋91网站在线观看| 六月激情网| 激情综合网五月婷婷| 99ri精品在线| 1024操逼视频| 久久色五月天| 色婷婷五月综合在线| 五月婷婷综合色拍| 久久五月天激情视频| 另类婷婷丁香| 色婷婷五月天激情综合| 婷婷综合网伊人| 五月丁香爱婷婷深深| 欧美日韩99| 伊人婷婷五月天| 99久久网站| 九九99免费视频| 久久嘟嘟丁香| 五月婷婷六月丁香| 91日韩在线| 免费看欧美成人A片无码| 爱久久小说下载网| 青草视频在线观看视频| 偷偷与邻居做爰完整视频| 五月丁香六月婷综合成人综合| 激情六月综合| 9久久久久| 色五月婷婷亚洲| 婷婷丁香久久| 精品九九九久| 大香蕉伊人爱在线| 啪啪 综合网| 亚洲激情亚洲激情| 26UUU亚洲欧美| 九九热免费| 婷婷五月天网址| 伊人啪啪网| 99啪99| 亚洲热热视频| 久久综合婷婷激情| av第一二区| 4399成人黄A片| 热无码A∨| 九月丁香五月婷婷| 久综合色| 婷婷五月欧美综合| 《久久综合九色综合97婷婷| 99re热精品在线视频| 情五月亚洲婷婷| 欧美成人A片AAA片在线播放| 9久视频| 婷婷中文字幕| 丁香五月婷婷综合激情啪啪啪啪啪啪啪 | 久久婷婷六月综合| 欧美日本综合网| 狠狠狠狠狠草| 91热爆在线| 亚洲精品a成人在线播放| 色五月超碰| 午夜天堂一区人妻| www.射伊蕉婷婷| 色情五月天小说| 99国产小视频| 五月天激情网图片| 五月婷婷亚洲色图| 天天婷婷天天| 久久久五月五丁香| 婷婷狠狠综合网入口| 91seAV| 色噜噜狠狠色综合伊人| 日本色视| 香蕉97碰碰碰欧美| 日韩色色色色色| 综合激情深爱| 国产亚洲精品AAAAAAA片| 4438成人电影| 久久五月激情| 风流少妇A片一区二区蜜桃| 99ri在线播放| 99久久激情视频| 丁香五月婷婷影院| 91亚洲天堂| 天天日人人爽| AVDV久久| 亚洲成人AV在线播放| 99热亚洲精品| 色婷婷丁香女女| 人人干人人干骚美女| 99色免费视频| 97高清国语自产拍| 996er在线观看| 九九色人| 噜噜操操| 五月婷婷之综合激情| 九色综合网| 婷婷四色五月| 成人草榴视频| www.26uuu.com亚洲电影| 国产真人做爰视频免费| 狠狠干2007| 超碰v| 天色综合网站| 亚洲激情四射色| 9这里只有精品| 久热久69| 人人视频色| 91Chinese在线| 99热这里只有99| 婷婷五月天伊人网| 九九热在线观看6| 久婷五月| 久久 中文 日本| 色五月综合在线| 大香蕉伊然在亚洲90| 开心五月婷| 超碰在线免费观看3 9| 五月婷婷在线丁香| 天天爽人人综合免费7799| 激情五月婷婷丁香六月| 人人摸人人| 亚洲综合网区| 蜜臀AV在线观看| 五月婷婷久久爱| 大香蕉AV电影在线| 色欲天天综合| 欧美婷婷丁香五月| 久久综合中文字幕| 成人在线视频网| 日本99在线| 午夜激情婷婷| 99爱在线精品视频免费观看| Av狠狠色丁香婷| 亚洲精品久久久久久久久久吃药| 丁香五月婷婷色五月| 97日韩无套内| 五月天婷婷视频| 99精品网址| 干一干xxxx| 五月丁香久久精品在线观看| 色色无码| 婷婷色五月色| 91操片| 99操视频| 热99精品视频| AV成人在线播放| 天天干电影| 色色精品色| 天天爽天天干| 久久成人人妻| 色欲丁香| 久久久久久久11111111111| 婷婷五月无码| 成人av在线电影| 国外亚洲成AV人片在线观看| 色五婷婷| 欧洲亚洲免费视频9| 色婷婷成人做爰A片免费看网站| 97色婷婷五月天| 青青草轻轻操| 亚洲男女激情| 狠狠搞综合色| 婷婷五月天天激情| 色婷婷久久| 人人爽在线视频综合网| 丁香五月欧美婷婷| 大香蕉综合| 激情婷婷五月天在线观看| 91久久综合亚洲噜噜成人在线 | 人人看人人97| 色综合五月天| 热99在线精品| Va另类视频| 中文字幕av久久爽| 人人摸人人摸| 婷婷婷久久久| 九九热精品6| 日韩a热| www.婷婷五月天| 美女久久天堂| 嫩草AV久久伊人妇女超级A| 婷婷涩涩五月天| 五月综合色播播丁香婷婷| 开心五月天私房婷婷| 1024成人在线观看| 久久综合图片| 国产性av| 嫩草AV久久伊人妇女超级A| www.激情| 美欧成人视频| 欧美日本va| 99黄色| 涩综合在线| 亚洲色色色色色色色色色| 九月av| 丁香五月天社区婷婷| 99精品丁香五月| 性做久久久久久久免费看| 欧美成人A片AAA片在线播放| 超级碰碰碰97免费| 婷婷五月天美女21p| 五月婷在线播放| 激情综合网激情五月丁香| 婷婷伊人激情婷婷| 99成人精品六| 婷婷丁香成人在线视频| 天天日夜夜高潮| 天天天久久久| 丁香五月激情宗合网| 97碰久久| 国产熟女大叫受不了| 玖玖色资源| 停停五月色宗合| 久久婷婷丁香视频网| 97超级碰碰碰| 婷婷色五月大香蕉在线观看| 六月婷色| 91精品综合久久婷婷九色| 久久婷婷五月天激情| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 国产激情AV| 婷婷综合网站| 丁香六月情| 99精品热| 日韩在线看AV| 婷婷伊人综合| 99久久.www| 亚洲人妻Av| 9色在线| 激情综合色| 丁香午月AV中文字幕| 婷婷五月丁香影院| 丁香五月婷婷亚洲另类| 天天xxxxxx天天日| 这里只有精品无码| 欧洲亚洲免费视频9| www.minyis.com【JT】实力收量可预付QQ2101460746 | 人人操超碰| 六月婷婷最新网址| 99热爱爱干干日| Xx色综合| 99热日韩| 色色色色色色色色色色色色色97| 亚洲99综合| www.91色| 久热精彩视频98| 91九色小视频| 99这里有精品免费| 久久色这里只有精品| 99色视频| www.色五月| 99爱在线| 成人网站在线观看视频| ji'qing'luan'ren'lun| 五月停停激情网| 婷婷五月天激情综合| 97色在线| 亚州精品成人片| 色九区| 五月开心啪啪| 99精品一二三四视频| 激情五月婷婷| 99热欲| 五月婷视频久久| 国产色五月| 久久网日本| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 五月大香蕉| 久久人人添人人爽添人人片αV| 婷婷色情五月| 天天看片日日夜夜| 日日色综合| 九九成人视频| 久久久婷婷色五月资源网| 99色色热| 色五月天电影| 中文字幕人妻熟女在线| 色婷婷影| 欧美va| 久久久www| 丁香五月天日韩无码| 狠狠色综合网| 六月丁香五月天| www久久久| 97日在线视频| 亚洲激情色色| 99激情| 超碰不卡在线| 亚洲欧州色情在线观看| 99热免费| 成人婷婷| 91精品综合久久久久久五月丁香| 天天插天天日| 成人中文字幕在线| 五月色网| 97精品人人A片免费看| 五月婷婷狠狠干| 在线1青婷| 男同91 | 亚洲婷婷激情综合激情999精品| 婷婷色五月亚洲| 五月丁香六月婷综合成人综合 | 在线99热| 丁香六月婷| 婷婷五月天激情五月天深爱五月天| 亚洲第一综合| 美女黄频aⅴ视频| 五月丁香成人视频| 色九四色| 午夜精品777| 99视频自拍| 久久天天天| 超碰在线人妻| 五月婷婷综合久久| 97五月天| 91VIP在线观看| 无码人妻一区二区三区免费九色| 无码人妻精品一区二区蜜桃色欲| 欧美噜噜噜草| 97干在线视频| 91成人品| 婷婷五月天激情综合| 久久精品系列| 超碰人人操| 欧美啪啪网| 99热这| ww超碰在线| 女人天堂 AV| 久久婷婷五月综合色和| 五月天色婷婷基地| 九月激情婷婷丁香| 婷婷激情五月综合丁| 538在线精品| 婷婷色五月色妇| 九七色色六月丁香| 狠狠狠狠操| 伊人99久久| 色五狠狠| 人妻中文字幕精品| 婷婷五月天综合久久| 免费看片在线观看| 五月天色综合| 色婷婷狠| 欧美人妻一区二区| 激情深爱综合| 色婷婷成人| 亚洲综合五月天综合| 国产,欧美,学生妹,视频| 亚洲综合色五月| 狠狠色婷婷丁香五月| 亚洲操操操| 久久免费9| 九九视频在线观看| 婷婷久久国产视频| 久热A片| 九九这里有精品| 国产成人av在线播放| 婷婷丁香人妻天天爽| 久久五月网| 最新婷婷五月丁香| 激情五月婷婷视频一区二区三区| 色五月婷婷影院| 91操人| 色播五月丁香婷婷| 1级欧美日韩| 亚洲色网址| 色婷婷电影网| 日本操B视频在线观看| 色色色色网| 久久黄A片| 日韩性爱AV| 这里只有精品无码| 激情小说五月天社区丁香| 九九色色| 久久免片| jiqingtaose五月天| 日韩在线看AV| 亚洲无码99| 婷激情五月天视频导航| 国内精品99| 丁香五月在线自慰| 婷婷五月天视频小说| 視频福利乱色| 色优久久| 婷婷激情小说| 开心婷婷五月激情网小说 | 五月丁香狠狠地噜噜噜噜| 激情 婷婷| 99精品网| 久热只有精品| 侠女刀之记忆电影在线看免费| chaopeng在线人人| 久久三级视频| 99色免费视频| 久久这里只有精品久久| 中文字幕不卡网站| 色婷婷视频| 丁香婷婷成人在线播放| 色呦呦美女| 在线视频区| 另类视频一区| 99成人免费热视频| 这里只有精品在线视频精品| 日噜噜色| 禁欲电影完整版在线播放| 超碰高清在线| 人人综合五月人人婷婷| av在线资源| 亚洲啪啪精品| 中文字幕欧美日韩VA免费视频| www热久久yy9| 色射婷婷五月天| 婷五月天天| 丁香五月开心亚洲| 天天日日| 亚洲精品一区中文字幕乱码| 丁香五月91| 九九热视频精品| 熟女五月天久久综合| 五月天婷婷久久| 丁香五月激情欧美| 色五月婷婷在线观看第一页舔| 九九热这里只有精品6| 狠狠干,狠狠操| 人人人操97| 亚洲婷婷丁香五月天激情小说| 97狠狠色| 婷婷色在线视频| 9|在线观看视频| 六月婷婷毛片| 99热91| 四色99久久| 97碰碰在线观看视频| 色婷婷基地| 亚洲国产成人裸舞| 日本婷婷综合精品| 色色热99| 超碰人人在线| 啪啪激情网| 色婷婷免费观看| 婷婷丁香五月91| 青青999| 超碰五月婷婷五月天| 久久丁香综合香蕉| 91人久| 欧美搡BBBBB摔BBBBB| 亚洲色五月| 丁香激情网| 婷婷五月天视频| 狠狠操天天干| 色婷婷激情| 可以免费观看的AV| 99久视频| 亚洲成人综合在线| 婷婷爱五月| 五月丁香色综合| 婷婷五月激情网| 免费视频无码| 中文字幕永久在线| 国产精产国品一二三在观看 | 丁香五月停停av| 中文字幕91,综合| 怡春院天天干| 超碰AV成人| 99精品97| 成人AV免费观看| 亚洲欧洲另类| 婷婷六月丁香综合| 五月色婷婷影视在线电影| 色播五月丁香婷婷| 淫水导航| 色噜噜狠狠一区二区三区| 色五月天成人| 久热 91| 99这里只有精品视频| AA片在线观看视频在线播放| 99ER热精品视频| 激情6月| 日韩色色一区| 操操天堂| 99精品这里只有免费视频| 操逼在线视频| 婷婷五月中文在线视频| 亚洲欧美丁香五月天亚洲欧美| 91婷色| 狠狠操天天干| 色五月综合激情网| 久久人操-久草婷婷-成人AV| 美女黄频aⅴ视频| 操笔无码| 丁香五月六月婷婷殴美综合| 五月婷婷视频在线观看| 五月开心婷婷网| 99久热| 色五月在线播放| 成人做爰高潮A片免费视频| 思思热99er| 99ri精品在线| 99热这里只有精品21| 婷婷五月美女直播| 久久婷婷综合网| 精品一区二区三区四区五区六区| 九月婷婷人人操人人舔人人爱| 黄色片精品| 五月丁香在线视频观看| 狠狠操狠狠干综合| 婷婷色网站| 五月天久久色| www一起操| 五月丁香啪啪拍| 播五月,色五月,开心五月播放器| 色五月婷婷在线| 中文字幕综合色| 6月丁香婷婷| 婷婷精品综合| 亚洲九九视频| 久久综合图片| 伊人五月天综合网| 欧洲第一久色| 狠狠色婷婷777| 碰99在线| 性色人人爽| 激情文学五月丁香六月婷婷| 色五月激情五月天| 99精品九九| 第四色五月激情网| 六月婷婷色色色| 日本二级毛片二级毛片| 女婷久久| 这里只有精品网站| 99色视频| 啪啪婷婷五月天激情| 五月香六月婷| 精品人妻伦一二三区久久| 色一情一乱一乱一区9| 狠狠干激情五月| www.丁香五月| www. 五月. com| 日日噜狠狠色综合久久| 婷婷五月天色| 色婷婷女优有码五月亭| 欧美性爱特黄一级aaaassss| 色婷五月天| 99啊精典免费视频| 六月婷婷影院| 99热这里都是精品| 91精品91久久久中77777久久玖玖九九| 99性爱无码| 99精品无码| 91九色丨国产丨爆乳| 天天婷婷综合亚洲亚洲| 丁香五月婷婷社区| 人人色性网| 99热精品在这里| 99久久玖玖| 婷婷五月丁香在线视频| 色五月 婷婷, 大香蕉| 【乱子伦】黄色| 综合色播| 日韩人妻在线观看| 天天综合五月天| 五月天久久激情| 99在线亚洲| 中文字幕在线视频播放| er99免费视频在线| 成人综合网站| 99这里有精品免费| 婷婷五月丁香六月| 在线中文字幕av| 免费婷婷| 婷婷综合网性| 99久久久久久www| 97人妻碰碰碰久久| 人人摸人人摸| 亚洲色五月婷婷| 五月天婷婷影院影院观看| 热99玖玖99玖玖99九九| 激情综合另类| 美女久久天堂| 五月天色裸体视频| 伊人网色婷婷五月天| www夜夜操wwwcon| 99热热热天天人人人超超碰| 开心五月综合激情综合五月| http://www.com久久久精品一区| 26UUU欧美激情一区二区| 俺也去五月婷婷丁| 久色五月| 丁香五月黄色|