精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

讀懂這一篇,集群節點不下線

云計算 云原生
排查完全陌生的問題、完全不熟悉的系統組件,是售后工程師的一大工作樂趣,當然也是挑戰。今天借這篇文章,跟大家分析一例這樣的問題。

問題一直在發生

1. I'm NotReady

阿里云有自己的 Kubernetes 容器集群產品。隨著 Kubernetes 集群出貨量的劇增,線上用戶零星的發現,集群會非常低概率地出現節點 NotReady 情況。

據我們觀察,這個問題差不多每個月就會有一到兩個客戶遇到。在節點 NotReady 之后,集群 Master 沒有辦法對這個節點做任何控制,比如下發新的 Pod,再比如抓取節點上正在運行 Pod 的實時信息。

2. 需要知道的 Kubernetes 知識

這里我稍微補充一點 Kubernetes 集群的基本知識。Kubernetes 集群的“硬件基礎”,是以單機形態存在的集群節點。這些節點可以是物理機,也可以是虛擬機。集群節點分為 Master 和 Worker 節點。

  • Master 節點主要用來負載集群管控組件,比如調度器和控制器;
  • 而 Worker 節點主要用來跑業務。Kubelet 是跑在各個節點上的代理,它負責與管控組件溝通,并按照管控組件的指示,直接管理 Worker 節點。

當集群節點進入 NotReady 狀態的時候,我們需要做的第一件事情,肯定是檢查運行在節點上的 kubelet 是否正常。在這個問題出現的時候,使用 systemctl 命令查看 kubelet 狀態,發現它作為 systemd 管理的一個 daemon,是運行正常的。當我們用 journalctl 查看 kubelet 日志的時候,發現了下邊的錯誤。

3. 什么是 PLEG

這個報錯很清楚的告訴我們,容器 runtime 是不工作的,且 PLEG 是不健康的。這里容器 runtime 指的就是 docker daemon,Kubelet 通過直接操作 docker daemon 來控制容器的生命周期。

而這里的 PLEG,指的是 pod lifecycle event generator。

PLEG 是 kubelet 用來檢查容器 runtime 的健康檢查機制。這件事情本來可以由 kubelet 使用 polling 的方式來做。但是 polling 有其成本上的缺陷,所以 PLEG 應用而生。PLEG 嘗試以一種“中斷”的形式,來實現對容器 runtime 的健康檢查,雖然它實際上同時用了 polling 和“中斷”兩種機制。

基本上看到上邊的報錯,我們可以確認,容器 runtime 出了問題。在有問題的節點上,通過 docker 命令嘗試運行新的容器,命令會沒有響應。這說明上邊的報錯是準確的。

容器 runtime

1. Docker Daemon 調用棧分析

Docker 作為阿里云 Kubernetes 集群使用的容器 runtime,在 1.11 之后,被拆分成了多個組件以適應 OCI 標準。

拆分之后,其包括 docker daemon,containerd,containerd-shim 以及 runC。組件 containerd 負責集群節點上容器的生命周期管理,并向上為 docker daemon 提供 gRPC 接口。

在這個問題中,既然 PLEG 認為容器運行是出了問題,我們需要先從 docker daemon 進程看起。我們可以使用 kill -USR1 命令發送 USR1 信號給 docker daemon,而 docker daemon 收到信號之后,會把其所有線程調用棧輸出到文件 /var/run/docker 文件夾里。

Docker daemon 進程的調用棧相對是比較容易分析的。稍微留意,我們會發現大多數的調用棧都類似下圖中的樣子。

通過觀察棧上每個函數的名字,以及函數所在的文件(模塊)名稱,我們可以看到,這個調用棧下半部分,是進程接到 http 請求,做請求路由的過程;而上半部分則進入實際的處理函數。最終處理函數進入等待狀態,等待的是一個 mutex 實例。

到這里,我們需要稍微看一下 ContainerInspectCurrent 這個函數的實現,而最重要的是,我們能搞明白這個函數的第一個參數,就是 mutex 的指針。使用這個指針搜索整個調用棧文件,我們會找出,所有等在這個 mutex 上邊的線程。

