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

基于Docker持續(xù)交付平臺建設(shè)的實踐

云計算
基于Docker容器技術(shù),運維技術(shù)團隊開發(fā)了五阿哥網(wǎng)站的容器云平臺。結(jié)合五阿哥容器云平臺和Docker容器技術(shù)的實踐,本文先介紹如何實現(xiàn)7*24小時“一站式”的持續(xù)交付,實現(xiàn)產(chǎn)品的上線。

[[212695]]

作為創(chuàng)業(yè)公司和推行DevOps工程師們來說,都遇到過這樣的問題:

1. 硬件資源利用率的問題,造成部分成本的浪費

在網(wǎng)站功能中不同的業(yè)務(wù)場景有計算型的,有IO讀寫型的,有網(wǎng)絡(luò)型,有內(nèi)存型的,集中部署應(yīng)用就會導(dǎo)致資源利用率不合理的問題。比如,一個機器上部署的服務(wù)都是內(nèi)存密集型,那么CPU資源就都很容易浪費了。

2. 單物理機多應(yīng)用無法對無法進行有效的隔離,導(dǎo)致應(yīng)用對資源的搶占和相互影響

一個物理機器跑多個應(yīng)用,無法進行所使用的CPU,內(nèi)存,進程進行限制,如果一個應(yīng)用出現(xiàn)對資源的搶占問題,就會引起連鎖反應(yīng),最終導(dǎo)致網(wǎng)站部分功能不可用。

3. 環(huán)境、版本管理復(fù)雜,上線部署流程缺乏,增加問題排查的復(fù)雜度

由于內(nèi)部開發(fā)流程的不規(guī)范,代碼在測試或者上線過程中,對一些配置項和系統(tǒng)參數(shù)進行隨意的調(diào)整,在發(fā)布時進行增量發(fā)布,一旦出現(xiàn)問題,就會導(dǎo)致測試的代碼和線上運行的代碼是不一致的,增加了服務(wù)上線的風(fēng)險,也增加了線上服務(wù)故障排查的難度。

4. 環(huán)境不穩(wěn)定,遷移成本高,增加上線風(fēng)險

在開發(fā)過程中存在多個項目并行開發(fā)和服務(wù)的依賴問題,由于環(huán)境和版本的復(fù)雜性很高,不能快速搭建和遷移一個環(huán)境,導(dǎo)致無法在測試環(huán)境中無法模擬出線上的流程進行測試,很多同學(xué)在線上環(huán)境進行測試,這里有很高的潛在風(fēng)險,同時導(dǎo)致開發(fā)效率降低。

5. 傳統(tǒng)虛擬機和物理機占用空間大,啟動慢,管理復(fù)雜等問題

傳統(tǒng)虛擬機和物理機在啟動過程進行加載內(nèi)核,執(zhí)行內(nèi)核和init進行,導(dǎo)致在啟動過程占用很長時間,而且在管理過程中會遇到各種各樣的管理問題。

基于Docker容器技術(shù),運維技術(shù)團隊開發(fā)了五阿哥網(wǎng)站的容器云平臺。通過容器云平臺95%的應(yīng)用服務(wù)已經(jīng)實現(xiàn)容器化部署。這些應(yīng)用支持業(yè)務(wù)按需拓展,秒級伸縮,提供與用戶友好的交互過程,規(guī)范了測試和生產(chǎn)的發(fā)布流程,讓開發(fā)和測試同學(xué)從基礎(chǔ)的環(huán)境配置和發(fā)布解放出來,使其更聚焦自己的項目開發(fā)和測試。結(jié)合五阿哥容器云平臺和Docker容器技術(shù)的實踐,本文先介紹如何實現(xiàn)7*24小時“一站式”的持續(xù)交付,實現(xiàn)產(chǎn)品的上線。

容器云平臺架構(gòu)圖

容器云平臺架構(gòu)圖

一、Docker鏡像標(biāo)準(zhǔn)化

