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

Linkerd 金絲雀部署與 A/B 測試

網絡 通信技術
本指南向您展示如何使用 Linkerd 和 Flagger 來自動化金絲雀部署與 A/B 測試。希望能夠幫助到你!

[[413903]]

本指南向您展示如何使用 Linkerd 和 Flagger 來自動化金絲雀部署與 A/B 測試。

Flagger Linkerd Traffic Split(流量拆分)

前提條件

Flagger 需要 Kubernetes 集群 v1.16 或更新版本和 Linkerd 2.10 或更新版本。

安裝 Linkerd the Prometheus(Linkerd Viz 的一部分):

  1. linkerd install | kubectl apply -f - 
  2. linkerd viz install | kubectl apply -f - 

在 linkerd 命名空間中安裝 Flagger:

  1. kubectl apply -k github.com/fluxcd/flagger//kustomize/linkerd 

引導程序

Flagger 采用 Kubernetes deployment 和可選的水平 Pod 自動伸縮 (HPA),然后創建一系列對象(Kubernetes 部署、ClusterIP 服務和 SMI 流量拆分)。這些對象將應用程序暴露在網格內部并驅動 Canary 分析和推廣。

創建一個 test 命名空間并啟用 Linkerd 代理注入:

  1. kubectl create ns test 
  2. kubectl annotate namespace test linkerd.io/inject=enabled 

安裝負載測試服務以在金絲雀分析期間生成流量:

  1. kubectl apply -k https://github.com/fluxcd/flagger//kustomize/tester?ref=main 

創建部署和水平 pod autoscaler:

  1. kubectl apply -k https://github.com/fluxcd/flagger//kustomize/podinfo?ref=main 

為 podinfo 部署創建一個 Canary 自定義資源:

  1. apiVersion: flagger.app/v1beta1 
  2. kind: Canary 
  3. metadata: 
  4.   name: podinfo 
  5.   namespace: test 
  6. spec: 
  7.   # deployment reference 
  8.   targetRef: 
  9.     apiVersion: apps/v1 
  10.     kind: Deployment 
  11.     name: podinfo 
  12.   # HPA reference (optional) 
  13.   autoscalerRef: 
  14.     apiVersion: autoscaling/v2beta2 
  15.     kind: HorizontalPodAutoscaler 
  16.     name: podinfo 
  17.   # the maximum time in seconds for the canary deployment 
  18.   # to make progress before it is rollback (default 600s) 
  19.   progressDeadlineSeconds: 60 
  20.   service: 
  21.     # ClusterIP port number 
  22.     port: 9898 
  23.     # container port number or name (optional) 
  24.     targetPort: 9898 
  25.   analysis: 
  26.     # schedule interval (default 60s) 
  27.     interval: 30s 
  28.     # max number of failed metric checks before rollback 
  29.     threshold: 5 
  30.     # max traffic percentage routed to canary 
  31.     # percentage (0-100) 
  32.     maxWeight: 50 
  33.     # canary increment step 
  34.     # percentage (0-100) 
  35.     stepWeight: 5 
  36.     # Linkerd Prometheus checks 
  37.     metrics: 
  38.     - name: request-success-rate 
  39.       # minimum req success rate (non 5xx responses) 
  40.       # percentage (0-100) 
  41.       thresholdRange: 
  42.         min: 99 
  43.       interval: 1m 
  44.     - name: request-duration 
  45.       # maximum req duration P99 
  46.       # milliseconds 
  47.       thresholdRange: 
  48.         max: 500 
  49.       interval: 30s 
  50.     # testing (optional) 
  51.     webhooks: 
  52.       - name: acceptance-test 
  53.         type: pre-rollout 
  54.         url: http://flagger-loadtester.test/ 
  55.         timeout: 30s 
  56.         metadata: 
  57.           type: bash 
  58.           cmd: "curl -sd 'test' http://podinfo-canary.test:9898/token | grep token" 
  59.       - nameload-test 
  60.         type: rollout 
  61.         url: http://flagger-loadtester.test/ 
  62.         metadata: 
  63.           cmd: "hey -z 2m -q 10 -c 2 http://podinfo-canary.test:9898/" 