同時,我們可以看到下邊這個線程。

這個線程上,函數 ContainerExecStart 也是在處理具體請求的時候,收到了 mutex 這個參數。但不同的是,ContainerExecStart 并沒有在等待 mutex,而是已經拿到了 mutex 的所有權,并把執行邏輯轉向了 containerd 調用。關于這一點,我們可以使用代碼來驗證。

前邊我們提到過,containerd 向上通過 gRPC 對 docker daemon 提供接口。此調用棧上半部分內容,正是 docker daemon 在通過 gRPC 請求來呼叫 containerd。

2. Containerd 調用棧分析

與輸出 docker daemon 的調用棧類似,我們可以通過 kill -SIGUSR1 命令來輸出 containerd 的調用棧。不同的是,這次調用棧會直接輸出到 messages 日志。

Containerd 作為一個 gRPC 的服務器,它會在接到 docker daemon 的遠程請求之后,新建一個線程去處理這次請求。關于 gRPC 的細節,我們這里其實不用關注太多。

在這次請求的客戶端調用棧上,可以看到這次調用的核心函數是 Start 一個進程。我們在 containerd 的調用棧里搜索 Start,Process 以及 process.go 等字段,很容易發現下邊這個線程。

這個線程的核心任務,就是依靠 runC 去創建容器進程。而在容器啟動之后,runC 進程會退出。所以下一步,我們自然而然會想到,runC 是不是有順利完成自己的任務。

查看進程列表,我們會發現,系統中有個別 runC 進程,還在執行,這不是預期內的行為。容器的啟動跟進程的啟動,耗時應該是差不對的,系統里有正在運行的 runC 進程,則說明 runC 不能正常啟動容器。

什么是 Dbus

1. RunC 請求 Dbus

容器 runtime 的 runC 命令,是 libcontainer 的一個簡單的封裝。這個工具可以用來管理單個容器,比如容器創建,或者容器刪除。在上節的最后,我們發現 runC 不能完成創建容器的任務。

我們可以把對應的進程殺掉,然后在命令行用同樣的命令嘗試啟動容器,同時用 strace 追蹤整個過程。

分析發現,runC 停在了向帶有 org.free 字段的 dbus 寫數據的地方。那什么是 dbus 呢?在 Linux 上,dbus 是一種進程間進行消息通信的機制。

2. 原因并不在 Dbus

我們可以使用 busctl 命令列出系統現有的所有 bus。如下圖,在問題發生的時候,我看到客戶集群節點 Name 的編號非常大。所以我傾向于認為,dbus 某些相關的數據結構,比如 Name 耗盡了引起了這個問題。

Dbus 機制的實現,依賴于一個組件叫做 dbus-daemon。如果真的是 dbus 相關數據結構耗盡,那么重啟這個 daemon,應該是可以解決這個問題。但不幸的是,問題并沒有這么直接。重啟 dbus-daemon 之后,問題依然存在。

在上邊用 strace 追蹤 runC 的截圖中,我提到了,runC 卡在向帶有 org.free 字段的 bus 寫數據的地方。在 busctl 輸出的 bus 列表里,顯然帶有這個字段的 bus,都在被 systemd 使用。這時,我們用 systemctl daemon-reexec 來重啟 systemd,問題消失了。

所以基本上我們可以判斷一個方向:問題可能跟 systemd 有關系。

Systemd 是硬骨頭

Systemd 是相當復雜的一個組件,尤其對沒有做過相關開發工作的同學來說,比如我自己。基本上,排查 systemd 的問題,我用到了四個方法:

  • (調試級別)日志
  • core dump
  • 代碼分析
  • 以及 live debugging

其中第一個、第三個和第四個結合起來使用,讓我在經過幾天的鏖戰之后,找到了問題的原因。但是這里我們先從“沒用”的 core dump 說起。

1. 沒用的 Core Dump