眾所周知,Docker的鏡像是分層的。對鏡像分層進行約定:

  • 第一層是操作系統(tǒng)層,由CentOS/Alpine等基礎(chǔ)鏡像構(gòu)成,安裝一些通用的基礎(chǔ)組件;
  • 第二層是中間件層,根據(jù)不同的應(yīng)用程序,安裝它們運行時需要使用到的各種中間件和依賴軟件包,如,Nginx、Tomcat等;
  • 第三層是應(yīng)用層,這層僅包含已經(jīng)打好包的各應(yīng)用程序代碼。

Docker Image分層

Docker Image分層

經(jīng)驗總結(jié):如何讓自己的鏡像變的更小,PUSH的更快?

Docker Image優(yōu)化前后對比

Docker Image優(yōu)化前后對比

  • Dockerfile構(gòu)建應(yīng)用鏡像,在中間件層遇到一些需要安裝的軟件包時,盡可能的使用包管理工具(如yum)或以git clone方式下載源碼包進行安裝,目的是將軟件包的copy和安裝控制在同一層,軟件部署成功后清除一些無用的rpm包或源碼包,讓基礎(chǔ)鏡像的尺寸更小。
  • Java應(yīng)用鏡像中并沒有將JDK軟件包打入鏡像,將JDK部署在每臺宿主上,在運行鏡像時,通過掛載目錄的方式將宿主機上的Java家目錄掛載至容器指定目錄下。因為它會把基礎(chǔ)鏡像撐得非常大。
  • 在構(gòu)建應(yīng)用鏡像時,Docker會對這兩層進行緩存并直接使用,僅會重新創(chuàng)建代碼出現(xiàn)變動的應(yīng)用層,這樣就提高了應(yīng)用鏡像的構(gòu)建速度和構(gòu)建成功后向鏡像倉庫推送的速度,從整體流程上提升了應(yīng)用的部署效率。

二、容器的編排管理

編排工具的選型:

Docker編排工具對比

Docker編排工具對比

Rancher圖形化管理界面,部署簡單、方便,可以與AD、LDAP、GitHub集成,基于用戶或用戶組進行訪問控制,快速將系統(tǒng)的編排工具升級至Kubernetes或者Swarm,同時有專業(yè)的技術(shù)團隊進行支持,降低容器技術(shù)入門的難度。

Rancher架構(gòu)圖

Rancher架構(gòu)圖

基于以上優(yōu)點我們選擇Rancher作為我們?nèi)萜髟破脚_的編排工具,在對應(yīng)用的容器實例進行統(tǒng)一的編排調(diào)度時,配合Docker-Compose組件,可以在同一時間對多臺宿主機執(zhí)行調(diào)度操作。同時,在服務(wù)訪問出現(xiàn)峰值和低谷時,利用特有的rancher-compose.yml文件調(diào)用“SCALE”特性,對應(yīng)用集群執(zhí)行動態(tài)擴容和縮容,讓應(yīng)用按需求處理不同的請求。https:/zhuanlan.zhihu.com/p/29093407

容器網(wǎng)絡(luò)模型選型:

Docker 網(wǎng)絡(luò)對比

Docker 網(wǎng)絡(luò)對比

由于后端開發(fā)基于阿里的HSF框架,生產(chǎn)者和消費者之間需要網(wǎng)絡(luò)可達,對網(wǎng)絡(luò)要求比較高,需要以真實IP地址進行注冊和拉取服務(wù)。所以在選擇容器網(wǎng)絡(luò)時,我們使用了Host模式,在容器啟動過程中會執(zhí)行腳本檢查宿主機并分配給容器一個獨立的端口,來避免沖突的問題。

三、持續(xù)集成與持續(xù)部署

持續(xù)集成,監(jiān)測代碼提交狀態(tài),對代碼進行持續(xù)集成,在集成過程中執(zhí)行單元測試,代碼Sonar和安全工具進行靜態(tài)掃描,將結(jié)果通知給開發(fā)同學(xué)同時部署集成環(huán)境,部署成功后觸發(fā)自動化測試(自動化測試部分后續(xù)會更新)。

持續(xù)集成

持續(xù)集成

靜態(tài)掃描結(jié)果:

靜態(tài)掃描結(jié)果