將上述資源另存為 podinfo-canary.yaml 然后應用:

  1. kubectl apply -f ./podinfo-canary.yaml 

當 Canary 分析開始時,Flagger 將在將流量路由到 Canary 之前調用 pre-rollout webhooks。金絲雀分析將運行五分鐘,同時每半分鐘驗證一次 HTTP 指標和 rollout(推出) hooks。

幾秒鐘后,Flager 將創建 canary 對象:

  1. # applied 
  2. deployment.apps/podinfo 
  3. horizontalpodautoscaler.autoscaling/podinfo 
  4. ingresses.extensions/podinfo 
  5. canary.flagger.app/podinfo 
  6.  
  7. # generated 
  8. deployment.apps/podinfo-primary 
  9. horizontalpodautoscaler.autoscaling/podinfo-primary 
  10. service/podinfo 
  11. service/podinfo-canary 
  12. service/podinfo-primary 
  13. trafficsplits.split.smi-spec.io/podinfo 

在 boostrap 之后,podinfo 部署將被縮放到零, 并且到 podinfo.test 的流量將被路由到主 pod。在 Canary 分析過程中,可以使用 podinfo-canary.test 地址直接定位 Canary Pod。

自動金絲雀推進

Flagger 實施了一個控制循環,在測量 HTTP 請求成功率、請求平均持續時間和 Pod 健康狀況等關鍵性能指標的同時,逐漸將流量轉移到金絲雀。根據對 KPI 的分析,提升或中止 Canary,并將分析結果發布到 Slack。

Flagger 金絲雀階段

通過更新容器鏡像觸發金絲雀部署:

  1. kubectl -n test set image deployment/podinfo \ 
  2. podinfod=stefanprodan/podinfo:3.1.1 

Flagger 檢測到部署修訂已更改并開始新的部署:

  1. kubectl -n test describe canary/podinfo 
  2.  
  3. Status: 
  4.   Canary Weight:         0 
  5.   Failed Checks:         0 
  6.   Phase:                 Succeeded 
  7. Events: 
  8.  New revision detected! Scaling up podinfo.test 
  9.  Waiting for podinfo.test rollout to finish: 0 of 1 updated replicas are available 
  10.  Pre-rollout check acceptance-test passed 
  11.  Advance podinfo.test canary weight 5 
  12.  Advance podinfo.test canary weight 10 
  13.  Advance podinfo.test canary weight 15 
  14.  Advance podinfo.test canary weight 20 
  15.  Advance podinfo.test canary weight 25 
  16.  Waiting for podinfo.test rollout to finish: 1 of 2 updated replicas are available 
  17.  Advance podinfo.test canary weight 30 
  18.  Advance podinfo.test canary weight 35 
  19.  Advance podinfo.test canary weight 40 
  20.  Advance podinfo.test canary weight 45 
  21.  Advance podinfo.test canary weight 50 
  22.  Copying podinfo.test template spec to podinfo-primary.test 
  23.  Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available 
  24.  Promotion completed! Scaling down podinfo.test 

請注意,如果您在 Canary 分析期間對部署應用新更改,Flagger 將重新開始分析。

金絲雀部署由以下任何對象的更改觸發:

  • Deployment PodSpec(容器鏡像container image、命令command、端口ports、環境env、資源resources等)
  • ConfigMaps 作為卷掛載或映射到環境變量
  • Secrets 作為卷掛載或映射到環境變量

您可以通過以下方式監控所有金絲雀:

  1. watch kubectl get canaries --all-namespaces 
  2.  
  3. NAMESPACE   NAME      STATUS        WEIGHT   LASTTRANSITIONTIME 
  4. test        podinfo   Progressing   15       2019-06-30T14:05:07Z 
  5. prod        frontend  Succeeded     0        2019-06-30T16:15:07Z 
  6. prod        backend   Failed        0        2019-06-30T17:05:07Z 