因為重啟 systemd 解決了問題,而這個問題本身,是 runC 在使用 dbus 和 systemd 通信的時候沒有了響應,所以我們需要驗證的第一件事情,就是 systemd 不是有關鍵線程被鎖住了。

查看 core dump 里所有線程,只有以下一個線程并沒有被鎖住,它在等待 dbus 事件,以便做出響應。

2. 零散的信息

因為無計可施,所以只能做各種測試、嘗試。使用 busctl tree 命令,可以輸出所有 bus 上對外暴露的接口。從輸出結果看來,org.freedesktop.systemd1 這個 bus 是不能響應接口查詢請求的。

使用下邊的命令,觀察 org.freedesktop.systemd1 上接受到的所有請求,可以看到,在正常系統里,有大量 Unit 創建刪除的消息,但是有問題的系統里,這個 bus 上完全沒有任何消息。

gdbus monitor --system --dest org.freedesktop.systemd1 --object-path /org/freedesktop/systemd1

分析問題發生前后的系統日志,runC 在重復地跑一個 libcontainer_%d_systemd_test_default.slice 測試,這個測試非常頻繁,但是當問題發生的時候,這個測試就停止了。

所以直覺告訴我,這個問題可能和這個測試有很大的關系。

另外,我使用 systemd-analyze 命令,打開了 systemd 的調試日志,發現 systemd 有 Operation not supported 的報錯。

根據以上零散的知識,只能做出一個大概的結論:org.freedesktop.systemd1 這個 bus 在經過大量 Unit 創建刪除之后,沒有了響應。

而這些頻繁的 Unit 創建刪除測試,是 runC 某一個 checkin 改寫了 UseSystemd 這個函數,而這個函數被用來測試 systemd 的某些功能是否可用。UseSystemd 這個函數在很多地方被調用,比如創建容器、查看容器性能等操作。

3. 代碼分析

這個問題在線上所有 Kubernetes 集群中,發生的頻率大概是一個月兩例。問題一直在發生,且只能在問題發生之后,通過重啟 systemd 來處理,這風險極大。

我們分別給 systemd 和 runC 社區提交了 bug,但是一個很現實的問題是,他們并沒有像阿里云這樣的線上環境,他們重現這個問題的概率幾乎是零,所以這個問題沒有辦法指望社區來解決。硬骨頭還得我們自己啃。

在上一節最后,我們看到了問題出現的時候,systemd 會輸出一些 Operation not supported 報錯。這個報錯看起來和問題本身風馬牛不相及,但是直覺告訴我,這或許是離問題最近的一個地方,所以我決定,先搞清楚這個報錯因何而來。

Systemd 代碼量比較大,而報這個錯誤的地方也比較多。通過大量的代碼分析(這里略去一千字),我發現有幾處比較可疑地方,有了這些可疑的地方,接下來需要做的事情,就是等待。在等待了三周以后,終于有線上集群再次重現了這個問題。

4. Live Debugging

在征求客戶同意之后,下載 systemd 調試符號,掛載 gdb 到 systemd 上,在可疑的函數下斷點,continue 繼續執行。經過多次驗證,發現 systemd 最終踩到了 sd_bus_message_seal 這個函數里的 EOPNOTSUPP 報錯。

這個報錯背后的道理是,systemd 使用了一個變量 cookie,來追蹤自己處理的所有 dbus message。每次在加封一個新消息的時候,systemd 都會先把 cookie 這個值加一,然后再把這個 cookie 值復制給這個新的 message。

我們使用 gdb 打印出 dbus->cookie 這個值,可以很清楚看到,這個值超過了 0xffffffff。所以看起來,這個問題是 systemd 在加封過大量 message 之后,cookie 這個值 32 位溢出,新的消息不能被加封導致的。

另外,在一個正常的系統上,使用 gdb 把 bus->cookie 這個值改到接近 0xffffffff,然后觀察到,問題在 cookie 溢出的時候立刻出現,則證明了我們的結論。

5. 怎么判斷集群節點 NotReady 是這個問題導致的

