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

基于 Istio 的全鏈路灰度方案探索和實踐

網絡
阿里云 ASM Pro(相關鏈接請見文末)基于 Service Mesh 所構建的全鏈路灰度方案,能很好的解決在同一套生產系統(tǒng)中完成新版本上線前的功能驗證和更好地控制新版本軟件上線的風險和爆炸半徑。

背景

微服務軟件架構下,業(yè)務新功能上線前搭建完整的一套測試系統(tǒng)進行驗證是相當費人費時的事,隨著所拆分出微服務數量的不斷增大其難度也愈大。這一整套測試系統(tǒng)所需付出的機器成本往往也不低,為了保證應用新版本上線前的功能正確性驗證效率,這套系統(tǒng)還必須一直單獨維護好。當業(yè)務變得龐大且復雜時,往往還得準備多套,這是整個行業(yè)共同面臨且難解的成本和效率挑戰(zhàn)。如果能在同一套生產系統(tǒng)中完成新版本上線前的功能驗證的話,所節(jié)約的人力和財力是相當可觀的。

除了開發(fā)階段的功能驗證,生產環(huán)境中引入灰度發(fā)布才能更好地控制新版本軟件上線的風險和爆炸半徑。灰度發(fā)布是將具有一定特征或者比例的生產流量分配到需要被驗證的服務版本中,以觀察新版本上線后的運行狀態(tài)是否符合預期。

阿里云 ASM Pro(相關鏈接請見文末)基于 Service Mesh 所構建的全鏈路灰度方案,能很好幫助解決以上兩個場景的問題。

ASM Pro 產品功能架構圖:

 

核心能力使用的就是上圖擴展的流量打標和按標路由以及流量 Fallback 的能力,下面詳細介紹說明。

場景說明

全鏈路灰度發(fā)布的常見場景如下:

以 Bookinfo 為例,入口流量會帶上期望的 tag 分組,sidecar 通過獲取請求上下文(Header 或 Context) 中的期望 tag,將流量路由分發(fā)到對應 tag 分組,若對應 tag 分組不存在,默認會 fallback 路由到 base 分組,具體 fallback 策略可配置。接下來詳細描述具體的實現細節(jié)。

入口流量的 tag 標簽,一般是在網關層面基于類似 tag 插件的方式,將請求流量進行打標。 比如將 userid 處于一定范圍的打上代表灰度的 tag,考慮到實際環(huán)境網關的選擇和實現的多樣性,網關這塊實現不在本文討論的范圍內。

下面我們著重討論基于 ASM Pro 如何做到全鏈路流量打標和實現全鏈路灰度。

實現原理

Inbound 是指請求發(fā)到 App 的入口流量,Outbond 是指 App 向外發(fā)起請求的出口流量。

上圖是一個業(yè)務應用在開啟 mesh 后典型流量路徑:業(yè)務 App 接收到一個外部請求 p1,接著調用背后所依賴的另一個服務的接口。此時,請求的流量路徑是 p1->p2->p3->p4,其中 p2 是 Sidecar 對 p1 的轉發(fā),p4 是 Sidecar 對 p3 的轉發(fā)。為了實現全鏈路灰度,p3 和 p4 都需要獲取到 p1 進來的流量標簽,才能將請求路由到標簽所對應的后端服務實例,且 p3 和 p4 也要帶上同樣的標簽。關鍵在于,如何讓標簽的傳遞對于應用完全無感,從而實現全鏈路的標簽透傳,這是全鏈路灰度的關鍵技術。ASM Pro 的實現是基于分布式鏈路追蹤技術(比如,OpenTracing、OpenTelemetry 等)中的 traceId 來實現這一功能。

在分布式鏈路追蹤技術中,traceId 被用于唯一地標識一個完整的調用鏈,鏈路上的每一個應用所發(fā)出的扇出(fanout)調用,都會通過分布式鏈路追蹤的 SDK 將源頭的 traceId 給帶上。ASM Pro 全鏈路灰度解決方案的實現正是建立在這一分布式應用架構所廣泛采納的實踐之上的。