持續(xù)部署,是一種能力,這種能力非常重要,把一個包快速部署在你想要的地方。平臺采用分布式構(gòu)建、部署,Master管理多個Slave節(jié)點,每個Slave節(jié)點分屬不同的環(huán)境。在Master上安裝并更新插件、創(chuàng)建job、管理各開發(fā)團隊權(quán)限。Slave用于執(zhí)行job。

持續(xù)部署

持續(xù)部署

基于上述架構(gòu),我們定義了持續(xù)部署規(guī)范的流程:

  1. 開發(fā)同學(xué)向GitLab提交代碼;
  2. 拉取項目代碼和配置項文件,執(zhí)行編譯任務(wù);
  3. 拉取基礎(chǔ)鏡像,將編譯好的應(yīng)用包打入生成最新的應(yīng)用鏡像,推送到鏡像倉庫;
  4. 根據(jù)當(dāng)前應(yīng)用及所屬環(huán)境定制化生成docker-compose.yml文件,基于這個文件執(zhí)行rancher-compose命令,將應(yīng)用鏡像部署到預(yù)發(fā)環(huán)境(發(fā)布生產(chǎn)前的測試環(huán)境,相關(guān)配置、服務(wù)依賴關(guān)系和生產(chǎn)環(huán)境一致)。
  5. 預(yù)發(fā)環(huán)境測試通過后將應(yīng)用鏡像部署至線上環(huán)境,測試結(jié)果通知后端測試同學(xué)。

四、容器的運行管理

應(yīng)用容器現(xiàn)在已經(jīng)部署到線上環(huán)境,那么在整個容器的生命周期中,還需要解決下面兩個問題:

  1. 如何保存應(yīng)用程序產(chǎn)生的運行日志和其它業(yè)務(wù)日志;
  2. 如何在后端服務(wù)出現(xiàn)變化后nginx能夠自動發(fā)現(xiàn)并完成配置更新。

五、日志管理

容器在運行時會在只讀層之上創(chuàng)建讀寫層,所有對應(yīng)用程序的寫操作都在這層進行。當(dāng)容器重啟后,讀寫層中的數(shù)據(jù)(包含日志)也會一并被清除。雖然可以通過將容器中日志目錄掛載到宿主機解決此類問題,但當(dāng)容器在多個宿主機間頻繁漂移時,每個宿主機上都會有留存應(yīng)用名的部分日志,增加了開發(fā)同學(xué)查看、排查問題的難度。

綜上所屬,日志服務(wù)平臺作為五阿哥網(wǎng)站日志倉庫,將應(yīng)用運行過程中產(chǎn)生的日志統(tǒng)一存儲,并且支持多種方式的查詢操作。

日志管理

日志管理

通過在日志服務(wù)的管理界面配置日志采集路徑,在容器中部署Agent把應(yīng)用日志統(tǒng)一投遞到Logstore中,再在Logstore中配置全文索引和分詞符,以便開發(fā)同學(xué)能夠通過關(guān)鍵字搜索、查詢想要的日志內(nèi)容。

經(jīng)驗總結(jié):如何避免日志的重復(fù)采集問題?

日志服務(wù)的agent需要在配置文件“ilogtailconfig.json”中增加配置參數(shù)“checkpoint_filename”,指定checkpoint文件生成的絕對路徑,并且將此路徑掛載至宿主機目錄下,確保容器在重啟時不會丟失checkpoint文件,不會出現(xiàn)重復(fù)采集問題。

六、服務(wù)的注冊

etcd是一個具備高可用性和強一致性的鍵值存儲倉庫,它使用類似于文件系統(tǒng)的樹形結(jié)構(gòu),數(shù)據(jù)全部以“/”開頭。etcd的數(shù)據(jù)分為兩種類型:key和directories,其中key下存儲單獨的字符串值,directories下則存放key的集合或者其他子目錄。

應(yīng)用注冊

應(yīng)用注冊

在五阿哥環(huán)境中,每個向etcd注冊的應(yīng)用服務(wù),它們的根目錄都以”/${APPNAME}${ENVIRONMENT}”命名。根目錄下存儲每個應(yīng)用實例的Key信息,它們都以“${IP}-${PORT}”的方式命名。