首先我們需要在有問題的節點上安裝 gdb 和 systemd debuginfo,然后用命令 gdb / usr/lib / systemd / systemd 1 把 gdb attach 到 systemd,在函數 sd_bus_send 設置斷點,之后繼續執行。

等 systemd 踩到斷點之后,用 p /x bus->cookie 查看對應的 cookie 值,如果此值超過了 0xffffffff,那么 cookie 就溢出了,則必然導致節點 NotReady 的問題。確認完之后,可以使用 quit 來 detach 調試器。

問題修復

這個問題的修復,并沒有那么直截了當。原因之一是 systemd 使用了同一個 cookie 變量來兼容 dbus1 和 dbus2。

對于 dbus1 來說,cookie 是 32 位的,這個值在經過 systemd 三五個月頻繁創建刪除 Unit 之后,是肯定會溢出的;

而 dbus2 的 cookie 是 64 位的,可能到了時間的盡頭它也不會溢出。

另外一個原因是,我們并不能簡單的讓 cookie 折返,來解決溢出問題。因為這有可能導致 systemd 使用同一個 cookie 來加封不同的消息,這樣的結果將是災難性的。

最終的修復方法是,使用 32 位 cookie 來同樣處理 dbus1 和 dbus2 兩種情形。同時在 cookie 達到 0xfffffff 之后的下一個 cookie 返回 0x80000000,用最高位來標記 cookie 已經處于溢出狀態。檢查到 cookie 處于這種狀態時,我們需要檢查是否下一個 cookie 正在被其他 message 使用,來避免 cookie 沖突。

后記

這個問題根本原因肯定在 systemd,但是 runC 的函數 UseSystemd 使用不那么美麗的方法,去測試 systemd 的功能,這個函數在整個容器生命周期管理過程中,被頻繁地觸發,讓這個低概率問題的發生成為了可能。

systemd 的修復已經被紅帽接受,預期不久的將來,我們可以通過升級 systemd,從根本上解決這個問題。

責任編輯:趙寧寧 來源: 云原生運維圈
相關推薦

2019-05-17 15:16:24

Kubernetes容器集群

2019-04-29 08:41:44

K8S集群節點

2019-06-18 08:13:47

內網公網NAT

2021-08-05 06:54:05

Go切片數據

2023-05-05 06:39:52

Java工廠設計模式

2022-08-26 10:32:21

MongoDB數據庫

2020-08-03 10:00:11

前端登錄服務器

2023-04-24 08:00:00

ES集群容器

2024-11-04 08:54:30

2022-07-07 12:01:43

ATTCALDERA框架

2023-06-26 00:26:40

I/OJava字節流

2023-02-10 09:04:27

2022-06-20 09:01:23

Git插件項目

2020-05-14 16:35:21

Kubernetes網絡策略DNS

2020-02-18 16:20:03

Redis ANSI C語言日志型

2019-07-22 08:35:32

Java垃圾回收

2023-09-11 08:13:03

分布式跟蹤工具

2021-04-08 07:37:39

隊列數據結構算法

2022-08-01 11:33:09

用戶分析標簽策略

2019-08-13 15:36:57

限流算法令牌桶
點贊
收藏

51CTO技術棧公眾號