自動回滾

在金絲雀分析期間,您可以生成 HTTP 500 錯誤和高延遲來測試 Flagger 是否暫停并回滾有故障的版本。

觸發另一個金絲雀部署:

  1. kubectl -n test set image deployment/podinfo \ 
  2. podinfod=stefanprodan/podinfo:3.1.2 

使用以下命令執行負載測試器 pod:

  1. kubectl -n test exec -it flagger-loadtester-xx-xx sh 

生成 HTTP 500 錯誤:

  1. watch -n 1 curl http://podinfo-canary.test:9898/status/500 

生成延遲:

  1. watch -n 1 curl http://podinfo-canary.test:9898/delay/1 

當失敗的檢查次數達到金絲雀分析閾值時,流量將路由回主服務器,金絲雀縮放為零,并將推出標記為失敗。

  1. kubectl -n test describe canary/podinfo 
  2.  
  3. Status: 
  4.   Canary Weight:         0 
  5.   Failed Checks:         10 
  6.   Phase:                 Failed 
  7. Events: 
  8.  Starting canary analysis for podinfo.test 
  9.  Pre-rollout check acceptance-test passed 
  10.  Advance podinfo.test canary weight 5 
  11.  Advance podinfo.test canary weight 10 
  12.  Advance podinfo.test canary weight 15 
  13.  Halt podinfo.test advancement success rate 69.17% < 99% 
  14.  Halt podinfo.test advancement success rate 61.39% < 99% 
  15.  Halt podinfo.test advancement success rate 55.06% < 99% 
  16.  Halt podinfo.test advancement request duration 1.20s > 0.5s 
  17.  Halt podinfo.test advancement request duration 1.45s > 0.5s 
  18.  Rolling back podinfo.test failed checks threshold reached 5 
  19.  Canary failed! Scaling down podinfo.test 

自定義指標

Canary analysis 可以通過 Prometheus 查詢進行擴展。

讓我們定義一個未找到錯誤的檢查。編輯 canary analysis 并添加以下指標:

  1. analysis: 
  2.   metrics: 
  3.   - name"404s percentage" 
  4.     threshold: 3 
  5.     query: | 
  6.       100 - sum
  7.           rate( 
  8.               response_total{ 
  9.                   namespace="test"
  10.                   deployment="podinfo"
  11.                   status_code!="404"
  12.                   direction="inbound" 
  13.               }[1m] 
  14.           ) 
  15.       ) 
  16.       / 
  17.       sum
  18.           rate( 
  19.               response_total{ 
  20.                   namespace="test"
  21.                   deployment="podinfo"
  22.                   direction="inbound" 
  23.               }[1m] 
  24.           ) 
  25.       ) 
  26.       * 100 

上述配置通過檢查 HTTP 404 req/sec 百分比是否低于總流量的 3% 來驗證金絲雀版本。如果 404s 率達到 3% 閾值,則分析將中止,金絲雀被標記為失敗。

通過更新容器鏡像觸發金絲雀部署:

  1. kubectl -n test set image deployment/podinfo \ 
  2. podinfod=stefanprodan/podinfo:3.1.3 

生成 404:

  1. watch -n 1 curl http://podinfo-canary:9898/status/404 

監視 Flagger 日志:

  1. kubectl -n linkerd logs deployment/flagger -f | jq .msg 
  2.  
  3. Starting canary deployment for podinfo.test 
  4. Pre-rollout check acceptance-test passed 
  5. Advance podinfo.test canary weight 5 
  6. Halt podinfo.test advancement 404s percentage 6.20 > 3 
  7. Halt podinfo.test advancement 404s percentage 6.45 > 3 
  8. Halt podinfo.test advancement 404s percentage 7.22 > 3 
  9. Halt podinfo.test advancement 404s percentage 6.50 > 3 
  10. Halt podinfo.test advancement 404s percentage 6.34 > 3 
  11. Rolling back podinfo.test failed checks threshold reached 5 
  12. Canary failed! Scaling down podinfo.test 

