獨(dú)立配置中心k8s作為配置中心" />

国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當(dāng)前位置:首頁 > 科技  > 軟件

摸魚心法第一章——和配置文件說拜拜

來源: 責(zé)編: 時間:2023-08-05 11:44:34 5386觀看
導(dǎo)讀為了能摸魚我們團(tuán)隊(duì)做了容器化,但是帶來的問題是服務(wù)配置文件很麻煩,然后大家在群里進(jìn)行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨(dú)立配置中心和k8s作為配置中心的區(qū)別
獨(dú)立配置中心k8s作為配置中心

為了能摸魚我們團(tuán)隊(duì)做了容器化,但是帶來的問題是服務(wù)配置文件很麻煩,然后大家在群里進(jìn)行了“親切友好”的溝通OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

對比就對比,簡單對比下獨(dú)立配置中心和k8s作為配置中心的區(qū)別OBO28資訊網(wǎng)——每日最新資訊28at.com


OBO28資訊網(wǎng)——每日最新資訊28at.com

獨(dú)立配置中心OBO28資訊網(wǎng)——每日最新資訊28at.com

k8s作為配置中心OBO28資訊網(wǎng)——每日最新資訊28at.com

學(xué)習(xí)成本OBO28資訊網(wǎng)——每日最新資訊28at.com

1.運(yùn)維要學(xué)習(xí)搭建、維護(hù)OBO28資訊網(wǎng)——每日最新資訊28at.com

2.研發(fā)和研發(fā)都需要學(xué)習(xí)配置中心的工具、系統(tǒng)如何使用OBO28資訊網(wǎng)——每日最新資訊28at.com

1.熟悉yaml/json語法即OBO28資訊網(wǎng)——每日最新資訊28at.com

2.研發(fā)只需要解析環(huán)境變量,無需關(guān)注注入細(xì)節(jié)OBO28資訊網(wǎng)——每日最新資訊28at.com

適配工作量OBO28資訊網(wǎng)——每日最新資訊28at.com

  1. 代碼需要引入對應(yīng)配置中心的庫進(jìn)行開發(fā)
  2. 需要在對應(yīng)的配置中心管理

  1. 服務(wù)直接解析環(huán)境變量即可
  2. k8s原生支持環(huán)境變量,并且支持通過configmap,secret資源注入到服務(wù)的環(huán)境變量中

集群維護(hù)成本OBO28資訊網(wǎng)——每日最新資訊28at.com

額外維護(hù)成本OBO28資訊網(wǎng)——每日最新資訊28at.com

保證集群etcd穩(wěn)定即可,無額外成本OBO28資訊網(wǎng)——每日最新資訊28at.com

服務(wù)發(fā)現(xiàn)OBO28資訊網(wǎng)——每日最新資訊28at.com

支持服務(wù)發(fā)現(xiàn)OBO28資訊網(wǎng)——每日最新資訊28at.com

支持服務(wù)發(fā)現(xiàn)OBO28資訊網(wǎng)——每日最新資訊28at.com

云資源費(fèi)用OBO28資訊網(wǎng)——每日最新資訊28at.com

增加成本OBO28資訊網(wǎng)——每日最新資訊28at.com

無額外成本OBO28資訊網(wǎng)——每日最新資訊28at.com

對比結(jié)果出來后,群里的研發(fā)也覺得k8s作為配置中心不錯了OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

我這里想問問在看文章的同學(xué):是不是都覺得運(yùn)維的東西很簡單?還有是不是個鍋都甩給運(yùn)維?像這樣的研發(fā)你身邊多么還是說你也是這樣的研發(fā)? OBO28資訊網(wǎng)——每日最新資訊28at.com

繼續(xù)今天的話題,既然服務(wù)要在k8s里運(yùn)行,同時也要把k8s作為配置中心使用,那服務(wù)適配需要做些啥? 咱們先列一個清單OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

服務(wù)要優(yōu)雅的適配容器化環(huán)境,需要解決以下問題OBO28資訊網(wǎng)——每日最新資訊28at.com

  • 避免繁瑣的定義和解析服務(wù)環(huán)境變量
  • 服務(wù)在本地調(diào)試下和容器環(huán)境運(yùn)行兩種場景下,對于環(huán)境變量的解析需要無縫切換
  • 服務(wù)的dockerfile可根據(jù)服務(wù)信息自動生成,盡量避免人工操作