上圖中,Sidecar 本來所看到的 inbound 和 outbound 流量是完全獨立的,無法感知兩者的對應關系,也不清楚一個 inbound 請求是否導致了多個 outbound 請求的發(fā)生。換句話說,圖中 p1 和 p3 兩個請求之間是否有對應關系 Sidecar 并不知情。

在 ASM Pro 全鏈路灰度解決方案中,通過 traceId 將 p1 和 p3 兩個請求做關聯,具體說來依賴了 Sidecar 中的 x-request-id 這個 trace header。Sidecar 內部維護了一張映射表,其中記錄了 traceId 和標簽的對應關系。當 Sidecar 收到 p1 請求時,將請求中的 traceId 和標簽存儲到這張表中。當收到 p3 請求時,從映射表中查詢獲得 traceId 所對應的標簽并將這一標簽加入到 p4 請求中,從而實現全鏈路的打標和按標路由。下圖大致示例了這一實現原理。

換句話說,ASM Pro 的全鏈路灰度功能需要應用使用分布式鏈路追蹤技術。如果想運用這一技術的應用沒有使用分布式鏈路追蹤技術的話不可避免地涉及到一定的改造工作。對于 Java 應用來說,仍可以考慮采用 Java Agent 以 AOP 的方式讓業(yè)務無需改造地實現 traceId 在 inbound 和 outbound 之間透傳。

實現流量打標

ASM Pro 中引入了全新的 TrafficLabel CRD 用于定義 Sidecar 所需透傳的流量標簽從哪里獲取。下面所例舉的 YAML 文件中,定義了流量標簽來源和需要將標簽存儲 OpenTracing 中(具體是 x-trace 頭)。其中流量標的名為 trafficLabel,取值依次從 $getContext(x-request-id) 到最后從本地環(huán)境的$(localLabel)中獲取。

  1. apiVersion: istio.alibabacloud.com/v1beta1kind: TrafficLabelmetadata:  name: defaultspec:  rules:  - labels:      - name: trafficLabel        valueFrom:        - $getContext(x-request-id)  //若使用aliyun arms,對應為x-b3-traceid        - $(localLabel)    attachTo:    - opentracing    # 表示生效的協(xié)議,空為都不生效,*為都生效    protocols: "*" 

CR 定義包含兩塊,即標簽的獲取和存儲。

獲取邏輯:先根據協(xié)議上下文或者頭(Header 部分)中的定義的字段獲取流量標簽,如果沒有,會根據 traceId 通過 Sidecar 本地記錄的 map 獲取, 該 map 表中保存了 traceId 對應流量標識的映射。若 map 表中找到對應映射,會將該流量打上對應的流量標,若獲取不到,會將流量標取值為本地部署對應環(huán)境的 localLabel。localLabel 對應本地部署的關聯 label,label 名為 ASM_TRAFFIC_TAG。

本地部署對應環(huán)境的標簽名為"ASM_TRAFFIC_TAG",實際部署可以結合 CI/CD 系統(tǒng)來關聯。

存儲邏輯:attachTo 指定存儲在協(xié)議上下文的對應字段,比如 HTTP 對應 Header 字段,Dubbo 對應 rpc context 部分,具體存儲到哪一個字段中可配置。

有了TrafficLabel 的定義,我們知道如何將流量打標和傳遞標簽,但光有這個還不足以做到全鏈路灰度,我們還需要一個可以基于 trafficLabel 流量標識來做路由的功能,也就是“按標路由”,以及路由 fallback 等邏輯,以便當路由的目的地不存在時,可以實現降級的功能。

按流量標簽路由

這一功能的實現擴展了 Istio 的 VirtualService 和 DestinationRule。

在 DestinationRule 中定義 Subset