如果您配置了 Slack,Flager 將發送一條通知,說明金絲雀失敗的原因。

Linkerd Ingress

有兩個入口控制器與 Flagger 和 Linkerd 兼容:NGINX 和 Gloo。

安裝 NGINX:

  1. helm upgrade -i nginx-ingress stable/nginx-ingress \ 
  2. --namespace ingress-nginx 

為 podinfo 創建一個 ingress 定義,將傳入標頭重寫為內部服務名稱(Linkerd 需要):

  1. apiVersion: extensions/v1beta1 
  2. kind: Ingress 
  3. metadata: 
  4.   name: podinfo 
  5.   namespace: test 
  6.   labels: 
  7.     app: podinfo 
  8.   annotations: 
  9.     kubernetes.io/ingress.class: "nginx" 
  10.     nginx.ingress.kubernetes.io/configuration-snippet: | 
  11.       proxy_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:9898; 
  12.       proxy_hide_header l5d-remote-ip; 
  13.       proxy_hide_header l5d-server-id; 
  14. spec: 
  15.   rules: 
  16.     - host: app.example.com 
  17.       http: 
  18.         paths: 
  19.           - backend: 
  20.               serviceName: podinfo 
  21.               servicePort: 9898 

使用 ingress controller 時,Linkerd 流量拆分不適用于傳入流量,因為 NGINX 在網格之外運行。為了對前端應用程序運行金絲雀分析,Flagger 創建了一個 shadow ingress 并設置了 NGINX 特定的注釋(annotations)。

A/B 測試

除了加權路由,Flagger 還可以配置為根據 HTTP 匹配條件將流量路由到金絲雀。在 A/B 測試場景中,您將使用 HTTP headers 或 cookies 來定位您的特定用戶群。這對于需要會話關聯的前端應用程序特別有用。

Flagger Linkerd Ingress

編輯 podinfo 金絲雀分析,將提供者設置為 nginx,添加 ingress 引用,移除 max/step 權重并添加匹配條件和 iterations:

  1. apiVersion: flagger.app/v1beta1 
  2. kind: Canary 
  3. metadata: 
  4.   name: podinfo 
  5.   namespace: test 
  6. spec: 
  7.   # ingress reference 
  8.   provider: nginx 
  9.   ingressRef: 
  10.     apiVersion: extensions/v1beta1 
  11.     kind: Ingress 
  12.     name: podinfo 
  13.   targetRef: 
  14.     apiVersion: apps/v1 
  15.     kind: Deployment 
  16.     name: podinfo 
  17.   autoscalerRef: 
  18.     apiVersion: autoscaling/v2beta2 
  19.     kind: HorizontalPodAutoscaler 
  20.     name: podinfo 
  21.   service: 
  22.     # container port 
  23.     port: 9898 
  24.   analysis: 
  25.     interval: 1m 
  26.     threshold: 10 
  27.     iterations: 10 
  28.     match: 
  29.       # curl -H 'X-Canary: always' http://app.example.com 
  30.       - headers: 
  31.           x-canary: 
  32.             exact: "always" 
  33.       # curl -b 'canary=always' http://app.example.com 
  34.       - headers: 
  35.           cookie: 
  36.             exact: "canary" 
  37.     # Linkerd Prometheus checks 
  38.     metrics: 
  39.     - name: request-success-rate 
  40.       thresholdRange: 
  41.         min: 99 
  42.       interval: 1m 
  43.     - name: request-duration 
  44.       thresholdRange: 
  45.         max: 500 
  46.       interval: 30s 
  47.     webhooks: 
  48.       - name: acceptance-test 
  49.         type: pre-rollout 
  50.         url: http://flagger-loadtester.test/ 
  51.         timeout: 30s 
  52.         metadata: 
  53.           type: bash 
  54.           cmd: "curl -sd 'test' http://podinfo-canary:9898/token | grep token" 
  55.       - nameload-test 
  56.         type: rollout 
  57.         url: http://flagger-loadtester.test/ 
  58.         metadata: 
  59.           cmd: "hey -z 2m -q 10 -c 2 -H 'Cookie: canary=always' http://app.example.com" 

