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

容器云平臺API Server卡頓問題排查

云計算
云平臺的建設(shè)過程不是一帆風(fēng)順,也不乏出現(xiàn)一些問題挑戰(zhàn),本文就針對云平臺現(xiàn)實(shí)中遇到的一個問題和大家分享。

58云計算平臺是58集團(tuán)架構(gòu)線基于Kubernetes + Docker技術(shù)為集團(tuán)內(nèi)部服務(wù)開發(fā)的一套業(yè)務(wù)實(shí)例管理平臺,它具有簡單,輕量的特點(diǎn)及高效利用物理資源,更快的部署和統(tǒng)一規(guī)范的標(biāo)準(zhǔn)化運(yùn)行環(huán)境,通過云平臺,使得服務(wù)標(biāo)準(zhǔn)化,上線流程規(guī)范化,資源利用合理化。然而云平臺的建設(shè)過程不是一帆風(fēng)順,也不乏出現(xiàn)一些問題挑戰(zhàn),本文就針對云平臺現(xiàn)實(shí)中遇到的一個問題和大家分享。

1、關(guān)于問題

1.1 問題概述

近期,很多業(yè)務(wù)同事反饋使用云平臺上線存在容器部署慢,平臺反應(yīng)慢的問題。通過詳細(xì)的問題排查定位后,最終問題得以解決。

1.2 Kubernetes基本知識

私有云平臺通過Kubernetes對容器進(jìn)行編排。Kubernetes整體架構(gòu)如下圖所示:

容器云平臺API Server卡頓問題排查

其中幾個主要的模塊的功能簡要描述如下:

  • etcd:用于Kubernetes的后端存儲。
  • Pod:Kubernetes最基本的操作單元,包含一個或多個緊密相關(guān)的容器。
  • Replication Controller:副本控制器,用來保證Deployment或者RC中副本的數(shù)量。
  • Scheduler:Kubernetes的調(diào)度器,Scheduler監(jiān)聽API Server,當(dāng)需要創(chuàng)建新的Pod時Scheduler負(fù)責(zé)選擇該P(yáng)od與哪個Node進(jìn)行綁定。
  • Kubelet:每個Node節(jié)點(diǎn)上都會有一個Kubelet負(fù)責(zé)Master下發(fā)到該節(jié)點(diǎn)的具體任務(wù),管理該節(jié)點(diǎn)上的Pod和容器。
  • API Server:對于整個Kubernetes集群而言,API Server是通過暴露Kubernetes API的方式提供給內(nèi)部組件或者外部程序調(diào)用去完成對Kubernetes的操作。各個組件之間也是通過API Server作為橋梁進(jìn)行間接通信,這種方式做到各個組件間充分解耦。

業(yè)務(wù)同事操作管理平臺發(fā)出創(chuàng)建集群請求到集群創(chuàng)建完成的整個流程如下:

  1. 業(yè)務(wù)同學(xué)操作管理平臺進(jìn)行升級操作,管理平臺通過http方式向API Server發(fā)出請求。
  2. API Server處理和解析請求參數(shù),將待創(chuàng)建的Pod信息通過API Server存儲到etcd。
  3. Scheduler通過API Server的watch機(jī)制,查看到新的Pod,嘗試為Pod綁定Node。
  4. 經(jīng)過預(yù)選篩除不合適節(jié)點(diǎn)及從待選節(jié)點(diǎn)中根據(jù)一定規(guī)則選出最適合的節(jié)點(diǎn)。
  5. 對選中的節(jié)點(diǎn)及Pod進(jìn)行binding操作,將相關(guān)的結(jié)果通過API Server存儲到etcd。
  6. 對應(yīng)Node的Kubelet進(jìn)程調(diào)用容器運(yùn)行時創(chuàng)建容器。

2. 定位問題

2.1 問題排查

從1.2可以看到,API Server在創(chuàng)建Pod過程中起到非常關(guān)鍵的中間橋梁作用,解析外部請求及讀寫etcd。因此決定首先從API Server進(jìn)程所在宿主機(jī)的各項(xiàng)性能指標(biāo)及日志方面進(jìn)行排查,看是否有所發(fā)現(xiàn)。