自定義分組 subset 對應的是 trafficLabel 的 value

  1. apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:  name: myappspec:  host: myapp/*  subsets:  - name: myproject            # 項目環(huán)境    labels:      env: abc  - name: isolation            # 隔離環(huán)境    labels:      env: xxx                 # 機器分組  - name: testing-trunk        # 主干環(huán)境    labels:      env: yyy  - name: testing              # 日常環(huán)境    labels:      env: zzz---apiVersion: networking.istio.io/v1alpha3kind: ServiceEntrymetadata:  name: myappspec:  hosts:         - myapp/*  ports:  - number: 12200    name: http    protocol: HTTP    endpoints:      - address: 0.0.0.0        labels:            env: abc      - address: 1.1.1.1        labels:            env: xxx      - address: 2.2.2.2        labels:            env: zzz      - address: 3.3.3.3        labels:            env: yyy 

Subset 支持兩種指定形式:

labels 用于匹配應用中帶特定標記的節(jié)點(endpoint);
通過 ServiceEntry 用于指定屬于特定 subset 的 IP 地址,注意這種方式與labels指定邏輯不同,它們可以不是從注冊中心(K8s 或者其他)拿到的地址,直接通過配置的方式指定。適用于 Mock 環(huán)境,這個環(huán)境下的節(jié)點并沒有向服務注冊中心注冊。

在 VirtualService 中基于 subset

1)全局默認配置

route 部分可以按順序指定多個 destination,多個 destination 之間按照 weight 值的比例來分配流量。
每個 destination 下可以指定 fallback 策略,case 標識在什么情況下執(zhí)行 fallback,取值:noinstances(無服務資源)、noavailabled(有服務資源但是服務不可用),target 指定 fallback 的目標環(huán)境。如果不指定 fallback,則強制在該 destination 的環(huán)境下執(zhí)行。
按標路由邏輯,我們通過改造 VirtualService,讓 subset 支持占位符 $trafficLabel, 該占位符 $trafficLabel 表示從請求流量標中獲取目標環(huán)境, 對應 TrafficLabel CR 中的定義。

全局默認模式對應泳道,也就是單個環(huán)境內封閉,同時指定了環(huán)境級別的 fallback 策略。自定義分組 subset 對應的是 trafficLabel 的 value

配置樣例如下:

  1. apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:  name: default-routespec:  hosts:                     # 對所有應用生效  - */*  http:  - name: default-route    route:    - destination:        subset: $trafficLabel      weight: 100      fallback:         case: noinstances         target: testing-trunk    - destination:            host: */*        subset: testing-trunk    # 主干環(huán)境      weight: 0      fallback:        case: noavailabled        target: testing    - destination:        subset: testing          # 日常環(huán)境      weight: 0      fallback:        case: noavailabled        target: mock    - destination:            host: */*        subset: mock             # Mock中心       weight: 0 

2)個人開發(fā)環(huán)境定制

先打到日常環(huán)境,當日常環(huán)境沒有服務資源時,再打到主干環(huán)境。

  1. apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:  name: projectx-routespec:  hosts:                   # 只對myapp生效  - myapp/*  http:  - name: dev-x-route    match:      trafficLabel:      - exact: dev-x       # dev環(huán)境: x    route:    - destination:            host: myapp/*        subset: testing          # 日常環(huán)境      weight: 100      fallback:        case: noinstances        target: testing-trunk    - destination:            host: myapp/*        subset: testing-trunk    # 主干環(huán)境      weight: 0 

3) 支持權重配置

將打了主干環(huán)境標并且本機環(huán)境是 dev-x 的流量,80% 打到主干環(huán)境,20% 打到日常環(huán)境。當主干環(huán)境沒有可用的服務資源時,流量打到日常。

sourceLabels 為本地 workload 對應的 label

  1. apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:  name: dev-x-routespec:  hosts:                   # 對哪些應用生效(不支持多應用配置)  - myapp/*  http:  - name: dev-x-route    match:      trafficLabel:      - exact: testing-trunk # 主干環(huán)境標      sourceLabels:      - exact: dev-x  # 流量來自某個項目環(huán)境    route:    - destination:            host: myapp/*        subset: testing-trunk # 80%流量打向主干環(huán)境      weight: 80      fallback:        case: noavailabled        target: testing    - destination:            host: myapp/*        subset: testing       # 20%流量打向日常環(huán)境      weight: 20 

按(環(huán)境)標路由

該方案依賴業(yè)務部署應用時帶上相關標識(例子中對應 label 為 ASM_TRAFFIC_TAG: xxx),常見為環(huán)境標識,標識可以理解是服務部署的相關元信息,這個依賴上游部署系統(tǒng) CI/CD 系統(tǒng)的串聯,大概示意圖如下:

K8s 場景,通過業(yè)務部署時自動帶上對應環(huán)境/分組 label 標識即可,也就是采用K8s 本身作為元數據管理中心。
非 K8s 場景,可以通過微服務已集成的服務注冊中心或者元數據配置管理服務(metadata server)來集成實現。

注:ASM Pro 自研開發(fā)了ServiceDiretory 組件(可以參看 ASM Pro 產品功能架構圖),實現了多注冊中心對接以及部署元信息的動態(tài)獲??;

應用場景延伸

下面是典型的一個基于流量打標和按標路由實現的多套開發(fā)環(huán)境治理功能;每個開發(fā)者對應的 Dev X 環(huán)境只需部署有版本更新的服務即可;如果需要和其他開發(fā)者聯調,可以通過配置 fallback 將服務請求 fallback 流轉到對應開發(fā)環(huán)境即可。如下圖的 Dev Y 環(huán)境的B -> Dev X 環(huán)境的 C。

同理,將 Dev X 環(huán)境等同于線上灰度版本環(huán)境也是可以的,對應可以解決線上環(huán)境的全鏈路灰度發(fā)布問題。

總結

本文介紹的基于“流量打標”和“按標路由” 能力是一個通用方案,基于此可以較好地解決測試環(huán)境治理、線上全鏈路灰度發(fā)布等相關問題,基于服務網格技術做到與開發(fā)語言無關。同時,該方案適應于不同的7層協(xié)議,當前已支持 HTTP/gRpc 和 Dubbo 協(xié)議。

對應全鏈路灰度,其他廠商也有一些方案,對比其他方案 ASM Pro 的解決方案的優(yōu)點是:

  • 支持多語言、多協(xié)議。
  • 統(tǒng)一配置模板 TrafficLabel, 配置簡單且靈活,支持多級別的配置(全局、namespace 、pod 級別)。
  • 支持路由 fallback 實現降級。

基于“流量打標” 和 “按標路由”能力還可以用于其他相關場景:

  1. 大促前的性能壓測。在線上壓測的場景中,為了讓壓測數據和正式的線上數據實現隔離,常用的方法是對于消息隊列,緩存,數據庫使用影子的方式。這就需要流量打標的技術,通過 tag 區(qū)分請求是測試流量還是生產流量。當然,這需要 Sidecar 對中間件比如 Redis、RocketMQ 等進行支持。
  2. 單元化路由。常見的單元化路由場景,可能是需要根據請求流量中的某些元信息比如 uid,然后通過配置得出對應所屬的單元。在這個場景中,我們可以通過擴展 TrafficLabel 定義獲取“單元標”的函數來給流量打上“單元標”,然后基于“單元標”將流量路由到對應的服務單元。

 

責任編輯:梁菲 來源: 阿里云云棲號
相關推薦

2024-12-16 13:34:35

2025-03-04 08:53:10

2024-01-05 00:29:36

全鏈路灰度發(fā)布云原生

2023-10-16 23:43:52

云原生可觀測性

2022-08-31 22:25:53

微服務架構DevOPs

2023-05-31 14:54:32

2023-10-30 07:25:37

數據湖數據處理

2023-03-13 18:35:33

灰度環(huán)境golang編排等

2023-11-21 09:35:49

全量部署微服務

2023-09-14 10:04:31

vivo數據中心網絡

2022-01-05 08:27:17

C++全鏈路追蹤

2018-07-03 15:56:59

騰訊

2025-10-10 08:58:13

2023-01-30 22:34:44

Node.js前端

2022-12-26 11:57:41

數據庫治理

2024-09-19 14:02:16

2022-08-07 21:59:57

高可用架構

2022-11-24 08:35:28

KitexProxyless

2024-07-25 11:58:35

2019-06-27 09:43:03

監(jiān)控架構Dapper
點贊
收藏

51CTO技術棧公眾號