1.首先說環(huán)境變量的問題

從本地開發(fā)和容器運(yùn)行兩個角度來看,本地開發(fā)的時候讀取配文件比讀取環(huán)境變量方便,容器運(yùn)行中讀取環(huán)境變量比讀取配置文件方便,我想說你倆擱這卡bug呢?OBO28資訊網(wǎng)——每日最新資訊28at.com

但是這個問題其實(shí)不難,解決邏輯也很簡單。那就是采用覆寫的思路,如果環(huán)境變量里讀取到了值就用環(huán)境變量的,否則就用代碼里的值。OBO28資訊網(wǎng)——每日最新資訊28at.com

那按照這個思路是得有一個配置文件,然后服務(wù)讀取這個配置文件?可惜這個和我們團(tuán)隊(duì)的一個追求相違背——代碼及文檔OBO28資訊網(wǎng)——每日最新資訊28at.com

說到文檔,插個題外話,對于寫文檔這事兒。。。OBO28資訊網(wǎng)——每日最新資訊28at.com

看別人的東西,你TM文檔呢? OBO28資訊網(wǎng)——每日最新資訊28at.com

做自己的東西,這TM還用寫文檔?OBO28資訊網(wǎng)——每日最新資訊28at.com

回到環(huán)境變量這個問題來,其實(shí)在代碼里面定義變量并提供覆寫的能力就足夠了??紤]到在本地開發(fā)調(diào)試的時候,需要頻繁修改變量的值,無論是修改代碼里的變量值或者修改環(huán)境變量還是稍顯麻煩,所以覆寫的信息可以來源于環(huán)境變量或一個覆寫的變量文件OBO28資訊網(wǎng)——每日最新資訊28at.com

流程如下OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

針對提供反射機(jī)制的編程語言結(jié)合一定的規(guī)則,環(huán)境變量的key可以直接從定義的結(jié)構(gòu)體里獲取無需額外維護(hù)。無反射類型的編程語言也可以按照這個思路實(shí)現(xiàn),只是稍顯麻煩。這樣環(huán)境變量的問題解決了,然后就是dockerfile的問題OBO28資訊網(wǎng)——每日最新資訊28at.com

2.dockerfile如何自動生成

我們再看看剛才列的清單OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

首先說說核心問題如何編譯,有兩種方式OBO28資訊網(wǎng)——每日最新資訊28at.com

1.直接在dockerfile里面寫編譯過程

直接手寫dockerfile沒有問題,因?yàn)榉?wù)的開發(fā)人員最清楚自己的服務(wù)需要怎么編譯,但是不同的服務(wù)總會出現(xiàn)差異化的編譯過程,這樣從代碼自動生成dockerfile的角度來講不可控OBO28資訊網(wǎng)——每日最新資訊28at.com

2.makefile文件

通過makefile來執(zhí)行編譯步驟就解決了差異化的問題,在dockerfile里只需要執(zhí)行類似make build的固定命令便完成了服務(wù)編譯全過程。自動化工具按照固定的dockerfile模板生成文件,makefile完成具體的編譯過程,這樣服務(wù)編譯與工具完美解耦OBO28資訊網(wǎng)——每日最新資訊28at.com

核心問題解決了,至于dockerfile如何生成,每種編程語言都可以采用自身語言提供的模板庫進(jìn)行生成dockerfile了。即便不用模板,拼接字符串也是可以的,條條大路通羅馬。OBO28資訊網(wǎng)——每日最新資訊28at.com

然后我們再談?wù)劄槭裁磿芯幾g鏡像和運(yùn)行鏡像的區(qū)別,我們看看下面這個流程OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

從流程可以看出,服務(wù)在k8s里面啟動時會從鏡像倉庫拉去服務(wù)鏡像,這里存在一個網(wǎng)絡(luò)傳輸?shù)膯栴},內(nèi)網(wǎng)都不說了,如果從公網(wǎng)拉鏡像,并發(fā)量高一點(diǎn),拉的再頻繁點(diǎn),不管是固定帶寬還是按流量計(jì)費(fèi),老話說得好,這不就是小刀剌了貔貅腚——拉的都是錢OBO28資訊網(wǎng)——每日最新資訊28at.com