目前線上環(huán)境有3臺主機(jī)運(yùn)行API Server,以達(dá)到流量負(fù)載均衡的目的,異常時間段網(wǎng)卡eth2入流量如下圖所示:

容器云平臺API Server卡頓問題排查

由3臺API Server主機(jī)的監(jiān)控數(shù)據(jù),發(fā)現(xiàn)服務(wù)器A的網(wǎng)卡入流量遠(yuǎn)高于另外兩臺,說明絕大部分請求發(fā)送到了服務(wù)器A。

通過對比三臺服務(wù)器API Server 的CPU利用率,發(fā)現(xiàn)服務(wù)器A的API Server進(jìn)程CPU使用率一直保持在2000%(20核)上下波動,而另外兩臺服務(wù)器的API Server的CPU利用率沒有超過100%(1核)。進(jìn)一步證實(shí)了A的API Server進(jìn)程處理了絕大多數(shù)的請求。

查看A服務(wù)器的API Server的相關(guān)log,發(fā)現(xiàn)正在大量輸出如下的日志:

容器云平臺API Server卡頓問題排查

這個日志顯示有大量請求通過API Server到etcd查詢Pod的狀態(tài)。

對于Kubernetes后端的存儲目前采用5個etcd節(jié)點(diǎn)組成etcd集群。登陸其中一個節(jié)點(diǎn)(E1),發(fā)現(xiàn)對E1節(jié)點(diǎn)執(zhí)行etcd操作命令,比如命令:“etcdctl ls /registry/pods/default”,命令執(zhí)行也會經(jīng)常超時。如果你想和更多Kubernetes技術(shù)專家交流,可以加我微信liyingjiese,備注『加群』。群里每周都有全球各大公司的***實(shí)踐以及行業(yè)***動態(tài)。

同時對比5臺etcd節(jié)點(diǎn)的流量,發(fā)現(xiàn)有一個節(jié)點(diǎn)網(wǎng)卡入流量遠(yuǎn)高于其他四個節(jié)點(diǎn),該節(jié)點(diǎn)(E1)的etcd進(jìn)程的CPU利用率在100%左右,明顯高于剩余的4個節(jié)點(diǎn)CPU利用率。查看節(jié)點(diǎn)E1的etcd進(jìn)程日志,經(jīng)常看到如下報錯:

容器云平臺API Server卡頓問題排查

可以推斷節(jié)點(diǎn)E1的負(fù)載非常高,節(jié)點(diǎn)間同步心跳都已經(jīng)超時,無法正常的響應(yīng)外部的請求了。

2.2 問題分析

經(jīng)過上述排查,主要集中在這兩個問題上:

2.2.1負(fù)載均衡策略失效

首先可以看到對Kubernetes集群的操作請求大部分都落在某個API Server上,導(dǎo)致其中一個API Server負(fù)載很高,那么有可能負(fù)載均衡策略有些問題。那就先看看當(dāng)前負(fù)載均衡策略是如何的。

當(dāng)前我們租賃的是騰訊的機(jī)房,負(fù)載均衡策略采用的是TGW(Tencent Gateway)系統(tǒng)所自帶支持的負(fù)載均衡策略。騰訊云上有關(guān)介紹如下:

TGW負(fù)載均衡策略保證請求的分?jǐn)傓D(zhuǎn)發(fā),也會自動對resource server(RS)進(jìn)行存活檢測,每分鐘會有心跳包去對接入TGW的IP Port進(jìn)行探測。

關(guān)于TGW相關(guān)配置具體如下:

  1. 做域名解析:我們對需要訪問到API Server的物理機(jī)都做了本地DNS,將一個固定域名(D)解析到一個特定的VIP(V),而該VIP就是TGW對外提供的虛擬IP。
  2. 配置TGW服務(wù)的RS列表:將三臺API Server節(jié)點(diǎn)對應(yīng)的物理IP加入到RS列表。

正常情況下,所有需要訪問API Server的請求都先本地域名解析到虛擬IP V,將請求的數(shù)據(jù)包都發(fā)送到V,V相當(dāng)于是TGW對外的接入點(diǎn),再通過TGW內(nèi)部負(fù)載均衡策略將請求數(shù)據(jù)包進(jìn)行目的網(wǎng)絡(luò)地址轉(zhuǎn)換(DNAT),分發(fā)到不同的RS上。