日韩欧美亚洲精品| 欧美激情中文字幕乱码免费| 成人免费xxxxx在线视频| 日本一区视频| 奇米一区二区三区| 欧美成年人视频| 国产黑丝一区二区| 亚洲精品在线影院| 亚洲欧美偷拍三级| 国产高清在线精品| 亚洲另类欧美自拍| 三区视频在线观看| 牛牛精品在线| 国产亚洲制服色| 亚洲一区中文字幕在线观看| 日韩免费av片| 97精品97| 亚洲男女自偷自拍图片另类| 日本少妇一级片| 色香欲www7777综合网| 亚洲欧美电影院| 日本不卡二区高清三区| 北条麻妃一二三区| 免费一级欧美片在线观看| 久久久免费电影| 国产探花视频在线| 亚洲精品3区| 日韩欧美久久一区| 婷婷免费在线观看| 亚洲人成午夜免电影费观看| 亚洲精品欧美在线| 西游记1978| 亚洲av毛片成人精品| 国产麻豆视频一区二区| 欧美一区二区.| 国产无精乱码一区二区三区| 综合激情视频| 日韩一区二区av| 亚洲av无码国产精品久久| 91精品尤物| 欧美一区午夜视频在线观看| 日本特黄a级片| 中文字幕在线直播| 性做久久久久久久免费看| 日本高清xxxx| 黄色一级片在线观看| 亚洲国产高清在线观看视频| 麻豆蜜桃91| 天天干天天干天天干| 国产福利一区二区三区| 成人字幕网zmw| 国产三级理论片| 三级久久三级久久久| 97精品久久久| wwwwww国产| 国产美女一区| 日本成人免费在线| 美女又爽又黄免费视频| 国产日韩专区| 热久久免费国产视频| 午夜婷婷在线观看| 日韩中文字幕区一区有砖一区| 51精品在线观看| 久久久免费高清视频| 欧美一级久久| 国产成人综合久久| 69av视频在线观看| 免费在线观看视频一区| 成人日韩在线电影| 国产av无码专区亚洲av麻豆| 国产精品一二三四五| 1卡2卡3卡精品视频| 亚洲精品国产一区二| 处破女av一区二区| 久久久久久99| 福利小视频在线观看| 国产精品久久综合| 国产精品88久久久久久妇女| 丁香花在线影院| 狠狠色狠色综合曰曰| 日日摸天天爽天天爽视频| abab456成人免费网址| 欧美性极品少妇| 国产传媒免费观看| 豆花视频一区二区| 亚洲欧美中文日韩在线| 国产精品suv一区二区88| 亚洲精品在线观看91| 久久久噜噜噜久久| 波多野结衣视频免费观看| 久久99精品一区二区三区三区| 99精品在线直播| 无码国产精品一区二区免费16| 久久久三级国产网站| 亚洲永久一区二区三区在线| 丁香花在线电影小说观看| 一本色道久久综合亚洲精品按摩| 一本色道久久亚洲综合精品蜜桃| 欧美黄视频在线观看| 亚洲国产精品va在看黑人| 成人性生交大片免费看无遮挡aⅴ| 久久久久久久久久久妇女| 午夜免费日韩视频| 中文在线字幕av| 国产不卡高清在线观看视频| 欧美日韩一区二区三| 国产网站在线免费观看| 天天综合色天天综合| 小泽玛利亚视频在线观看| jizz国产精品| 日韩亚洲精品视频| 天堂中文字幕在线观看| 国产精品一品视频| 日韩午夜视频在线观看| 欧美一卡二卡| 欧美久久久久中文字幕| 中文字幕无码人妻少妇免费| 99re6这里只有精品| **欧美日韩vr在线| 国产高清免费观看| 欧美经典一区二区| 国产 日韩 欧美在线| 日本午夜精品久久久久| 亚洲精品国产suv| 三级av在线免费观看| 日韩国产欧美三级| 精品一区在线播放| 午夜伦理大片视频在线观看| 欧美日韩一级片网站| 中文字幕丰满乱子伦无码专区| 欧美日韩国产高清| 国产日韩欧美自拍| 黄色在线网站| 精品久久久久久久大神国产| 91视频福利网| 色婷婷亚洲mv天堂mv在影片| 青青草成人在线| 十八禁一区二区三区| 亚洲一区二区在线播放相泽| 一级日本黄色片| 日韩欧美在线中字| 国产suv精品一区二区| 亚洲欧洲国产综合| 亚洲国产欧美在线| 国产大学生av| 在线中文字幕第一区| 91精品久久久久久久久不口人| 欧美一区二区视频| 综合亚洲深深色噜噜狠狠网站| 久久久精品麻豆| 精品久久国产| 国产精品偷伦视频免费观看国产| 国产原创av在线| 在线精品视频免费播放| 强伦人妻一区二区三区| 欧美国产先锋| 99国精产品一二二线| 蜜乳av一区| 精品久久人人做人人爰| 极品盗摄国产盗摄合集| 国产v日产∨综合v精品视频| 国产在线xxxx| 国产精品99久久免费观看| 久久久爽爽爽美女图片| 色哟哟中文字幕| 精品久久久久久久中文字幕 | 制服丝袜激情欧洲亚洲| 日本精品在线免费观看| 国产成人午夜电影网| 人人妻人人澡人人爽欧美一区双| silk一区二区三区精品视频| 97国产成人精品视频| 免费在线国产| 欧美日韩免费观看一区二区三区 | 亚洲男人的天堂网| 超碰91在线播放| 好看的日韩av电影| 韩国精品一区二区三区六区色诱| www.精品| 久久精品精品电影网| а√中文在线资源库| 黄色成人在线免费| 日韩影视一区二区三区| 国产曰批免费观看久久久| 成人av在线播放观看| 日韩高清影视在线观看| 国产精品国产福利国产秒拍| 欧美私人网站| 亚洲成人黄色在线| wwwwww在线观看| 亚洲欧美日韩国产中文在线| 一区二区免费在线观看视频 | 三区视频在线观看| 影音先锋亚洲电影| 色吧亚洲视频| 日本一区影院| 国产91精品在线播放| 在线免费观看的av| 亚洲天堂av在线播放| 99精品久久久久久中文字幕| 欧美性猛交xxxx富婆| 18岁成人毛片| 国产精品欧美经典| 中文字幕乱码一区| 国产综合色精品一区二区三区| 青青青青草视频| 91久久国产| 欧美日韩在线精品| 白嫩白嫩国产精品| 国产欧美精品在线| 中文在线中文资源| 久久久免费在线观看| 毛片在线播放a| 亚洲精品一区中文| 亚洲xxx在线| 欧美日韩黄色影视| 国产无遮挡呻吟娇喘视频| 一区二区三区在线影院| 五月天婷婷丁香网| 26uuu欧美| 国产一卡二卡三卡四卡| 国产在线国偷精品免费看| 天天碰免费视频| 一区二区三区四区五区精品视频| 91九色国产ts另类人妖| 日韩免费久久| 欧美日韩综合久久| 啪啪激情综合网| 国产精品日韩欧美一区二区| а天堂中文最新一区二区三区| 国产成人aa精品一区在线播放| xxxx视频在线| 美女国内精品自产拍在线播放| 国产一级在线| 日韩精品亚洲元码| 日批视频在线播放| 精品国内片67194| 国产黄色小视频在线观看| 欧美高清精品3d| 伊人久久国产精品| 欧美手机在线视频| 国产第一页在线观看| 色综合激情久久| 男人天堂2024| 色综合天天综合网国产成人综合天| 日韩免费一二三区| 亚洲午夜精品一区二区三区他趣| 日本妇女毛茸茸| 一区二区三区欧美视频| 深夜福利影院在线观看| 亚洲女同ⅹxx女同tv| 裸体武打性艳史| 亚洲乱码中文字幕| 欧美日韩中文字幕在线观看| 亚洲尤物在线视频观看| 国产在线观看免费视频今夜| 午夜精品久久久久| 日韩毛片一区二区三区| 色综合婷婷久久| 波多野结衣电车| 欧美日韩夫妻久久| 国产视频在线观看免费| 日韩一二三四区| 亚洲女人18毛片水真多| 亚洲国产精彩中文乱码av在线播放| 午夜国产在线视频| 亚洲一区第一页| 日本激情视频在线观看| 日韩在线视频网| av网站大全在线| 97视频免费在线看| 91av亚洲| 91在线|亚洲| 一区中文字幕电影| 久久综合九色欧美狠狠| 欧美日韩一区二区三区视频播放| 伊人色综合久久天天五月婷| 欧美欧美全黄| 无码人妻丰满熟妇区五十路百度| 奇米精品一区二区三区在线观看一| 免费av不卡在线| 成人国产精品免费观看视频| 波多野结衣一本| 亚洲欧洲日韩女同| 欧美亚韩一区二区三区| 在线免费观看成人短视频| 国产精品污视频| 日韩h在线观看| 天天影视久久综合| 欧美激情xxxxx| 欧美free嫩15| 粉嫩av四季av绯色av第一区| 欧美精品一区二区久久| 成人免费看片视频在线观看| 国产精品沙发午睡系列| 在线观看男女av免费网址| 九九久久久久久久久激情| 涩涩av在线| 91亚洲午夜在线| 九九视频免费观看视频精品| www.-级毛片线天内射视视| 中文亚洲免费| 色91精品久久久久久久久| eeuss鲁片一区二区三区在线观看 eeuss影院一区二区三区 | 欧美狂野另类xxxxoooo| 日韩有码第一页| xx视频.9999.com| 日韩电影免费看| 91久久精品一区二区别| 国产影视一区| 国产3p露脸普通话对白| 国产又粗又猛又爽又黄91精品| 国产亚洲无码精品| 伊人一区二区三区| 亚洲视频中文字幕在线观看| 亚洲精品自产拍| 999福利在线视频| 亚洲自拍偷拍一区| 欧州一区二区| 91国视频在线| 粉嫩嫩av羞羞动漫久久久| 亚洲不卡的av| 日韩欧美在线视频免费观看| 人成网站在线观看| 欧美成人精品一区| 福利精品在线| 茄子视频成人在线观看 | 深爱激情综合| 欧美久久久久久久久久久久久| 国产在线精品一区二区三区不卡| 国产午夜精品久久久久久久久| 色婷婷综合久久久| 欧美一区二区黄片| 欧美激情精品久久久久久| 国产欧美88| 男女h黄动漫啪啪无遮挡软件| 欧美aaaaa成人免费观看视频| 波多野结衣 在线| 欧美三级免费观看| 四虎成人免费在线| 91av视频在线免费观看| 精品福利一区| 国内精品视频一区二区三区| 国产99久久久国产精品潘金| 在线观看成人毛片| 欧美一区二区三区免费观看视频| 欧美成人二区| 91午夜理伦私人影院| 亚洲视频在线免费| 午夜免费视频网站| 亚洲欧美一区二区三区久本道91| 国产三级漂亮女教师| 欧美成人免费在线观看| 激情五月综合婷婷| www.av91| 99久久99久久免费精品蜜臀| 99久在线精品99re8热| 精品调教chinesegay| 性欧美18~19sex高清播放| 欧美高清一区二区| 日韩av一区二| 免费精品在线视频| 欧美美女直播网站| 成视频免费观看在线看| 99久久一区三区四区免费| 狠狠入ady亚洲精品| 一级国产黄色片| 在线视频国内自拍亚洲视频| 一级毛片视频在线观看| 亚洲精品日韩av| 亚洲三级视频| 人妻少妇无码精品视频区| 欧美日本一区二区| 免费看电影在线| 久久免费一区| 免费av网站大全久久| 久久久久久久久久久久久女过产乱| 亚洲丁香久久久| 欧美色网在线| 9191国产视频| xfplay精品久久| 国产又粗又猛又爽又黄的| 久久久久久欧美| 国产精品嫩草影院在线看| 国产福利精品一区二区三区| 亚洲第一久久影院| 国产日产精品久久久久久婷婷| 成人亲热视频网站| 国产精品久久久久毛片大屁完整版| 免费看91的网站| 日韩欧美在线影院| 欧美gay视频| 青青草视频国产| 国产欧美视频一区二区三区| 国产av无码专区亚洲av麻豆| 日韩免费在线免费观看| 欧美成人中文| 亚洲精品一区二区三区影院忠贞| 日韩一区二区三区免费观看| 欧美黑人疯狂性受xxxxx野外|