所以我們期望的是鏡像足夠小,這樣在部署服務(wù)的時候更快更省錢,尤其是首次部署的時候(這里涉及到docker 分層的問題不做展開)。編譯鏡像一般都非常龐大并不適合作為運(yùn)行鏡像使用,只需要提供編譯環(huán)境,編譯完成后將編譯后的文件放入一個很小的運(yùn)行鏡像中即可OBO28資訊網(wǎng)——每日最新資訊28at.com

以我們團(tuán)隊(duì)采用的是Golang語言為例,編譯鏡像目前采用的1.20.5-buster,AMD64的鏡像大小為275M,ARM的鏡像大小為264M,運(yùn)行鏡像采用的是gcr.io/distroless/static-debian11,最終運(yùn)行鏡像大小在20M左右,這不得起飛了啊,拉鏡像就跟玩兒一樣。OBO28資訊網(wǎng)——每日最新資訊28at.com

好了,今天的文章主要分享了在容器化環(huán)境下,通過拋棄服務(wù)配置文件而采用環(huán)境變量的形式來解決配置注入的問題,自動生成dockerfile需要避免的坑,希望對在走容器化道路的同學(xué)有所幫助。如果大家想聽聽其他的可以留言或者私信我們。OBO28資訊網(wǎng)——每日最新資訊28at.com

接下來就是Golang的福利時間,我們將這個變量注入的庫進(jìn)行了開源。現(xiàn)在用gin框架寫個demo來演示環(huán)境變量注入和生成dockerfile。(我們在gin框架上加了一點(diǎn)點(diǎn)東西,這樣更好用)OBO28資訊網(wǎng)——每日最新資訊28at.com

首先創(chuàng)建一個工程目錄OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

global/config.go這個文件長這樣OBO28資訊網(wǎng)——每日最新資訊28at.com