經(jīng)排查,TGW的監(jiān)控檢測模塊定期向所有的RS發(fā)送心跳包,但是TGW監(jiān)控檢測模塊只能收到A服務(wù)器的回包,因此TGW認(rèn)為只有A節(jié)點(diǎn)是存活狀態(tài),所有的請求數(shù)據(jù)包最終就由TGW轉(zhuǎn)發(fā)到A服務(wù)器上了,這就是負(fù)載均衡策略失效的根本原因。

這里還有一個現(xiàn)象是為什么etcd集群中只有一個節(jié)點(diǎn)的負(fù)載很高呢?

五個節(jié)點(diǎn)的etcd集群中只有一個節(jié)點(diǎn)負(fù)載很高,其他正常,通過查看A服務(wù)器的API Server的log,可以看到的大量的讀請求都固定發(fā)送到了同一個etcd節(jié)點(diǎn)。

對于這個現(xiàn)象,可以看下API Server訪問后端存儲的源碼,目前線上Kubernetes基于v1.7.12的源碼編譯運(yùn)行,API Server訪問etcd是在內(nèi)部初始化一個etcd client端,然后通過etcd client端發(fā)送請求到etcd server端。etcd client端有v2和v3兩個版本。線上API Server使用的是v2版本客戶端。主要代碼如下: 

  1. //初始化etcd工作 
  2. func New(cfg Config) (Client, error) { 
  3. c := &httpClusterClient{//返回一個http類型的client 
  4. clientFactory: newHTTPClientFactory(cfg.transport(), cfg.checkRedirect(), cfg.HeaderTimeoutPerRequest), 
  5. rand:          rand.New(rand.NewSource(int64(time.Now().Nanosecond()))),//傳入一個當(dāng)前時間的隨機(jī)種子 
  6. selectionMode: cfg.SelectionMode, 
  7.  
  8. if err := c.SetEndpoints(cfg.Endpoints); err != nil { 
  9. return nil, err 
  10. return c, nil 
  11. //對etcd列表進(jìn)行打亂 
  12. func (c *httpClusterClient) SetEndpoints(eps []string) error { 
  13. ... 
  14. neps, err := c.parseEndpoints(eps) 
  15. c.Lock() 
  16. defer c.Unlock() 
  17. c.endpoints = shuffleEndpoints(c.rand, neps)//打亂etcd列表 
  18. c.pinned = 0 
  19. ... 
  20. return nil 
  21.  
  22. func shuffleEndpoints(r *rand.Rand, eps []url.URL) []url.URL { 
  23. p := r.Perm(len(eps))//rank庫的Perm方法可以返回[0,n)之間的隨機(jī)亂序數(shù)組 
  24. neps := make([]url.URL, len(eps)) 
  25. for i, k := range p { 
  26. neps[i] = eps[k] 
  27. return neps 
  28. }  

可以看到在初始化etcd客戶端時候會傳入一個當(dāng)前時間的隨機(jī)種子去打亂所有Endpoints(etcd節(jié)點(diǎn))的順序。

對于etcd的操作都是通過API Server內(nèi)部的etcd客戶端發(fā)送http請求到etcd Server端,最主要是調(diào)用如下方法: 

  1. func (c *httpClusterClient) Do(ctx context.Context, act httpAction) (*http.Response, []byte, error) { 
  2. ... 
  3. for i := pinned; i < leps+pinned; i++ { 
  4. k := i % leps 
  5. hc := c.clientFactory(eps[k]) 
  6. resp, body, err = hc.Do(ctx, action
  7. ... 
  8. if resp.StatusCode/100 == 5 { 
  9.   switch resp.StatusCode { 
  10.   case http.StatusInternalServerError, http.StatusServiceUnavailable: 
  11.     cerr.Errors = ... 
  12.   default
  13.     cerr.Errors = ... 
  14.   } 
  15.   ... 
  16.   continue 
  17. if k != pinned { 
  18.   c.Lock() 
  19.   c.pinned = k 
  20.   c.Unlock() 
  21. return resp, body, nil 
  22. return nil, nil, cerr 
  23. }  

該方法表明每次請求時候,會從pinned節(jié)點(diǎn)開始嘗試發(fā)送請求,如果發(fā)送請求異常,則按照初始化時候打亂順序的下一個節(jié)點(diǎn)(pinned++)開始嘗試發(fā)送數(shù)據(jù)。如此看來,如果API Server使用了某個endpoint發(fā)送數(shù)據(jù),除非用壞了這個節(jié)點(diǎn),否則會一直使用該節(jié)點(diǎn)(pinned)發(fā)送數(shù)據(jù)。這就說明了,沒有異常情況下,一個API Server就對應(yīng)往一個固定的etcd發(fā)送請求。

對于etcd集群,如果是寫請求的話,follower節(jié)點(diǎn)會把請求先轉(zhuǎn)發(fā)給leader節(jié)點(diǎn)處理,然后leader再轉(zhuǎn)發(fā)給follower同步。那么5個節(jié)點(diǎn)CPU負(fù)載不會這么不均衡,但是根據(jù)2.1排查API Server日志看到這里是大量的讀請求,相對于寫請求,讀請求是所有follower節(jié)點(diǎn)都能對外提供的。也就是大量請求由于負(fù)載均衡策略失效都轉(zhuǎn)發(fā)到A服務(wù)器,A再把查詢請求都打到其中一個固定的etcd,導(dǎo)致該節(jié)點(diǎn)忙于處理etcd查詢請求,負(fù)載就會飆高。

總的來說,TGW做負(fù)載均衡時候,由于心跳檢測模塊和其中兩個Resource Server間連接不通,導(dǎo)致誤將所有請求都轉(zhuǎn)發(fā)到其中一個API Server,而一個特定的API Server使用v2版本etcd客戶端就只會往一個固定的etcd服務(wù)端發(fā)請求,這樣整個負(fù)載均衡策略就失效了。

2.2.2 etcd存取數(shù)據(jù)緩慢

namespace未做劃分:

從2.1中查看API Server 的日志可以看出,很多get請求Pod對象信息,比如:“Get /api/v1/namespaces/default/pods?...” 這些都是從default namespace下獲取Pod信息,這就說明線上并沒有對Pod的namespace做劃分。

Kubernetes是通過namespace對容器資源進(jìn)行隔離,默認(rèn)情況下,如果未指定namespace的話,創(chuàng)建的容器都被劃分到default namespace下,因?yàn)檫@個原因也給后面往etcd中存儲容器元數(shù)據(jù)信息也留下了坑。所有的Kuberentes的元數(shù)據(jù)都存儲在etcd的/registry目錄下,整體如下圖所示:

容器云平臺API Server卡頓問題排查

Kubernetes中Pod的信息存儲在/registry/pods/#{命名空間}/#{具體實(shí)例名}的目錄結(jié)構(gòu)中,正因?yàn)槿绻恢付╪amespace的話,就會存儲到default的namespace中,也就是/registry/pods/default目錄下保存了線上全部Pod對象信息。

也就是說大量get請求Pod對象信息,由于未做namespace劃分,每次都會去訪問default子目錄,每次請求相當(dāng)于都要做全局搜索,隨著集群的增多,Pod不斷的存入到該子目錄中,搜索性能也會變得越來越差。

查詢結(jié)果未加入緩存:

從2.1中查看API Server 的日志看到很多Get/List操作,那么可以仔細(xì)看看相關(guān)方法的執(zhí)行流程,下面是List方法執(zhí)行過程中調(diào)用的中間函數(shù): 

  1.  
  2. unc (c *Cacher) GetToList(ctx context.Context, key string, resourceVersion string, pred SelectionPredicate, listObj runtime.Object) error { 
  3. if resourceVersion == "" { 
  4. return c.storage.GetToList(ctx, key, resourceVersion, pred, listObj)//直接查詢etcd 
  5. listRV, err := ParseListResourceVersion(resourceVersion) 
  6. ... 
  7. obj, exists, readResourceVersion, err := c.watchCache.WaitUntilFreshAndGet(listRV, key, trace)//從緩存中獲取 
  8. ... 
  9. return nil 
  10. }  

可以看到,GetToList方法中傳入的有個resourceVersion 參數(shù),如果設(shè)置了就會從緩存中獲取,如果不設(shè)置就會去etcd中查詢。這個也是一個關(guān)鍵點(diǎn),有關(guān)resourceVersion 的相關(guān)使用如下:

  • 不設(shè)置:通過API Server從etcd讀取。
  • 設(shè)置成0:從API Server的cache讀取,減輕API Server和etcd壓力。例如Kubelet經(jīng)常通過此方法Get Node對象,Kubernetes Infomer***次啟動時List也通過此方法獲得對象。
  • 大于0:讀取對象指定版本。

線上管理平臺通過http接口去查詢Pod信息時候是沒有設(shè)置resourceVersion,所以每次通過Get/List方法獲取資源時候都會查詢etcd,如此一來經(jīng)常大量高頻率的查詢etcd會導(dǎo)致其壓力較大,開啟緩存策略不僅可以減輕訪問etcd壓力而且還可以加快查詢速度。

總結(jié)以上兩點(diǎn):所有的請求都發(fā)往一個固定的API Server,導(dǎo)致該API Server節(jié)點(diǎn)負(fù)載較高,同時該API Server又會將查詢請求固定的發(fā)給某個etcd節(jié)點(diǎn),然而請求結(jié)果并沒有在API Server端做緩存,每次都會直接查詢etcd,在從etcd中獲取Pod信息又是從default這個大的子目錄中全局搜索,每次請求都比較費(fèi)時,這樣導(dǎo)致某一個固定的etcd一直處理大量的費(fèi)時的請求,最終將該etcd資源耗盡,負(fù)載過高,因而查詢結(jié)果不能及時返回給API Server,導(dǎo)致創(chuàng)建Pod時候拿不到相關(guān)的信息,Pod創(chuàng)建工作無法進(jìn)行,所以最終表象是集群部署長時間卡頓。

3、解決方案

切換負(fù)載均衡方案:臨時切換為DNS輪詢方式,保證每個API Server節(jié)點(diǎn)的流量均衡。同時跟進(jìn)TGW對于某些網(wǎng)段的RS和TGW服務(wù)不能探測心跳及后續(xù)改進(jìn)。

將Kubernetes中Pod按多個namespace劃分,目前線上所有的Pod都劃分到默認(rèn)的default的namespace下,每次讀取Pod信息都是從etcd檢索整個namespace,比較損耗etcd性能,目前已經(jīng)將Pod的namespace進(jìn)行細(xì)分,加快了讀取Pod信息速度同時減少了etcd性能損耗。

etcd v3版本客戶端會對Endpoints定期打亂,后續(xù)我們會升級到v3版本,這樣同一個API Server的請求就不會一直落到某一個etcd上,這樣即使負(fù)載均衡策略失效也能做到對etcd請求的分?jǐn)偂?/p>

查詢Kubernetes資源信息時帶入resourceVersion開啟緩存機(jī)制,減輕對etcd的訪問壓力。

4、總結(jié)

從API Server卡頓問題排查過程來看,潛在的問題是長期存在的,只是積累到一定量后,問題的影響才會凸顯。這就要求我們平時對Kubernetes相關(guān)組件的性能指標(biāo),日志等要保持時刻敏感,要對Kubernetes各種默認(rèn)策略及參數(shù)非常熟悉,同時對于重要功能模塊做到源碼層面了解,這樣才能規(guī)避潛在風(fēng)險和出問題后能快速定位,保證生產(chǎn)環(huán)境穩(wěn)定健康的運(yùn)行。

責(zé)任編輯:未麗燕 來源: Dockone.in
相關(guān)推薦

2020-12-10 06:46:40

容器云平臺

2025-02-20 12:11:07

WebWorker場景JS

2022-08-02 09:15:32

系統(tǒng)網(wǎng)絡(luò)前端

2018-08-01 22:52:24

微服務(wù)容器云平臺API網(wǎng)關(guān)

2019-08-16 11:48:53

容器云平臺軟件

2021-05-13 09:53:17

電腦卡頓硬盤文件夾

2016-10-11 17:38:40

WIFI網(wǎng)絡(luò)卡頓

2022-08-01 07:47:03

虛擬化容器Pod

2015-06-05 09:36:00

DaoCloudDocker容器云

2021-09-01 10:59:28

可信云

2019-11-18 23:24:52

云途騰

2017-06-14 09:00:40

容器開發(fā)人員云應(yīng)用

2023-02-16 07:24:27

VPA技術(shù)

2025-10-17 09:07:39

2025-09-09 07:15:00

JavaLinux系統(tǒng)性能

2021-11-28 21:26:39

Windows 7Windows微軟

2024-08-14 14:20:00

2021-08-31 23:09:50

微信功能技巧

2018-07-27 18:47:01

數(shù)據(jù)庫MySQL線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

精品污污网站免费看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲精品成人自拍| 国产suv精品一区二区69| 亚洲国产一区二区三区高清| 国产一区二区激情| 永久免费看片在线观看| 国产免费不卡| 亚洲日本va在线观看| 国产伦精品一区二区三区高清版| 成人a v视频| 国模一区二区三区| 中文字幕久久亚洲| 青青草视频播放| www久久久| 日本韩国欧美国产| 成人免费毛片在线观看| 欧美精品videos另类| 99综合电影在线视频| 国产专区欧美专区| 老熟妇一区二区三区| 伊人久久大香线蕉av超碰演员| 在线观看亚洲视频| 国产精品无码毛片| 欧美不卡在线观看| 欧美色综合网站| 看av免费毛片手机播放| 日本一本在线免费福利| 日本一二三不卡| 久久久久久九九| 国产 日韩 欧美 精品| 国产在线麻豆精品观看| 国产精品嫩草影院久久久| 四虎永久在线精品| 欧美午夜电影在线观看 | xxxx成人| 亚洲综合色成人| 超级碰在线观看| 免费看美女视频在线网站 | 久久免费看少妇高潮v片特黄| 西野翔中文久久精品字幕| 日韩精品一区二区三区蜜臀| 天天干天天色天天干| 久久99国产精品二区高清软件| 欧美性猛交xxxx富婆弯腰| 久久国产午夜精品理论片最新版本| 日本中文字幕在线观看| 国产精品免费视频观看| 亚洲国产一区二区在线| yiren22亚洲综合伊人22| 久久综合久久综合久久综合| 欧美激情一区二区三区在线视频 | 在线观看久久av| 加勒比精品视频| 婷婷成人综合| 亚洲区一区二区| 亚洲熟妇无码av| 国产va免费精品观看精品视频| 亚洲美女av在线播放| 国产精品久久不卡| 九色成人国产蝌蚪91| 亚洲性夜色噜噜噜7777| 91社区视频在线观看| 99久久国产综合精品成人影院| 日韩中文字幕视频在线观看| 欧美乱大交做爰xxxⅹ小说| 欧美成免费一区二区视频| 久久精品中文字幕电影| 欧美三级黄色大片| 国内激情久久| 热久久99这里有精品| 天天射天天干天天| 国产一区在线观看视频| 成人片在线免费看| 天堂√在线中文官网在线| 日本一区二区在线不卡| 亚洲福利av在线| 1区2区3区在线视频| 亚洲国产精品视频| 久久精品一区二| 91成人精品观看| 欧美mv日韩mv| 国产又粗又猛又爽又黄av | 成人精品视频在线播放| 亚洲美女尤物影院| 欧美日韩不卡在线| 日韩综合第一页| 精品国产乱码| 欧美另类暴力丝袜| 久久久成人免费视频| 激情文学综合插| 国产一区免费观看| 91精品国产综合久久久久久豆腐| 亚洲激情图片qvod| 黄色片视频在线播放| 国产精品3区| 日韩精品极品在线观看播放免费视频| 日韩欧美黄色网址| 亚洲欧洲午夜| 国产在线不卡精品| 四虎在线免费观看| 亚洲精品自拍动漫在线| 午夜肉伦伦影院| 日韩三级av高清片| 亚洲视频视频在线| 日本三级网站在线观看| 免费一级欧美片在线观看| 国产精品一区二区欧美| 98在线视频| 亚洲h动漫在线| 国产永久免费网站| 久久成人av| 久久久免费精品视频| 国产精品国产av| 国产片一区二区三区| 国产亚洲黄色片| 免费欧美网站| 精品国产一区二区三区久久久| 免费av网站在线| 成人app下载| 8x8x华人在线| 亚洲国产一区二区久久| 国产亚洲精品成人av久久ww| 国产成人精品一区二三区| 国产精品自拍毛片| 欧美h视频在线观看| 成人国产一区二区三区精品麻豆| 日韩毛片在线观看| 97人人澡人人爽人人模亚洲 | 欧美午夜精品久久久| 国产精品无码在线| 雨宫琴音一区二区在线| 99热99热| 韩国日本一区| 亚洲成人av在线| 精品无码一区二区三区电影桃花 | 91黄色免费版| 草草地址线路①屁屁影院成人| 在线成人h网| 国产精品theporn88| 色图在线观看| 欧美哺乳videos| 久久久久无码精品国产| 国产成+人+日韩+欧美+亚洲| 成人在线免费高清视频| 日韩精品一区二区三区中文| 欧美成aaa人片在线观看蜜臀| 国产精品伦一区二区三区| 最新不卡av在线| 国产精品久久久久久久99| 国产精品videosex性欧美| 91精品视频免费| 在线不卡日本v二区707| 日韩免费高清av| 国产五月天婷婷| 99久久婷婷国产综合精品| 男人的天堂狠狠干| 清纯唯美亚洲经典中文字幕| 欧洲精品毛片网站| porn亚洲| 日韩欧美一级片| 国产真实乱人偷精品视频| 99精品视频在线观看免费| 成人毛片视频网站| 欧美日韩精品一区二区视频| 国产主播欧美精品| 牛牛在线精品视频| 亚洲国产天堂网精品网站| 亚洲精品成人在线视频| 中文字幕免费不卡| 91网址在线观看精品| 亚洲无线视频| 欧美日韩免费高清| 亚洲精品大全| 国外成人免费在线播放| 日韩在线无毛| 欧美人与性动xxxx| 久久9999久久免费精品国产| www国产成人| 午夜一区二区视频| 亚洲大片在线| 色一情一乱一伦一区二区三欧美| 黄色成人小视频| 欧美激情视频在线| 国产高清美女一级毛片久久| 678五月天丁香亚洲综合网| 久久久精品视频免费| 国产日韩欧美a| 杨幂一区二区国产精品| 亚洲欧美日韩国产综合精品二区| 中文字幕欧美人与畜| 巨人精品**| 国产中文字幕日韩| 伊人久久在线| 欧美激情视频给我| 天天综合视频在线观看| 亚洲国产精品久久| 亚洲一级片免费看| 调教+趴+乳夹+国产+精品| 日本 欧美 国产| 久久美女高清视频| 女同性αv亚洲女同志| 丝袜美腿亚洲色图| 亚洲国产成人精品无码区99| 日韩中字在线| 欧美日韩亚洲综合一区二区三区激情在线| 亚洲精品一区av| 热99精品只有里视频精品| 欧美寡妇性猛交xxx免费| 中文国产成人精品| 四虎精品成人免费网站| 欧美一级理论片| 一区二区视频网站| 色婷婷综合久久久| 日韩精品久久久久久久| 亚洲欧美日韩久久| www成人啪啪18软件| 久久亚洲综合色| 国产精品扒开腿做爽爽爽a片唱戏| 精品一区二区三区免费播放| 无码人妻丰满熟妇区毛片| 亚洲视频播放| 国产一区二区三区小说| 欧美一区二区三区另类| 亚洲制服中文| 欧美色女视频| 日本公妇乱淫免费视频一区三区| 色哟哟精品丝袜一区二区| 成人在线视频电影| 日韩08精品| 51蜜桃传媒精品一区二区| 国产精品一区二区精品视频观看| 国产精品青草久久久久福利99| 超级碰碰久久| 琪琪亚洲精品午夜在线| 中文在线最新版地址| 国产91精品高潮白浆喷水| 毛片在线导航| 久久久久久久影院| a级片免费在线观看| 久久久久久久色| 国产高潮在线| 日韩美女在线看| 欧美色999| 国产精品视频区| 91麻豆精品国产综合久久久| 91久久精品国产91性色| 日韩精品一区二区三区中文在线 | 天天综合天天色| 亚洲第一男人天堂| 少妇一级淫片免费看| 日韩电视剧免费观看网站| 日韩专区第一页| 日韩精品亚洲视频| 国产一级二级三级在线观看| 伊人久久综合97精品| 欧美18hd| 久久久久久亚洲精品| 日本不卡免费高清视频在线| 奇米成人av国产一区二区三区| 成人日韩精品| 91香蕉电影院| 国内视频在线精品| 欧美日韩三区四区| 国产精品久久天天影视| 亚洲五码在线观看视频| 亚洲国产精品一区| 男人女人黄一级| 韩国av一区二区| 女教师高潮黄又色视频| 99在线精品一区二区三区| 国产又大又粗又爽的毛片| 亚洲人精品午夜| 日韩精品久久久久久久酒店| 在线一区二区三区四区五区| 国产精品国产三级国产aⅴ| 亚洲国产天堂网精品网站| www.亚洲资源| 久久久久久国产精品美女| 免费观看一级欧美片| 国产欧美一区二区三区四区| 哺乳一区二区三区中文视频| 日本一区视频在线播放| 亚洲欧洲日韩| 欧美xxxxx在线视频| 国产综合成人久久大片91| 美女又爽又黄免费| 国产精品福利一区二区| 国产午夜激情视频| 欧美三级视频在线观看| 成人小说亚洲一区二区三区| 国产一区二区三区视频在线观看 | 色偷偷久久一区二区三区| 国产免费黄色网址| 亚洲欧美第一页| 在线观看的网站你懂的| 国产精品久久久久久中文字| 国产一区二区在线视频你懂的| 亚洲精品国产一区| 99精品福利视频| 69久久精品无码一区二区| 国产色产综合产在线视频| 国产午夜福利片| 欧美一区二区黄色| 永久免费av片在线观看全网站| 69av在线视频| 8848成人影院| 一区二区三区av| 久久青草久久| wwwxx日本| 一区二区三区美女视频| 亚洲一区二区色| 亚洲人成自拍网站| 2020av在线| 国产精品区免费视频| 亚洲电影影音先锋| 依人在线免费视频| 久久青草欧美一区二区三区| 国产五月天婷婷| 精品国产欧美一区二区| 黄视频网站在线| 国产精品揄拍一区二区| 你微笑时很美电视剧整集高清不卡| 又大又硬又爽免费视频| 国产精品一二三四| 四虎免费在线视频| 91精品免费观看| 欧美jizz18性欧美| 国产美女扒开尿口久久久| 精品久久影院| 亚洲五月天综合| 国产亚洲女人久久久久毛片| 青青青国产在线 | 欧美激情免费| 国产精品免费久久久久影院| 国产影视一区| 国产免费视频传媒| 中文字幕欧美日本乱码一线二线| 正在播放亚洲精品| 自拍视频国产精品| 9999精品免费视频| 四虎精品欧美一区二区免费| 国内精品免费**视频| 99自拍视频在线| 日韩一区二区三区四区| 伊人电影在线观看| 高清av免费一区中文字幕| 伊人激情综合| 亚洲av片不卡无码久久| 日韩欧美在线视频免费观看| 黄色片在线免费观看| 国产精品福利片| 久久综合电影| 日本在线视频播放| 亚洲亚洲精品在线观看| 人妻一区二区三区四区| 97在线观看视频| 久久成人高清| 国产精品v日韩精品v在线观看| 国产精品久久久久aaaa| 国产日本精品视频| 国内精品一区二区三区四区| 亚洲毛片免费看| 日韩欧美国产片| 一区二区三区成人| 日韩在线视频第一页| 777777777亚洲妇女| 精品国产一区二区三区噜噜噜 | aaa人片在线| 亚洲少妇中文在线| 亚洲爽爆av| 日本黄色片一级片| 久久久久久久久久久99999| 在线观看国产成人| 欧美激情三级免费| 国产一区二区观看| 性久久久久久久久久久久久久| 亚洲国产乱码最新视频| 国产三级视频在线播放线观看| 欧美激情第8页| 国产精品扒开腿做爽爽爽a片唱戏| 日韩欧美成人精品| 免费a在线看| 国产激情视频一区二区三区欧美 | 天天色天天综合| 日韩欧美高清dvd碟片| 欧美电影免费看| 毛片在线视频观看| 久久久亚洲午夜电影| 国产免费一区二区三区免费视频| 97成人精品区在线播放| 久久资源中文字幕| 无码人妻精品一区二区三应用大全| 欧美日韩国产美| 丝袜老师在线| 欧美 日韩 国产精品| 国产欧美日韩视频一区二区| 高潮毛片7777777毛片| 国产精品免费视频久久久| 亚洲国产专区|