上述配置將運行 10 分鐘的分析,目標用戶是:canary cookie 設置為 always 或使用 X-Canary: always header 調用服務。

請注意,負載測試現在針對外部地址并使用 canary cookie。

通過更新容器鏡像觸發金絲雀部署:

  1. kubectl -n test set image deployment/podinfo \ 
  2. podinfod=stefanprodan/podinfo:3.1.4 

Flagger 檢測到部署修訂已更改并開始 A/B 測試:

  1. kubectl -n test describe canary/podinfo 
  2.  
  3. Events: 
  4.  Starting canary deployment for podinfo.test 
  5.  Pre-rollout check acceptance-test passed 
  6.  Advance podinfo.test canary iteration 1/10 
  7.  Advance podinfo.test canary iteration 2/10 
  8.  Advance podinfo.test canary iteration 3/10 
  9.  Advance podinfo.test canary iteration 4/10 
  10.  Advance podinfo.test canary iteration 5/10 
  11.  Advance podinfo.test canary iteration 6/10 
  12.  Advance podinfo.test canary iteration 7/10 
  13.  Advance podinfo.test canary iteration 8/10 
  14.  Advance podinfo.test canary iteration 9/10 
  15.  Advance podinfo.test canary iteration 10/10 
  16.  Copying podinfo.test template spec to podinfo-primary.test 
  17.  Waiting for podinfo-primary.test rollout to finish: 1 of 2 updated replicas are available 
  18.  Promotion completed! Scaling down podinfo.test 

 

責任編輯:姜華 來源: 黑客下午茶
相關推薦

2022-02-17 13:09:55

金絲雀部署服務集群測試

2022-11-30 08:00:00

金絲雀部署IT測試

2021-06-15 05:52:33

Linkerd canary網絡技術

2021-07-13 06:35:11

Argo Rollou GitOpsKubernetes

2023-10-08 07:34:04

2024-04-01 13:04:01

停機部署滾動部署藍綠部署

2022-08-22 10:40:40

Kubernete部署分析運行

2021-10-08 20:12:22

微服務架構Service

2021-02-28 07:52:24

蠕蟲數據金絲雀

2024-01-18 08:24:08

2021-06-03 05:48:58

GitOps 云原生Kubernetes

2025-03-04 08:53:10

2022-08-15 20:48:28

Chrome安卓網頁

2013-11-01 11:00:10

2023-11-09 07:23:57

Istio路由分析

2024-12-16 13:34:35

2023-02-20 10:13:00

灰度發布實現

2021-10-14 18:21:52

架構IstioService

2015-08-20 10:49:39

Windows 10版本

2023-09-05 07:24:33

Traefik加權輪詢
點贊
收藏

51CTO技術棧公眾號