package globalimport (  "github.com/kunlun-qilian/conflogger"  "github.com/kunlun-qilian/confserver"  "github.com/kunlun-qilian/confx")func init() {  confx.SetConfX("demo-docker", "..")  confx.ConfP(&Config)}var Config = struct {  Logger  *conflogger.Log  Server  *confserver.Server  TestEnv string `env:""`# 環(huán)境變量標(biāo)記,只要有這個標(biāo)記則支持注入}{  Server: &confserver.Server{    Port: 80,    Mode: "debug",  },  TestEnv: "123",}
github.com/kunlun-qilian/confx這個庫的作用就是注入環(huán)境變量和生成dockerfile,單獨(dú)出來了一個庫,只要是這個工程目錄結(jié)構(gòu)都可以使用

運(yùn)行之后會生成config/default.yml,這個環(huán)境變量文件就是每次啟動服務(wù)后根據(jù)上述global/config.go文件自動生成的默認(rèn)配置文件,這個文件是作為后續(xù)本地覆寫配置文件的藍(lán)本,免得不知道環(huán)境變量是啥,環(huán)境變量規(guī)則是“服務(wù)名__環(huán)境變量名”OBO28資訊網(wǎng)——每日最新資訊28at.com

DEMO_DOCKER__Logger_Level: ""DEMO_DOCKER__Logger_Output: AlwaysDEMO_DOCKER__Server_Mode: debugDEMO_DOCKER__Server_UseH2C: "false"DEMO_DOCKER__TestEnv: "123"

demo里加入了一個接口來返回TestEnv的值OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

在本地開發(fā)的時候需要覆寫默認(rèn)值的時候,只需要在config目錄下加入一個叫做 local.yml(這個放gitignore里)的文件并添加想替換的值OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

重新運(yùn)行一下服務(wù),再看接口,變量被local.yml里面的值替換了OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com

然后我們再通過當(dāng)前命令行會話中注入一個環(huán)境變量,然后啟動OBO28資訊網(wǎng)——每日最新資訊28at.com

export DEMO_DOCKER__TestEnv=terminal_789 && go run main.go

值又被替換成了環(huán)境變量的值,有了這個還要啥自行車?OBO28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片OBO28資訊網(wǎng)——每日最新資訊28at.com


再看看生成的dockerfile,下面這個就是自動生成的默認(rèn)dockerfileOBO28資訊網(wǎng)——每日最新資訊28at.com

FROM dockerproxy.com/library/golang:1.20-buster AS build-envFROM build-env AS builderWORKDIR /go/srcCOPY ./ ./# buildRUN make build WORKSPACE=demo-docker# runtimeFROM gcr.dockerproxy.com/distroless/static-debian11COPY --from=builder /go/src/cmd/demo-docker/demo-docker /go/bin/demo-dockerEXPOSE 80ARG PROJECT_NAMEARG PROJECT_VERSIONENV PROJECT_NAME=${PROJECT_NAME} PROJECT_VERSION=${PROJECT_VERSION}WORKDIR /go/binENTRYPOINT ["/go/bin/demo-docker"]

上文中提到的幾個配置信息,咱們定義了一個結(jié)構(gòu),包含了編譯鏡像,運(yùn)行鏡像,GOPROXY代理,openapi文件,奧,差點(diǎn)忘了這篇不涉及到openapi,篇幅有限這個在后續(xù)篇章里講,你們懂的OBO28資訊網(wǎng)——每日最新資訊28at.com

type DockerConfig struct {  BuildImage   string  RuntimeImage string  GoProxy      GoProxyConfig  Openapi      bool}type GoProxyConfig struct {  ProxyOn bool  Host    string}

在global/config.go中的init方法中,留了入口OBO28資訊網(wǎng)——每日最新資訊28at.com

func init() {  confx.SetConfX("demo-docker", "..", confx.DockerConfig{    BuildImage:   "private-harbor.xxx.com/xxx/builder:v1.0.0",    RuntimeImage: "private-harbor.xxx.com/xxx/runtime:v1.0.0",    GoProxy: confx.GoProxyConfig{      ProxyOn: true,      Host:    "https://goproxy.cn,direct",    },  })  confx.ConfP(&Config)}

然后我們再重新運(yùn)行一下看看結(jié)果,編譯鏡像、運(yùn)行鏡像、代理都更新了OBO28資訊網(wǎng)——每日最新資訊28at.com

FROM private-harbor.xxx.com/xxx/builder:v1.0.0 AS build-envFROM build-env AS builderARG GOPROXY=https://goproxy.cn,directWORKDIR /go/srcCOPY ./ ./# buildRUN make build WORKSPACE=demo-docker# runtimeFROM private-harbor.xxx.com/xxx/runtime:v1.0.0COPY --from=builder /go/src/cmd/demo-docker/demo-docker /go/bin/demo-dockerEXPOSE 80ARG PROJECT_NAMEARG PROJECT_VERSIONENV PROJECT_NAME=${PROJECT_NAME} PROJECT_VERSION=${PROJECT_VERSION}WORKDIR /go/binENTRYPOINT ["/go/bin/demo-docker"]

如果服務(wù)有多個端口怎么處理?還是從global/config.go中下手,增加一個 TestPort 的變量,tag中加上 `env:"opt,expose"`OBO28資訊網(wǎng)——每日最新資訊28at.com

var Config = struct {  Logger  *conflogger.Log  Server  *confserver.Server  TestEnv string `env:""`  TestPort int `env:"opt,expose"` # 看這里,看這里}{  Server: &confserver.Server{    Port: 80,    Mode: "debug",  },  TestEnv:  "123",  TestPort: 9090,}

然后咱們再運(yùn)行一次,9090端口暴露出來了,這帶手表了,帶啥手表了?OBO28資訊網(wǎng)——每日最新資訊28at.com

FROM private-harbor.xxx.com/xxx/builder:v1.0.0 AS build-envFROM build-env AS builderARG GOPROXY=https://goproxy.cn,directWORKDIR /go/srcCOPY ./ ./# buildRUN make build WORKSPACE=demo-docker# runtimeFROM private-harbor.xxx.com/xxx/runtime:v1.0.0COPY --from=builder /go/src/cmd/demo-docker/demo-docker /go/bin/demo-dockerEXPOSE 9090EXPOSE 80ARG PROJECT_NAMEARG PROJECT_VERSIONENV PROJECT_NAME=${PROJECT_NAME} PROJECT_VERSION=${PROJECT_VERSION}WORKDIR /go/binENTRYPOINT ["/go/bin/demo-docker"]

最后貼上全球最大同。。不對,是github鏈接,后續(xù)我們還會逐步開源一些工具OBO28資訊網(wǎng)——每日最新資訊28at.com

工具包c(diǎn)onfx: https://github.com/kunlun-qilian/confx本文的demo:  https://github.com/kunlun-qilian/gin-demo


OBO28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.rrqrq.com/showinfo-26-79-0.html摸魚心法第一章——和配置文件說拜拜

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Rust中的高吞吐量流處理

下一篇: 掘力計(jì)劃第 20 期:Flutter 混合開發(fā)的混亂之治

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 一加Ace2 Pro官宣:普及16G內(nèi)存 引領(lǐng)24G

    一加官方今天繼續(xù)為本月發(fā)布的新機(jī)一加Ace2 Pro帶來預(yù)熱,公布了內(nèi)存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引領(lǐng),還有呢?#一加Ace2Pro#,2023 年 8 月,敬請期待?!蓖瑫r
  • 紅魔電競平板評測:大屏幕硬實(shí)力

    前言:三年的疫情因?yàn)橐暇W(wǎng)課的原因激活了平板市場,如今網(wǎng)課的時代已經(jīng)過去,大家的生活都恢復(fù)到了正軌,這也就意味著,真正考驗(yàn)平板電腦生存的環(huán)境來了。也就是面對著這種殘酷的
  • 6月安卓手機(jī)性價(jià)比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進(jìn)了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價(jià),那么各個價(jià)位段的產(chǎn)品性價(jià)比
  • 使用Webdriver-manager解決瀏覽器與驅(qū)動不匹配所帶來自動化無法執(zhí)行的問題

    1、前言在我們使用 Selenium 進(jìn)行 UI 自動化測試時,常常會因?yàn)闉g覽器驅(qū)動與瀏覽器版本不匹配,而導(dǎo)致自動化測試無法執(zhí)行,需要手動去下載對應(yīng)的驅(qū)動版本,并替換原有的驅(qū)動,可能還
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問我,如何才能學(xué)好IO流,對各種流的概念,云里霧里的,不求甚解。用到的時候,現(xiàn)百度,功能雖然實(shí)現(xiàn)了,但是為什么用這個?不知道。更別說效率問題了~下次再遇到,
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來源:價(jià)值研究所 作者:Hernanderz“難道就因?yàn)樽约旱囊粋€產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運(yùn)營上的問題,選擇逃避了嗎?”這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業(yè) 作者/李彥編輯/木魚拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁“充值中心”入口上線了本機(jī)生活界面。壹覽商業(yè)發(fā)現(xiàn),該界面目前主要
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發(fā)布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預(yù)測小
  • 8月見!小米MIX Fold 3獲得3C認(rèn)證:支持67W快充

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
国产精品久久久久久久久免费丝袜| 久久国产综合精品| 欧美丰满少妇xxxxx高潮对白| 久久精品盗摄| 久久人人精品| 欧美视频第二页| 欧美日韩激情一区二区三区| 亚洲成人午夜电影| 日韩国产精品91| 老鸭窝一区二区久久精品| 欧美区一区二区三区| 欧美私模裸体表演在线观看| 欧美日韩中文字幕精品| 欧美丰满美乳xxx高潮www| 欧美一级国产精品| 久久久久国产免费免费 | 一区二区三区视频在线看| 亚洲综合丝袜美腿| 喷水一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 久久综合成人精品亚洲另类欧美 | 91亚洲国产成人精品一区二区三 | 91色.com| 日韩网站在线| 一本到高清视频免费精品| 制服丝袜日韩国产| 国产三级精品视频| 亚洲一区二区视频在线观看| 99xxxx成人网| 欧美大片国产精品| 亚洲影视综合| 久久福利一区| 久久精品日产第一区二区三区| av一本久道久久综合久久鬼色| 丝袜亚洲另类欧美| 国产成人在线观看免费网站| 欧美日韩国产综合网| 国产一区美女| 久久天堂国产精品| 久久久久久穴| 亚洲国产精选| 亚洲无吗在线| 国模吧视频一区| 免费观看成人av| 免播放器亚洲一区| 国产精品水嫩水嫩| 亚洲二区在线观看| 国产a视频精品免费观看| 国产精品a级| 欧美日韩精品一区二区三区四区 | 激情五月激情综合网| 欧美黄免费看| 欧美久久婷婷综合色| 亚洲女厕所小便bbb| 国产91丝袜在线播放九色| 国产欧美一区二区三区国产幕精品| 欧美日韩精品系列| 一区二区三区在线视频播放| 成人h动漫精品一区二区| 欧美中文字幕| 国产精品三级在线观看| 国产精一区二区三区| 国产一区白浆| 国产欧美精品国产国产专区| 久久综合九色欧美综合狠狠| 日韩av不卡一区二区| 国产精品igao视频网网址不卡日韩| 欧美日韩国产一区| 亚洲444eee在线观看| 精品动漫av| 久久免费视频一区| 国产一区二区在线观看免费| 中文精品在线| 国产精品久久久久一区| 成人sese在线| 91精品欧美一区二区三区综合在| 亚洲第一电影网| 日韩午夜精品| 国产精品女主播av| 欧美精品黄色| 国产三级欧美三级| bt欧美亚洲午夜电影天堂| 777午夜精品视频在线播放| 日韩国产高清在线| 久久成人资源| 亚洲国产另类av| 国产精品一区在线播放| 亚洲欧美激情小说另类| 激情欧美亚洲| 最新日韩在线视频| 影音先锋久久| 国产精品私人影院| 狠狠入ady亚洲精品| 日本一区二区三区在线观看| 91网站在线观看视频| 欧美精品一区二区三区在线播放 | 国模精品娜娜一二三区| 欧美国产日韩亚洲一区| 午夜国产精品视频| 国产精品丝袜久久久久久app| 牛人盗摄一区二区三区视频| 国产日本欧美一区二区| 欧美日韩国产高清视频| 国产精品人成在线观看免费| 亚洲午夜影视影院在线观看| 99精品国产福利在线观看免费| 亚洲欧美国产高清| 国产伦精品一区二区三| 天堂成人免费av电影一区| 色婷婷亚洲综合| 精品一区在线看| 日韩午夜精品电影| 亚洲黄色片在线观看| 91九色最新地址| 激情伊人五月天久久综合| 欧美一区二区视频在线观看2020 | 伊伊综合在线| 天堂av在线一区| 欧美欧美欧美欧美| 91在线视频播放| 国产一级久久| 九色|91porny| 久久噜噜亚洲综合| 亚洲看片免费| 捆绑紧缚一区二区三区视频| 国产欧美日本一区二区三区| 国产在线播精品第三| 亚洲国产精品国自产拍av| 亚洲国内精品| 久久爱www久久做| 久久美女高清视频| 国产三区精品| 久久国产精品72免费观看| 国内精品久久久久久久果冻传媒 | 欧美jjzz| 午夜精品国产更新| 日韩视频永久免费| 欧美日韩成人| 日本亚洲电影天堂| 久久久不卡影院| 久久av一区二区三区亚洲| 国产成人免费视频一区| 亚洲欧美偷拍三级| 欧美日韩高清一区二区不卡| 欧美日韩成人一区二区三区| 秋霞午夜鲁丝一区二区老狼| 精品国产免费一区二区三区四区| 亚洲经典三级| 国产美女主播视频一区| 亚洲精品欧美二区三区中文字幕| 91国偷自产一区二区三区观看| 高清久久久久久| 亚洲精品一二三四区| 日韩一区二区免费电影| 国产亚洲精品bv在线观看| 国产福利91精品| 亚洲精品一二三| 精品国产91乱码一区二区三区| 国产农村妇女毛片精品久久莱园子| 国产成人av福利| 亚洲国产精品视频| 国产日韩欧美激情| 欧美日韩中文另类| 亚洲丰满在线| 99久久综合精品| 日本91福利区| 亚洲视频一区二区在线观看| 欧美一区二视频| 一本到高清视频免费精品| 欧美日韩理论| 成人av在线资源网站| 琪琪一区二区三区| 亚洲观看高清完整版在线观看| 久久久久久久网| 欧美一区永久视频免费观看| 蜜桃久久av| 99re热精品| 欧美欧美全黄| 成人午夜视频在线| 韩国v欧美v日本v亚洲v| 日本一不卡视频| 亚洲国产日韩a在线播放| 中文字幕第一区综合| 精品国产乱码久久久久久图片| 欧美日韩国产美女| 国产成人激情av| 久久av资源网| 久久99精品国产麻豆婷婷| 天天av天天翘天天综合网色鬼国产| 亚洲人成影院在线观看| 国产免费观看久久| 亚洲人成人一区二区三区| 欧美国产一区二区三区激情无套| 豆国产96在线|亚洲| 国产精品主播直播| 国内精品国产成人国产三级粉色| 麻豆久久久久久| 麻豆精品久久精品色综合| 日韩av中文字幕一区二区三区 | 亚洲欧美日韩精品综合在线观看|