成人欧美一区二区三区视频 | 青青草原网站在线观看| 91麻豆一区二区| 国产精品观看| 亚洲男人天堂网站| 手机免费av片| 乱人伦视频在线| 国产精品短视频| 国产一区二区高清不卡| 一道本无吗一区| 国产精品久久久久久模特| 色yeye香蕉凹凸一区二区av| 无码成人精品区在线观看| 日韩一级二级| 精品国产乱码久久久久久婷婷| 亚洲 国产 欧美一区| 香蕉视频色在线观看| free性欧美16hd| 久久久精品免费观看| 91精品在线播放| 国产99久久久| 激情欧美丁香| 精品国偷自产在线视频99| 大地资源二中文在线影视观看| 99精品国产九九国产精品| 色老综合老女人久久久| 中文字幕精品无| 欧美日韩国产高清| 永久免费毛片在线播放不卡| 国产精品久久久久久亚洲av| 国产精品一区二区三区av| 日本丶国产丶欧美色综合| 亚洲 欧美 日韩 国产综合 在线| 激情成人四房播| 国产日韩欧美精品综合| 欧美高清视频一区| 狠狠人妻久久久久久综合麻豆| 久久久亚洲av波多野结衣| 国产高清视频色在线www| 中文字幕亚洲欧美在线不卡| 欧美日韩综合另类| 天堂中文在线资源| 丁香另类激情小说| 91精品中国老女人| 夜夜爽8888| 精品一区二区三区日韩| 国产美女久久精品香蕉69| 天天爱天天做天天爽| 亚洲欧美视频一区二区三区| 欧美在线视频观看| 91看片在线播放| 日韩视频一区| 97香蕉久久超级碰碰高清版| 国产成人亚洲精品自产在线| 亚洲精华国产欧美| 久久久爽爽爽美女图片| 精品无码人妻一区二区三区品| 欧美黄免费看| 欧美激情在线有限公司| 精品在线视频免费观看| 亚洲韩日在线| 97香蕉久久超级碰碰高清版| 亚洲视频 欧美视频| 三级一区在线视频先锋| 国产精自产拍久久久久久| 亚洲怡红院av| 国产成人免费在线| 国产精品一区视频网站| 日本高清中文字幕二区在线| 久久久久国产免费免费| 杨幂一区欧美专区| 亚洲wwwww| 91亚洲无吗| 欧美综合视频在线观看| 亚洲xxxx2d动漫1| 成人短视频软件网站大全app| 欧美一级黄色大片| 精品人妻一区二区三区日产| 九九亚洲视频| 久久久www成人免费精品| 麻豆成人在线视频| 一区二区高清| 国产精品久久一区| 成人av免费播放| 92精品国产成人观看免费| 日韩久久久久久久| 亚洲精品天堂| 色欧美乱欧美15图片| 亚洲精品免费一区亚洲精品免费精品一区 | av观看在线免费| 白白色 亚洲乱淫| 日韩妆和欧美的一区二区| 老司机在线视频二区| 五月天一区二区| 欧美婷婷精品激情| youjizz欧美| 一区二区中文字幕| 精品视频久久久久| 久久国产精品72免费观看| 国产精华一区| 在线观看免费版| 婷婷六月综合网| 999在线观看| 在线日本制服中文欧美| 欧美高跟鞋交xxxxhd| 成人黄色激情视频| 成人精品高清在线| 日本一区二区免费高清视频| 亚洲天堂电影| 欧美大片在线观看| 蜜桃av免费在线观看| 日韩视频久久| 日韩男人的天堂| 精品国产三区在线| 国产视频精品xxxx| 国内偷拍精品视频| 在这里有精品| 亚洲一级黄色av| 国产精品日韩av| 国产又爽又黄免费软件| 久久老女人爱爱| 成人免费毛片在线观看| 91精品福利观看| 国产一区二区三区毛片| 欧美亚韩一区二区三区| 国产成人免费在线| 欧美人与动牲交xxxxbbbb| 欧美日韩伦理一区二区| 亚洲精品www久久久| 欧美国产在线看| 精品亚洲成a人| 亚洲图片都市激情| 天堂久久午夜av| 精品一区二区三区三区| 日本一区二区三区免费视频| 国产ts人妖一区二区| av磁力番号网| 国产精品99久久免费| 日韩视频―中文字幕| 中文精品久久久久人妻不卡| 久久久国产精华| 欧美私人情侣网站| 台湾亚洲精品一区二区tv| 欧美激情视频在线| 亚洲免费黄色片| 一区二区三区在线免费视频| 最近中文字幕免费mv| 亚洲成人激情社区| 亚洲一二三在线| 自拍偷拍第八页| 亚洲国产精品黑人久久久| 欧美成人黄色网址| 日韩久久综合| 91网在线免费观看| 18+激情视频在线| 日韩一区二区三区视频在线观看 | 精品日产免费二区日产免费二区| 欧美亚洲国产成人精品| 黄网在线免费| 欧美午夜不卡视频| 99久久精品久久亚洲精品| 麻豆专区一区二区三区四区五区| 一级二级三级欧美| 国产精品日韩精品在线播放| 欧美高清视频在线| 日韩中文字幕影院| 欧美日韩国产综合视频在线观看中文| 在线观看国产免费视频 | 97人人模人人爽人人澡| 欧美精品自拍| 久久久久久a亚洲欧洲aⅴ| 欧美成人黑人| 色av吧综合网| 亚洲av永久纯肉无码精品动漫| 亚洲福利视频导航| 色婷婷av777| 久久国产夜色精品鲁鲁99| 手机福利在线视频| 9l视频自拍九色9l视频成人| 欧洲一区二区视频| 欧美尤物美女在线| 日韩欧美二区三区| 69视频免费在线观看| 国产精品久久久久aaaa| 最新日本中文字幕| 日韩电影一区二区三区四区| 99中文字幕在线观看| 综合亚洲色图| 亚洲一区二区三区sesese| 亚洲第一综合色| 日韩精品在线观看av| 亚洲精品无吗| 91精品视频免费看| а_天堂中文在线| 亚洲小视频在线观看| 国产免费一区二区三区最新不卡| 亚洲综合色在线| 91精品久久久久久久久久久久| 免费在线性爱视频| 日韩欧美黄色动漫| 色老板免费视频| 99久久久无码国产精品| 亚洲欧美视频二区| 日韩一区二区久久| 日本福利视频导航| 伊人久久大香线蕉av不卡| 亚洲xxxx视频| 蜜桃视频成人m3u8| 国内精品久久影院| 午夜视频在线看| 国产午夜精品久久久| www.国产黄色| 欧美美女网站色| 高清乱码免费看污| 亚洲成av人片在www色猫咪| 操她视频在线观看| 久久久午夜精品理论片中文字幕| 好吊操视频这里只有精品| 青青草伊人久久| 成年人视频在线免费| 亚洲午夜电影| 国产专区在线视频| 欧美激情电影| 亚洲精品不卡| 激情婷婷综合| 欧美自拍资源在线| 亚洲aaa级| 久久精品magnetxturnbtih| 伊人久久大香线蕉av超碰| 96精品久久久久中文字幕| 国产亚洲人成a在线v网站| 国产精品第1页| 国模冰冰炮一区二区| 亚洲网友自拍偷拍| 亚洲国产精品无码观看久久| 亚洲国产精品久久久久蝴蝶传媒| 日本一区二区在线视频| 亚洲精品久久久久久久久久久久久久| 91国偷自产一区二区开放时间| 亚洲国产成人精品激情在线| 亚洲a一区二区| 国产亚洲欧美久久久久| 亚洲一区二区视频在线观看| 青青草免费av| 亚洲国产综合人成综合网站| 国产真实夫妇交换视频| 亚洲国产一区二区在线播放| 日本一区二区免费在线观看| 性久久久久久久| 国产女同在线观看| 精品毛片三在线观看| 九九精品免费视频| 色国产综合视频| 波多野结衣电车| 欧美丝袜丝nylons| 国产精品欧美综合亚洲| 91精品免费观看| 午夜精品在线播放| 精品国产成人在线影院 | 日韩免费一区二区| 免费a级片在线观看| 精品亚洲一区二区| 视频免费一区| 欧美美女15p| 日韩精品美女| 国产精品白嫩美女在线观看| 欧美亚洲黄色| 5g国产欧美日韩视频| 精品精品国产毛片在线看| 久久久久久久久久久久久久一区| 精品成人影院| 99热一区二区三区| 99国产精品视频免费观看一公开| 国产91对白刺激露脸在线观看| 日本欧洲一区二区| 日韩不卡的av| 久久综合色播五月| 美女福利视频网| 亚洲一区二区精品久久av| 欧美在线观看不卡| 欧美剧情片在线观看| 亚洲国产精品视频在线| 亚洲欧美日韩综合| 好吊日视频在线观看| 午夜精品久久久久久久久久久久| 午夜欧美巨大性欧美巨大 | 欧美色资源站| 日韩欧美精品在线不卡| 欧美日韩国产高清| 国产中文一区| 色综合久久88| 色在线免费观看| 国产精品美女主播在线观看纯欲| 国产视频网站一区二区三区| 精品在线观看一区二区| 日韩av大片| 婷婷无套内射影院| 美国三级日本三级久久99| 日批免费观看视频| 超碰99在线| 国产亚洲精品日韩| 宅男网站在线免费观看| 81精品国产乱码久久久久久| 日本免费在线一区| 欧美高清视频一区二区三区在线观看| 99re66热这里只有精品8| 欧美一级艳片视频免费观看| 99草在线视频| 亚洲老头同性xxxxx| av电影高清在线观看| 国产不卡在线观看| 风间由美一区二区av101| 亚洲一区三区视频在线观看| 毛片一区二区| 天堂综合在线播放| 国产精品免费一区二区三区| 日韩精品一卡| 情侣黄网站免费看| 成人免费精品视频| 91香蕉一区二区三区在线观看 | 日韩精品成人一区| 3d成人动漫网站| 1024视频在线| 国产97在线|日韩| 精品成人自拍视频| 国产传媒久久久| 国产精品一二三四区| 亚洲女人久久久| 欧美精品丝袜中出| 国产精品久久久久久久龚玥菲 | 国产精品一区二区av白丝下载| 在线观看欧美www| 性欧美1819sex性高清| 久久五月天婷婷| 国产日韩一区二区三区在线| 艳妇乳肉豪妇荡乳xxx| 亚洲成人自拍偷拍| 人妻91麻豆一区二区三区| 久久久久久久久久久av| 成人爽a毛片| 国产96在线 | 亚洲| 99re热视频这里只精品| 国产精品一区二区三区毛片淫片 | 久久精品视频网| 欧美一二三区视频| 亚洲精品久久久一区二区三区| 久久人人爽人人爽人人片| 亚洲一区在线视频观看| 免费av网站观看| 国产91精品高潮白浆喷水| 日韩大尺度在线观看| 免费观看精品视频| 国产亚洲一本大道中文在线| 波多野结衣mp4| 色伦专区97中文字幕| 国产午夜精品一区在线观看| 久久亚洲a v| 91在线视频在线| wwwwww在线观看| 久久综合五月天| 99这里只有精品视频| 欧美a在线视频| 国产欧美精品一区aⅴ影院 | 一本一道久久久a久久久精品91 | 久久丫精品国产亚洲av不卡 | 性欧美videos另类hd| 亚洲91精品在线| 第一会所亚洲原创| 手机精品视频在线| 亚洲sss视频在线视频| 国产永久免费高清在线观看视频| 国产欧美中文字幕| 欧美午夜电影在线观看 | 91精品国产91久久综合| 粗大的内捧猛烈进出视频| 欧美视频国产精品| 看女生喷水的网站在线观看| 国产精品久久久久久久久久久久冷| 久久九九电影| wwwav国产| 亚洲欧美日韩视频一区| 国产精品视频一区视频二区 | 91丝袜美腿高跟国产极品老师 | 日本a在线观看| 中文字幕精品—区二区| 一区二区三区四区精品视频| 成人小视频在线看| 亚洲人妖av一区二区| 色资源在线观看| 91免费看国产| 视频一区视频二区在线观看| 精品爆乳一区二区三区无码av| 国产午夜精品一区理论片飘花| 久久亚洲精精品中文字幕| 成年人网站大全| 亚洲一区二区三区四区在线免费观看| 久久精品国产亚洲a∨麻豆| 粉嫩av四季av绯色av第一区| 美女高潮久久久| 手机看片久久久|