下圖是使用上述約定,存儲在etcd上某應(yīng)用實例的數(shù)據(jù)結(jié)構(gòu):

etcd數(shù)據(jù)存儲結(jié)構(gòu)

etcd數(shù)據(jù)存儲結(jié)構(gòu)

可以看到我是使用get方法向etcd發(fā)送請求的,請求的是部署在預(yù)發(fā)環(huán)境(PRE)的搜索服務(wù)(search);在它的根目錄“/search_PRE”下,僅存儲了一個應(yīng)用實例的信息,這個實例的key是“172.18.100.31-86”;對應(yīng)的value是“172.18.100.31:86‘’,整個注冊過程是這樣的:

  1. 通過代碼為容器應(yīng)用程序生成隨機端口,和宿主機正在使用的端口進行比對,確保端口沒有沖突后寫入程序配置文件;
  2. 把通過Python和etcd模塊編寫的服務(wù)注冊工具集成在腳本中,將IP地址和上一步獲取的隨機端口以參數(shù)的方式傳遞給服務(wù)注冊工具;
  3. 待應(yīng)用程序完全啟動后,由服務(wù)注冊工具以約定好的數(shù)據(jù)結(jié)構(gòu)將應(yīng)用實例的寫入etcd集群,完成服務(wù)注冊工作;
  4. 容器定時向etcd發(fā)送心跳,報告存活并刷新TTL時間;
  5. 容器腳本捕獲Rancher發(fā)送至應(yīng)用實例的singnal terminal信號,在接收到信號后向etcd發(fā)送delete請求刪除實例的數(shù)據(jù)。

注:在TTL基礎(chǔ)上增加主動清除功能,在服務(wù)正常釋放時,可以立刻清除etcd上注冊信息,不必等待ttl時間。

經(jīng)驗總結(jié):容器在重啟或者意外銷毀時,讓我們一起看一下這個過程中容器和注冊中心都做了什么事情?