欧美三日本三级少妇三99| 九九热精品视频| 国产精品视频中文字幕| 动漫一区在线| 粉嫩一区二区三区性色av| 欧美在线观看日本一区| 黄色精品视频在线观看| 都市激情亚洲| 欧美日韩你懂的| 欧美午夜小视频| 日本美女在线中文版| 成人福利视频在线看| 国产精品美乳一区二区免费 | 国产一级视频在线播放| 精品国产影院| 欧美美女视频在线观看| 欧美不卡在线播放| 国产精品剧情| 久久久99精品久久| 国产99在线免费| 亚洲无码久久久久| 久久五月激情| 国内精品在线一区| 色在线观看视频| 欧美午夜精彩| 亚洲美女性生活视频| 亚洲成人亚洲激情| 色av吧综合网| 国产日产亚洲精品系列| 99久久精品无码一区二区毛片 | 一区二区中文字幕在线| 国产乱码精品一区二区三区不卡| 97成人免费视频| 久久青草久久| 欧美性在线观看| 国产在线综合网| 欧美freesex交免费视频| 国产亚洲精品91在线| 大尺度做爰床戏呻吟舒畅| 欧美大片91| 欧美日韩免费一区二区三区视频| 青青在线视频观看| 免费看男女www网站入口在线 | 无码人妻精品一区二区蜜桃色欲 | 国语自产精品视频在线看一大j8| 极品久久久久久| 久久久久久久久国产一区| 中文字幕亚洲字幕| 欧美成人短视频| 欧美三级三级| 国产欧美1区2区3区| 亚洲成人自拍一区| 亚洲综合激情五月| 浪潮av一区| 亚洲日本乱码在线观看| 亚洲制服中文| 国产网站在线免费观看| 亚洲欧美日韩在线| 懂色av粉嫩av蜜臀av| 成人免费视屏| 亚洲曰韩产成在线| 国产精品久久..4399| 僵尸再翻生在线观看| 丁香五六月婷婷久久激情| 女性女同性aⅴ免费观女性恋| 神马午夜在线视频| 一本大道久久a久久综合| 黄色三级视频片| 精品福利在线| 日韩一区二区电影在线| 永久看看免费大片| 国产极品模特精品一二| 日韩av在线免费观看| 天天躁日日躁aaaxxⅹ| 欧洲杯什么时候开赛| 精品国产网站地址| 破处女黄色一级片| 亚洲精一区二区三区| 国产黑人绿帽在线第一区| 中文字幕制服诱惑| 国产精品69毛片高清亚洲| 成人看片视频| 巨骚激情综合| 亚洲摸摸操操av| 国产青青在线视频| 麻豆久久久久| 亚洲国产精彩中文乱码av| 鲁丝一区二区三区| 综合激情网站| 国产精品99久久久久久久久久久久| 亚洲专区第一页| 国产91精品在线观看| 欧美日韩亚洲免费| v天堂福利视频在线观看| 同产精品九九九| 亚洲免费黄色网| 精品亚洲自拍| 亚洲最新av在线网站| 亚洲欧美日韩精品综合在线观看| 色老板免费视频| 亚洲久色影视| 91九色视频导航| 深夜福利在线看| 自拍av一区二区三区| 美女日批免费视频| 激情综合婷婷| 国产一区二区三区精品久久久| 草视频在线观看| 日韩高清不卡一区| 国产精品手机在线| 黄色在线免费看| 色婷婷久久久综合中文字幕| 亚洲精品一二三四| 日韩成人激情| 热久久99这里有精品| www日本高清视频| 中文字幕不卡的av| 欧美 日韩 激情| 亚洲成人五区| 日韩一区av在线| 看黄色一级大片| 99re66热这里只有精品3直播| 色呦呦网站入口| 97久久香蕉国产线看观看| 欧美精品一区二区在线播放| 日韩精品一区二区三区在线视频| 毛片一区二区| 好吊妞www.84com只有这里才有精品| 日本在线观看网站| 色悠悠久久综合| 国产夫妻性爱视频| 国内精品久久久久久久97牛牛| 国产精品揄拍一区二区| 你懂的免费在线观看| 亚洲成人tv网| 日韩少妇一区二区| 精品91在线| 国产精品久久精品国产| 亚洲性图自拍| 日韩一卡二卡三卡| 四虎免费在线视频| 国产在线播放一区二区三区| 影音欧美亚洲| 香蕉久久一区| 久久久国产成人精品| 亚洲视频一区二区三区四区| 欧美国产精品一区二区三区| 久久一留热品黄| 亚洲国产一二三精品无码| 日韩成人精品一区二区三区| 这里只有精品丝袜| 中文字幕av影视| 中文字幕一区二区在线播放 | 韩漫成人漫画| 亚洲男人天堂2024| 波多野结衣电车| 日本一二三四高清不卡| 在线观看免费黄网站| 日本午夜一区| 91免费国产视频| 免费在线中文字幕| 日韩不卡在线观看| 中文字幕在线欧美| 欧美激情中文不卡| 日本77777| 欧美日韩国产成人精品| 国产区二精品视| 在线观看v片| 亚洲一区二区福利| 一个人看的www日本高清视频| 亚洲精品中文在线| 五月天丁香社区| 久久一区欧美| 中文字幕一区二区中文字幕| 91国内精品| 欧美最猛性xxxxx免费| 成人在线观看免费| 日韩欧美中文一区二区| 91蜜桃视频在线观看| 国产婷婷色一区二区三区| 午夜剧场在线免费观看| 激情婷婷欧美| 五月天色一区| 亚洲电影一区| 国产精品久久久亚洲| av网址在线免费观看| 亚洲黄色av女优在线观看| 国产又粗又猛又黄视频| 亚洲欧美另类久久久精品2019 | 中国色在线观看另类| 手机在线免费毛片| 亚洲免费在线| 久久精品国产精品亚洲精品色| 精品少妇3p| 国产一区二区三区蝌蚪| 成人黄动漫网站免费| 在线男人天堂| 久久久精品日本| 天堂91在线| 91精品国产欧美一区二区18| 日本免费观看视| 国产精品蜜臀在线观看| 日本道中文字幕| 久久超级碰视频| 乱妇乱女熟妇熟女网站| 国产精品久久久乱弄| 裸模一区二区三区免费| 国产精品国产亚洲精品| 国产成人91久久精品| 第四色日韩影片| 日韩网站在线观看| 嫩草研究院在线观看| 日韩欧美成人激情| 中文字幕日本人妻久久久免费 | 色老头一区二区| 亚洲电影激情视频网站| 国产福利视频网站| 国产欧美一区视频| 免费在线观看成年人视频| 国产盗摄视频一区二区三区| 久久人人爽av| 久久精品毛片| 国产91xxx| 激情偷拍久久| 免费看欧美一级片| 在线精品国产| 在线观看欧美亚洲| 欧美少妇xxxx| 亚洲高清视频一区二区| 伊人精品一区| 蜜桃麻豆91| 四虎5151久久欧美毛片| 国产伦精品一区二区三毛| 久久av网站| 亚洲一区二区三区久久| 亚洲18在线| 成人激情春色网| 日韩免费在线电影| 国产免费久久av| 粉嫩一区二区| 国产91网红主播在线观看| a国产在线视频| 7777免费精品视频| 中文字幕乱码在线播放| 51午夜精品视频| 亚洲性受xxx喷奶水| 欧洲日韩成人av| 亚洲精品动漫| 国产精品福利一区二区三区| 裸模一区二区三区免费| 免费看久久久| 欧美激情第一页在线观看| 蜜桃成人av| 亚洲国产精品一区二区第四页av | 亚洲欧美一区二区激情| 欧美日韩伦理片| 亚洲人成电影网站色| 国产福利第一视频在线播放| 日日骚久久av| xvideos国产在线视频| 欧美高清视频免费观看| 97蜜桃久久| 日本高清视频精品| 草莓视频成人appios| 国产精品视频成人| 99视频这里有精品| 国产精品theporn88| 日韩欧美ww| 亚洲第一导航| 欧美日本一区二区视频在线观看| 蜜臀精品一区二区| 亚洲自啪免费| 日本高清久久久| 成人午夜电影网站| 日韩精品无码一区二区三区久久久| 久久精品视频在线免费观看| 国产日产精品一区二区三区的介绍| 樱桃视频在线观看一区| 国产女同在线观看| 欧美丝袜自拍制服另类| 精品人妻一区二区三区麻豆91 | 欧美风情第一页| 亚洲卡通欧美制服中文| 在线观看亚洲欧美| 欧美日韩国产在线播放网站| 亚洲欧美另类视频| 一区二区亚洲欧洲国产日韩| av黄色在线| 国产成人精品a视频一区www| 亚洲二区av| 久久伊人一区| 综合久久一区| 黄色片久久久久| 国产传媒日韩欧美成人| 麻豆精品免费视频| 一区二区三区视频在线观看| 无码视频在线观看| 日韩视频免费直播| 搞黄视频在线观看| 国产综合在线看| 四虎永久精品在线| 麻豆蜜桃91| 亚洲欧美韩国| 国产精品久久久久久久久快鸭| 欧美激情国产精品免费| 在线视频一区二区三| 亚洲黄色片视频| 中文字幕在线日韩 | 亚洲国产欧美在线| 一级黄色片视频| 亚洲欧美三级在线| 91桃色在线观看| 2022国产精品| 色爱综合网欧美| 国产又黄又猛视频| 成人动漫一区二区在线| 蜜臀av午夜精品久久| 欧美亚洲动漫制服丝袜| 亚洲 美腿 欧美 偷拍| 九九视频这里只有精品| 国产成人毛片| 日韩videos| 男人的天堂成人在线| 欧美性生交xxxxx| 一区二区三区四区不卡视频 | 精品无人国产偷自产在线| 午夜小视频在线观看| 国产在线播放不卡| 日本电影一区二区| 国产成人精品视频ⅴa片软件竹菊| 成人国产精品免费| 激情小说中文字幕| 欧美一二三四在线| 精品孕妇一区二区三区| 国产美女精品视频| 成人精品视频| 中文字幕网av| 中文字幕第一页久久| 欧美一级黄视频| 一区二区三区日韩在线| 国产精品久久久久久久久免费高清 | 久久精品日韩一区二区三区| 天天综合天天干| 国产丝袜一区视频在线观看| 亚洲福利影院| 欧美日韩三区四区| 青青草成人在线观看| 国产不卡在线观看视频| 欧美日韩中文国产| 免费网站免费进入在线| 亚洲一区二区久久久久久| 欧美1区2区3区| av不卡中文字幕| 精品国产福利在线| 黄色影院在线播放| 国产日韩精品入口| 亚洲破处大片| 国模无码视频一区| 欧美午夜激情在线| seseavlu视频在线| 91亚洲永久免费精品| 国产精品jizz在线观看美国| 污污免费在线观看| 国产电影一区二区| 韩国精品美女www爽爽爽视频| 超碰成人在线观看| 欧美,日韩,国产在线| 91麻豆精东视频| 无码人妻一区二区三区免费| 精品国产一区二区三区在线观看 | 88xx成人免费观看视频库 | chinese偷拍一区二区三区| 国产精品日韩在线观看| 欧美一区91| 亚洲成人日韩在线| 欧美精品高清视频| 爱啪啪综合导航| 亚洲精品在线视频观看| 国产精品自在欧美一区| 国产精品视频一区在线观看| 日韩在线观看免费全集电视剧网站| 国产精品久久久久久久久久辛辛| 国产黄色片免费在线观看| 欧美激情综合网| 亚洲精品一区二区三区四区| 国产z一区二区三区| 亚洲欧美综合| 欧美做受高潮6| 日韩欧美亚洲国产另类| 国产超碰精品| 大胆欧美熟妇xx| 国产免费成人在线视频| 亚洲av永久无码国产精品久久 | 精品人妻午夜一区二区三区四区| 热99精品里视频精品| 亚洲美女视频| 怡红院一区二区三区| 亚洲成人xxx| 96sao精品免费视频观看| www一区二区www免费|