應(yīng)用在注冊是攜帶key和value時攜帶了TTL超時屬性,就是考慮到當(dāng)服務(wù)集群中的實例宕機后,它在etcd中注冊的信息也隨之失效,若不予清除,失效的信息將會成為垃圾數(shù)據(jù)被一直保存,而且配置管理工具還會把它當(dāng)做正常數(shù)據(jù)讀取出來,寫入web server的配置文件中。要保證存儲在etcd中的數(shù)據(jù)始終有效,就需要讓etcd主動釋放無效的實例信息,來看一下注冊中心刷新的機制,代碼直接奉上:

  1. #!/usr/bin/env 
  2. python 
  3. import etcd 
  4. import sys 
  5. arg_l=sys.argv[1:] 
  6. etcdetcd_clt=etcd.Client(host='172.18.0.7'
  7. def 
  8. set_key(key,value,ttl=10): 
  9. try: 
  10. return 
  11. etcd_clt.write(key,value,ttl) 
  12. except TypeError: 
  13. print 'key or vlaue is null' 
  14. def 
  15. refresh_key(key,ttl=10): 
  16. try: 
  17. return 
  18. etcd_clt.refresh(key,ttl) 
  19. except TypeError: 
  20.  print 'key is null' 
  21. def 
  22. del_key(key): 
  23. try: 
  24. return etcd_clt.delete(key) 
  25. except TypeError: 
  26. print 'key is null' 
  27. if arg_l: 
  28. if len(arg_l) == 3: 
  29. key,value,ttl=arg_l 
  30. set_key(key,value,ttl) 
  31. elif len(arg_l) == 2: 
  32. key,ttl=arg_l 
  33. refresh_key(key,ttl) 
  34. elif len(arg_l) == 1: 
  35. key=arg_l[0] 
  36. del_key(key) 
  37. else: 
  38. raise TypeError,'Only three 
  39. parameters are needed here' 
  40. else: 
  41. raise Exception('args is null') 

七、服務(wù)的發(fā)現(xiàn)

Confd是一個輕量級的配置管理工具,支持etcd作為后端數(shù)據(jù)源,通過讀取數(shù)據(jù)源數(shù)據(jù),保證本地配置文件為最新;不僅如此 ,它還可以在配置文件更新后,檢查配置文件語法有效性,以重新加載應(yīng)用程序使配置生效。這里需要說明的是,Confd雖然支持rancher作為數(shù)據(jù)源,但考慮易用性和擴展性等原因,最終我們還是選擇了etcd。

和大多數(shù)部署方式一樣,我們把Confd部署在web server所在的ECS上,便于Confd在監(jiān)測到數(shù)據(jù)變化后及時更新配置文件和重啟程序。Confd的相關(guān)配置文件和模板文件部署在默認(rèn)路徑/etc/confd下,目錄結(jié)構(gòu)如下:

  1. /etc/confd/ 
  2. ├── conf.d 
  3. ├── confd.toml 
  4. └── templates 

confd.toml是Confd的主配置文件,使用TOML格式編寫,因為我們etcd是集群部署,有多個節(jié)點,而我又不想把Confd的指令搞的又臭又長,所以將interval、nodes等選項寫到了這個配置文件里。

cond.d目錄存放web server的模板配置源文件,也使用TOML格式編寫。該文件用于指定應(yīng)用模板配置文件路徑(src)、應(yīng)用配置文件路徑(dest)、數(shù)據(jù)源的key信息(keys)等。

Templates目錄存放web server下每個應(yīng)用的模板配置文件。它使用Go支持的text/template語言格式進行編寫。在confd從etcd中讀取到最新應(yīng)用注冊信息后,通過下面的語句寫入模板配置文件中:

  1. {{range getvs "/${APP_NAME}/*"}} 
  2. server {{.}}; 
  3. {{end}} 

服務(wù)發(fā)現(xiàn)

服務(wù)發(fā)現(xiàn)

通過Supervisor管理Confd進程。Confd在運行后會每隔5秒對etcd進行輪詢,當(dāng)某個應(yīng)用服務(wù)的K/V更新后,Confd會讀取該應(yīng)用存儲在etcd中的數(shù)據(jù),寫入到模板配置文件中,生成這個應(yīng)用配置文件,最后由Confd將配置文件寫入到目標(biāo)路徑下,重新加載Nginx程序使配置生效。

責(zé)任編輯:趙寧寧 來源: Docker
相關(guān)推薦

2021-06-18 09:00:00

云計算開發(fā)存儲庫

2015-09-29 10:08:26

DockerJava持續(xù)集成

2017-08-13 08:30:06

DevOps持續(xù)交付IT

2016-07-12 17:29:40

Docker阿里云技術(shù)峰會

2017-08-19 14:54:34

DevOps持續(xù)交付IT

2018-04-24 09:00:00

開發(fā)自動化軟件架構(gòu)

2016-01-07 10:29:36

MesosDocker持續(xù)交付

2017-02-27 18:28:45

持續(xù)交付部署

2017-12-24 21:29:18

OpenShift持續(xù)交付集群

2023-09-13 07:19:46

數(shù)據(jù)開發(fā)平臺治理平臺

2023-01-16 08:00:00

2017-02-14 20:15:15

docker容器持續(xù)交付

2019-08-16 11:48:53

容器云平臺軟件

2021-07-23 10:17:17

網(wǎng)絡(luò)攻擊存儲供應(yīng)鏈

2016-01-14 10:02:54

DockerOpenStack私有云

2017-02-27 18:35:23

集成交付部署

2022-06-13 07:02:02

Zadig平臺自動化

2016-08-05 17:19:37

持續(xù)集成持續(xù)交付系統(tǒng)運維

2023-02-28 07:01:11

分布式緩存平臺

2022-12-29 09:13:02

實時計算平臺
點贊
收藏

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

大荫蒂欧美视频另类xxxx| 男女男精品网站| 欧美怡红院视频| 五月婷婷综合色| 一区二区三区亚洲视频| 婷婷成人基地| 精品国产一区二区三区忘忧草| 国产中文字幕乱人伦在线观看| 天堂a中文在线| 丝袜美腿一区二区三区| 久久久成人精品| 免费的av网站| 成人短视频软件网站大全app| 夜夜夜精品看看| 欧美极品色图| 99精品在线看| 久久只有精品| 欧美成人精品h版在线观看| 一级欧美一级日韩片| a∨色狠狠一区二区三区| 尤物av一区二区| 日本欧美精品久久久| www日本高清视频| 三级欧美韩日大片在线看| 日韩在线播放一区| 黄色a一级视频| 国产区一区二| 色播五月激情综合网| 欧美视频在线第一页| 国产高清视频在线观看| 国产v综合v亚洲欧| 国产精品一区二区久久久| 欧美黄色一级网站| 精品免费视频| 日韩黄在线观看| 四川一级毛毛片| 国产精品成人国产| 日本韩国一区二区三区| 国产精品裸体瑜伽视频| 麻豆视频在线观看免费| 国产午夜三级一区二区三| 国产精品一区二区三区免费观看| 国产又大又黄又爽| 青青草伊人久久| 日本欧美爱爱爱| 日韩欧美三级视频| 亚洲大胆视频| 欧美精品国产精品日韩精品| 午夜三级在线观看| 欧美老女人另类| 亚洲欧美激情在线视频| 网站免费在线观看| 日本欧美韩国国产| 日韩成人高清在线| 免费a v网站| 动漫3d精品一区二区三区乱码| 欧美一级理论性理论a| 九九热精品在线播放| 亚洲国产尤物| 欧美三级日本三级少妇99| 日韩手机在线观看视频| 欧美舌奴丨vk视频| 色婷婷精品久久二区二区蜜臂av | 国内精品400部情侣激情| 四虎永久免费网站| av在线日韩国产精品| 国产亚洲精品免费| 欧美日韩国产精品一卡| 男人的天堂在线免费视频| 2014亚洲片线观看视频免费| 久精品国产欧美| 青青青草原在线| 久久久久国产成人精品亚洲午夜 | 91国内在线播放| 日日夜夜亚洲精品| 欧美一级高清片| av天堂一区二区| 日韩精品福利一区二区三区| 亚洲免费视频在线观看| 国产毛片欧美毛片久久久| 日韩欧美自拍| 精品少妇一区二区30p| 国产亚洲欧美精品久久久www | 国产嫩草影院久久久久| 亚洲三级一区| av在线app| 性做久久久久久免费观看| 国产91对白刺激露脸在线观看| 成人激情综合| 91精品国产色综合久久| 最新国产精品自拍| 神马电影久久| 久久中文字幕在线| 日本高清www免费视频| 日本伊人色综合网| 国产91免费视频| 激情小视频在线观看| 亚洲欧洲国产日本综合| av免费看网址| 国产成人福利夜色影视| 日韩精品一区国产麻豆| 国精产品一区一区三区免费视频| 99国内精品久久久久久久| 久久久久久亚洲精品| 国产超碰人人爽人人做人人爱| 蜜芽一区二区三区| 国产在线一区二区三区四区| 成人p站proumb入口| 洋洋av久久久久久久一区| 国产成人久久777777| 狂野欧美xxxx韩国少妇| 亚洲精品视频网上网址在线观看| 四虎884aa成人精品| 亚洲一区二区伦理| 亚洲午夜精品久久久久久性色| 自拍偷拍第9页| 国产日韩欧美一区| 91蜜桃网站免费观看| 黄色视屏网站在线免费观看| 一区二区在线看| 特级丰满少妇一级| 人人精品亚洲| 欧美激情免费观看| 在线观看日韩一区二区| 26uuu成人网一区二区三区| 91九色国产ts另类人妖| 日本精品不卡| 亚洲国产精品中文| 久久精品99国产精| 激情综合色综合久久| 快播亚洲色图| 91福利在线尤物| 欧美一级艳片视频免费观看| 内射毛片内射国产夫妻| 国产精品日本| 国产精品嫩草在线观看| 成人日批视频| 欧美男人的天堂一二区| 一区二区精品免费| 国产欧美日本| 国产成人精品福利一区二区三区| 国产美女福利在线| 欧美日韩在线一区二区| 女女互磨互喷水高潮les呻吟| 亚洲欧洲日本一区二区三区| 成人性色av| 调教一区二区| 欧美tickling挠脚心丨vk| 中文字幕亚洲欧美日韩| 精品一区二区在线看| 亚洲视频电影| 四虎国产精品永久在线国在线| 在线免费观看羞羞视频一区二区| 波多野结衣不卡| 国产喂奶挤奶一区二区三区| 日本xxxxxxx免费视频| 九热爱视频精品视频| 欧美自拍视频在线| 日韩a级作爱片一二三区免费观看| 五月天中文字幕一区二区| 国产艳妇疯狂做爰视频| 影音先锋亚洲一区| www.色日本| 亚洲尤物在线| 久久99精品久久久久久久青青日本| 免费在线国产视频| 亚洲电影免费观看高清| 亚洲免费激情视频| 久久亚洲精品国产精品紫薇| 国产成人精品视频ⅴa片软件竹菊| 国产精品免费99久久久| 国产精品99久久久久久白浆小说| 二人午夜免费观看在线视频| 欧美日韩激情在线| 少妇视频一区二区| 国产乱人伦偷精品视频免下载| 992tv成人免费观看| 97视频一区| 青草青草久热精品视频在线观看| 国产最新视频在线| 欧美精品九九99久久| 欧美日韩在线视频免费播放| 成人综合婷婷国产精品久久免费| 国内性生活视频| 欧美呦呦网站| 91精品天堂| 成人国产二区| 久久精品福利视频| 色噜噜一区二区三区| 色天天综合久久久久综合片| 国产黄色片在线| 国产精品亚洲а∨天堂免在线| 成人午夜视频在线观看免费| 日韩理论电影中文字幕| 国产日韩欧美中文在线播放| 日本欧美电影在线观看| 亚洲欧美综合区自拍另类| 91成品人影院| 亚洲一区二区影院| 一级特黄曰皮片视频| 国产激情一区二区三区| 免费在线观看日韩视频| 中文字幕免费一区二区| 欧美激情视频一区二区三区| 成人动漫视频在线观看| 日本免费在线精品| 福利网站在线观看| 中文字幕日韩欧美在线| 欧美一级性视频| 欧美区一区二区三区| 人人干人人干人人干| 亚洲欧美日韩系列| 久久久久亚洲av无码a片| 国产99精品国产| 男女男精品视频站| 99精品99| 永久免费看av| 色135综合网| 久久99国产精品| 日韩成人在线观看视频| 国产精品久久久久一区二区| 久久青草伊人| 欧美日韩国产成人在线观看| 18免费在线视频| 精品一区二区亚洲| 欧美 中文字幕| 91精品免费在线观看| 欧美三级网站在线观看| 黄色成人在线免费| xxxx 国产| 一区二区三区中文字幕精品精品 | 国产一区 在线播放| 日韩成人精品一区| 日韩电影在线播放| 九一精品国产| 欧美精品久久久| 农村少妇一区二区三区四区五区| 97自拍视频| 久久久久久亚洲精品美女| 国产精品美女在线观看| 午夜欧美巨大性欧美巨大 | 日韩精品一区二区三区av| 57pao国产成人免费| 91老司机福利在线| 国内揄拍国内精品| 成人黄色动漫| 97在线视频免费| 在线黄色的网站| 欧美一级视频一区二区| 香蕉伊大人中文在线观看| 91大神在线播放精品| 国产调教在线| 91av视频在线播放| 日本黄色免费在线| 欧美在线观看日本一区| 美女一区网站| 国产成人精品a视频一区www| 欧美一级大黄| 国产精品美女久久久久久免费| 日本综合视频| 国产日韩欧美在线观看| 国产在线不卡一区二区三区| 1卡2卡3卡精品视频| 一区二区三区免费在线看| av一区观看| 秋霞在线一区| 日韩精品一区二区三区外面 | 日韩网红少妇无码视频香港| 午夜不卡av在线| 区一区二在线观看| 欧美三级韩国三级日本三斤| 国产精品视频一区二区三区,| 欧美一级理论片| 日韩中文字幕免费在线观看| 日韩国产激情在线| 91大神在线网站| 欧美成人午夜免费视在线看片| 欧美家庭影院| 欧美亚洲国产另类| 狠狠久久综合| 成人黄动漫网站免费| 日韩av中文字幕一区| 日韩欧美亚洲日产国产| 香蕉视频国产精品 | 首页国产欧美久久| 久热精品在线观看视频| 国产成人在线观看免费网站| 玖玖爱在线精品视频| 欧美高清在线精品一区| a级片在线观看免费| 色天使久久综合网天天| 国产色综合视频| 日韩精品视频观看| 黄色免费在线播放| 精品自在线视频| 国产精品扒开腿做爽爽爽视频软件| 成人a免费视频| 久久aimee| 亚洲砖区区免费| 亚洲美女一区| 午夜一区二区视频| 99久久精品国产麻豆演员表| 波多野结衣欲乱| 精品久久久久久久久久久久久久 | 日韩欧美精品在线| 男人的天堂在线免费视频| 欧美猛交免费看| 六九午夜精品视频| 久久久www免费人成黑人精品| 999成人网| 情侣黄网站免费看| 国产91精品久久久久久久网曝门| 亚洲第一综合网| 黄色精品在线看| av片免费播放| 中文字幕亚洲综合久久| 黄色激情在线播放| 91久久伊人青青碰碰婷婷| 欧美h版在线| 免费国产成人av| 99久久国产综合色|国产精品| 午夜免费激情视频| 欧美色图一区二区三区| 亚洲人妻一区二区三区| 欧美巨乳在线观看| 日韩毛片免费视频一级特黄| 欧美一级爽aaaaa大片| 亚洲日本激情| 年下总裁被打光屁股sp| 亚洲欧美激情插| 亚洲天堂美女视频| 成人欧美一区二区三区1314| 国产伦精品一区二区三区视频我| 日韩欧美亚洲国产另类| 精品黄色免费中文电影在线播放| 国产精品扒开腿做爽爽爽视频 | 日韩欧美国产麻豆| 精品孕妇一区二区三区| 国产日韩亚洲欧美| 久久婷婷蜜乳一本欲蜜臀| 日本免费观看网站| 久久婷婷国产综合精品青草| 黄色片视频网站| 亚洲国产精品成人精品| 999av小视频在线| 国产精品免费一区二区| 伊人久久综合| 性折磨bdsm欧美激情另类| 亚洲精品第1页| 99热这里是精品| 欧美另类在线播放| 日韩成人在线观看视频| 成人在线观看毛片| 国产成人精品影院| 精品人妻在线播放| 亚洲成av人片在线观看香蕉| 春色校园综合激情亚洲| 精品欧美国产| 久久国产成人| 香蕉视频久久久| 91 com成人网| 女子免费在线观看视频www| 97视频资源在线观看| 亚洲免费成人| www在线观看免费视频| 欧美亚洲一区三区| 黄网站视频在线观看| 91在线在线观看| 中文亚洲欧美| 中文字幕人妻一区二区三区在线视频| 在线观看av不卡| 黄色免费网站在线观看| 国产91精品入口17c| 国产情侣久久| 黑人と日本人の交わりビデオ| 欧美精品777| 爱情岛亚洲播放路线| 久久久久久高清| 久久99精品国产麻豆婷婷洗澡| avtt天堂在线| 日韩精品视频在线观看网址 | 日本大香伊一区二区三区| gogogo高清在线观看免费完整版| 91视频国产高清| 夜夜嗨一区二区三区| 日本少妇xxxxx| 日韩欧美中文字幕公布| 欧美a级在线观看| 亚洲精品欧洲精品| 成人丝袜高跟foot| 中文字幕日本人妻久久久免费| 久久伊人免费视频| 色狼人综合干| 一级网站在线观看| 精品久久久久久久久国产字幕| 蜜桃视频在线观看www社区| 国产精品美女久久久久av福利| 日韩二区三区四区| 九九久久免费视频| 中文字幕av一区二区三区谷原希美|