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

K8S實戰:基于k6 + Blackbox Exporter搭建純開源自建Synthetic Monitoring平臺

云計算 云原生
調研后我基于 Blackbox Exporter + Prometheus + k6 + Grafana 構建了一套“主動探測 + 事務腳本 + 性能基線”體系。本文系統記錄設計思路、技術選型、部署清單、指標與告警公式、Dashboard 以及迭代建議,供團隊落地參考。

最近被分配到新的任務,需要做個自建 Synthetic Monitoring,可以在公司現有 Kubernetes 集群內部署、可量化核心互聯網服務的可用性 / 性能 / 證書健康,并支撐 SLO 與誤差預算(Error Budget)管理。調研后我基于 Blackbox Exporter + Prometheus + k6 + Grafana 構建了一套“主動探測 + 事務腳本 + 性能基線”體系。本文系統記錄設計思路、技術選型、部署清單、指標與告警公式、Dashboard 以及迭代建議,供團隊落地參考。

為什么要自建 Synthetic Monitoring

傳統監控(主機指標 / APM / 日志)多是“被動”觀察;Synthetic Monitoring 主動從“用戶視角”定期模擬訪問與事務,以便:

  • ? 及早發現外部依賴或網絡路徑問題
  • ? 驗證上線后關鍵路徑真實可達性與性能基線
  • ? 覆蓋證書、DNS、鏈路抖動、超時等非業務代碼層面的風險
  • ? 將性能與可用性與 SLO/SLA 對齊,量化誤差預算消耗

核心能力拆分:

1. 基礎可達性:HTTP / HTTPS / DNS / TCP / ICMP

2. 復雜事務:登錄、下單、支付、查詢、多接口編排

3. 性能基準:p95 / p99 / 吞吐 / 錯誤率

4. 證書剩余天數、TLS 版本、重定向鏈

5. 全局可觀測:統一指標 → 規則 → 告警 → Dashboard

總體架構

圖片

組件選型

組件

職責

關鍵輸出

Blackbox Exporter

協議級探測 (HTTP/HTTPS/TCP/DNS/ICMP)

probe_* 指標

k6

復雜事務場景 / 負載基準 / 合成事務

http_req_* / checks / 自定義指標

StatsD Exporter (可選)

聚合 k6 指標供 Prometheus 抓取

statsd_metric_*

Prometheus

抓取、記錄、聚合、規則計算

原始 & 錄制指標

Recording Rules

計算可用率、p95 延遲、證書剩余天數等

instance:* 系列

Alert Rules

閾值 & SLO 偏差告警

告警事件

Grafana

可視化與 SLO 看板

圖表 / 單值

Pushgateway (可選)

臨時/批處理腳本上報

自定義 probe 指標

項目搭建(純開源實現)

1.Namespace

apiVersion: v1
kind: Namespace
metadata:
  name: monitoring

2.Blackbox Exporter

apiVersion: v1
kind:ConfigMap
metadata:
name:blackbox-exporter-config
namespace:monitoring
data:
blackbox.yml:|
    modules:
      http_2xx:
        prober: http
        timeout: 5s
        http:
          method: GET
          preferred_ip_protocol: "ip4"
      http_tls:
        prober: http
        timeout: 5s
        http:
          method: GET
          tls_config:
            insecure_skip_verify: false
      tcp_connect:
        prober: tcp
        timeout: 5s
      icmp:
        prober: icmp
        timeout: 3s
      dns_udp:
        prober: dns
        dns:
          query_name: "example.com."
          query_type: "A"
          transport_protocol: "udp"
---
apiVersion:apps/v1
kind:Deployment
metadata:
name:blackbox-exporter
namespace:monitoring
spec:
replicas:1
selector:
    matchLabels:
      app:blackbox-exporter
template:
    metadata:
      labels:
        app:blackbox-exporter
    spec:
      containers:
        -name:blackbox-exporter
          image:prom/blackbox-exporter:v0.25.0
          args:
            ---config.file=/config/blackbox.yml
          ports:
            -containerPort:9115
          resources:
            requests:
              cpu:50m
              memory:64Mi
            limits:
              cpu:200m
              memory:256Mi
          volumeMounts:
            -name:cfg
              mountPath:/config
      volumes:
        -name:cfg
          configMap:
            name:blackbox-exporter-config
---
apiVersion:v1
kind:Service
metadata:
name:blackbox-exporter
namespace:monitoring
spec:
selector:
    app:blackbox-exporter
ports:
    -port:9115
      targetPort: 9115

3.Prometheus(原生部署方式)

apiVersion: v1
kind:ConfigMap
metadata:
name:prometheus-config
namespace:monitoring
data:
prometheus.yml:|
    global:
      scrape_interval: 15s
      evaluation_interval: 30s
    rule_files:
      - /etc/prometheus/rules/*.yml

    scrape_configs:
      -job_name:blackbox_http
        metrics_path:/probe
        params:
          module: [http_2xx]
        static_configs:
          -targets:
            -https://example.com
            -https://grafana.com
        relabel_configs:
          -source_labels: [__address__]
            target_label:__param_target
          -source_labels: [__param_target]
            target_label:instance
          -target_label:__address__
            replacement:blackbox-exporter.monitoring.svc.cluster.local:9115

      -job_name:blackbox_tls
        metrics_path:/probe
        params:
          module: [http_tls]
        static_configs:
          -targets:
            -https://example.com
            -https://k6.io
        relabel_configs:
          -source_labels: [__address__]
            target_label:__param_target
          -source_labels: [__param_target]
            target_label:instance
          -target_label:__address__
            replacement:blackbox-exporter.monitoring.svc.cluster.local:9115

      -job_name:blackbox_icmp
        metrics_path:/probe
        params:
          module: [icmp]
        static_configs:
          -targets:
            -1.1.1.1
            -8.8.8.8
        relabel_configs:
          -source_labels: [__address__]
            target_label:__param_target
          -source_labels: [__param_target]
            target_label:instance
          -target_label:__address__
            replacement:blackbox-exporter.monitoring.svc.cluster.local:9115

      -job_name:k6_statsd
        static_configs:
          -targets: ['statsd-exporter.monitoring.svc.cluster.local:9102']

rules.yml:|
    groups:
      - name: recording_service
        rules:
          - record: instance:probe_availability:ratio
            expr: avg_over_time(probe_success[5m])
          - record: instance:probe_latency_p95:seconds
            expr: histogram_quantile(0.95, sum(rate(probe_duration_seconds_bucket[5m])) by (le, instance))
          - record: instance:probe_tls_cert_days_left
            expr: (probe_ssl_earliest_cert_expiry - time()) / 86400
          - record: job:k6_http_req_p95:seconds
            expr: histogram_quantile(0.95, sum(rate(http_req_duration_bucket[5m])) by (le, test_name))
      - name: alerts_service
        rules:
          - alert: SyntheticHighLatency
            expr: instance:probe_latency_p95:seconds > 0.8
            for: 2m
            labels:
              severity: warning
            annotations:
              summary: "High latency (p95>800ms) {{ $labels.instance }}"
          - alert: SyntheticDown
            expr: instance:probe_availability:ratio < 0.95
            for: 3m
            labels:
              severity: critical
            annotations:
              summary: "Availability <95% {{ $labels.instance }}"
          - alert: CertExpiringSoon
            expr: instance:probe_tls_cert_days_left < 30
            for: 10m
            labels:
              severity: warning
            annotations:
              summary: "TLS cert expires in <30 days {{ $labels.instance }}"
          - alert: CertExpiringCritical
            expr: instance:probe_tls_cert_days_left < 7
            for: 5m
            labels:
              severity: critical
            annotations:
              summary: "TLS cert expires in <7 days {{ $labels.instance }}"
---
apiVersion:apps/v1
kind:Deployment
metadata:
name:prometheus
namespace:monitoring
spec:
replicas:1
selector:
    matchLabels:
      app:prometheus
template:
    metadata:
      labels:
        app:prometheus
    spec:
      containers:
        -name:prometheus
          image:prom/prometheus:v2.53.0
          args:
            ---config.file=/etc/prometheus/prometheus.yml
            ---storage.tsdb.retention.time=15d
            ---storage.tsdb.path=/prometheus
            ---web.enable-lifecycle
          ports:
            -containerPort:9090
          volumeMounts:
            -name:cfg
              mountPath:/etc/prometheus
            -name:data
              mountPath:/prometheus
          resources:
            requests:
              cpu:200m
              memory:512Mi
            limits:
              cpu:1
              memory:2Gi
      volumes:
        -name:cfg
          configMap:
            name:prometheus-config
        -name:data
          emptyDir: {}
---
apiVersion:v1
kind:Service
metadata:
name:prometheus
namespace:monitoring
spec:
ports:
    -port:9090
      targetPort:9090
selector:
    app: prometheus

4.StatsD Exporter(接收 k6 指標)

apiVersion: apps/v1
kind:Deployment
metadata:
name:statsd-exporter
namespace:monitoring
spec:
replicas:1
selector:
    matchLabels:
      app:statsd-exporter
template:
    metadata:
      labels:
        app:statsd-exporter
    spec:
      containers:
        -name:statsd-exporter
          image:prom/statsd-exporter:v0.26.0
          args:
            ---statsd.listen-udp=:9125
            ---web.listen-address=:9102
          ports:
            -name:statsd-udp
              containerPort:9125
              protocol:UDP
            -name:metrics
              containerPort:9102
---
apiVersion:v1
kind:Service
metadata:
name:statsd-exporter
namespace:monitoring
spec:
selector:
    app:statsd-exporter
ports:
    -name:metrics
      port:9102
      targetPort:9102
    -name:statsd-udp
      port:9125
      protocol:UDP
      targetPort: 9125

5.構建支持 StatsD 輸出的 k6(可用官方鏡像)

k6 原生支持 --out statsd。若需 Prometheus Remote Write 可構建擴展(xk6)。這里示例使用 StatsD。

CronJob(周期性事務 + 輕量負載)
apiVersion: batch/v1
kind:CronJob
metadata:
name:k6-synthetic-cron
namespace:monitoring
spec:
schedule:"*/5 * * * *"# 每 5 分鐘運行一次
successfulJobsHistoryLimit:1
failedJobsHistoryLimit:2
jobTemplate:
    spec:
      backoffLimit:0
      template:
        spec:
          restartPolicy:Never
          containers:
            -name:k6
              image:grafana/k6:0.49.0
              args:
                -run
                ---vus
                -"5"
                ---duration
                -"1m"
                ---out
                -statsd=statsd-exporter.monitoring.svc.cluster.local:9125
                -/scripts/synthetic.js
              volumeMounts:
                -name:scripts
                  mountPath:/scripts
          volumes:
            -name:scripts
              configMap:
                name:k6-scripts
---
apiVersion:v1
kind:ConfigMap
metadata:
name:k6-scripts
namespace:monitoring
data:
synthetic.js:|
    import http from 'k6/http';
    import { check, sleep, Trend } from 'k6';

    constloginTrend=newTrend('business_login_duration');
    exportconstoptions= {
      thresholds: {
        http_req_duration: ['p(95)<800'],
        http_req_failed: ['rate<0.02'],
        business_login_duration: ['p(95)<400'],
      },
    };

    exportdefaultfunction() {
      constres=http.get('https://example.com/');
      check(res, {
        'status 200':r=>r.status===200,
        'body non-empty':r=>r.body&&r.body.length>0
      });
      constt0=Date.now();
      //偽造業務邏輯
      sleep(Math.random()*0.2);
      loginTrend.add(Date.now()-t0);
      sleep(1);
    }

6.Grafana

apiVersion: apps/v1
kind:Deployment
metadata:
name:grafana
namespace:monitoring
spec:
replicas:1
selector:
    matchLabels:
      app:grafana
template:
    metadata:
      labels:
        app:grafana
    spec:
      containers:
        -name:grafana
          image:grafana/grafana:10.4.5
          ports:
            -containerPort:3000
          env:
            -name:GF_SECURITY_ADMIN_PASSWORD
              value:"admin123"
---
apiVersion:v1
kind:Service
metadata:
name:grafana
namespace:monitoring
spec:
selector:
    app:grafana
ports:
    -port:3000
      targetPort: 3000

端口轉發調試:

kubectl -n monitoring port-forward svc/grafana 3000:3000

7.Alertmanager(可選最小示例)

apiVersion: v1
kind:ConfigMap
metadata:
name:alertmanager-config
namespace:monitoring
data:
alertmanager.yml:|
    route:
      receiver: default
    receivers:
      - name: default
        webhook_configs:
          - url: http://example-webhook.local/alert
---
apiVersion:apps/v1
kind:Deployment
metadata:
name:alertmanager
namespace:monitoring
spec:
replicas:1
selector:
    matchLabels:
      app:alertmanager
template:
    metadata:
      labels:
        app:alertmanager
    spec:
      containers:
        -name:alertmanager
          image:prom/alertmanager:v0.27.0
          args:
            ---config.file=/etc/alertmanager/alertmanager.yml
          ports:
            -containerPort:9093
          volumeMounts:
            -name:cfg
              mountPath:/etc/alertmanager
      volumes:
        -name:cfg
          configMap:
            name:alertmanager-config
---
apiVersion:v1
kind:Service
metadata:
name:alertmanager
namespace:monitoring
spec:
selector:
    app:alertmanager
ports:
    -port:9093
      targetPort: 9093

Prometheus 添加 Alertmanager(在 prometheus.yml global 下方):

alerting:
  alertmanagers:
    - static_configs:
        - targets: ["alertmanager.monitoring.svc.cluster.local:9093"]

指標設計與公式

1. 可用率(某目標近 5m):[availability_ratio = avg_over_time(probe_success[5m])]

2. p95 探測延遲(Blackbox HTTP):[p95_latency = histogram_quantile(0.95,\ sum(rate(probe_duration_seconds_bucket[5m])) by (le, instance))]

3. 證書剩余天數:[cert_days_left = (probe_ssl_earliest_cert_expiry - time()) / 86400]

4. k6 場景 p95:[k6_http_p95 = histogram_quantile(0.95,\ sum(rate(http_req_duration_bucket[5m])) by (le, test_name))]

5. SLO 剩余誤差預算消耗速率(示例 SLO 99% 可用):[error_rate = 1 - availability_ratio][budget_consumption_rate = error_rate / (1 - 0.99)]

Grafana 儀表盤建議

關鍵面板:

1. 綜合拓撲狀態(Stat + Traffic Light)

2. 可用率單值 + 誤差預算燃盡圖:Query: 1 - instance:probe_availability:ratio

3. HTTP 探測 p95:instance:probe_latency_p95:seconds

4. 證書剩余天數:instance:probe_tls_cert_days_left

5. k6 事務 p95:job:k6_http_req_p95:seconds

6. k6 錯誤率:sum(rate(http_req_failed{test_name!="",} [5m])) / sum(rate(http_reqs[5m]))

7. DNS / TCP 失敗次數:sum(increase(probe_failed_due_to_dns_lookup[15m])) by (instance)

(可將 Dashboard JSON 導出歸檔至 Git 做版本控制)

運維與排障

場景

排查方向

探測全部失敗

Blackbox Exporter Pod / Service / DNS / 網絡策略

延遲突增

Upstream 服務響應、網絡丟包、出口帶寬、限流

證書指標缺失

目標非 TLS、未走 http_tls 模塊

k6 指標缺失

StatsD UDP 丟包(集群間跨節點),可改用 DaemonSet + 本地 NodeLocal

Prometheus OOM

增加 retention 策略,分拆實例或加入 remote_write

告警風暴

增加 for、使用 group_by 聚合、引入 SLO 多窗口或抑制(Alertmanager routes)

成本與優化

? 指標基數控制:采集目標拆分成獨立 job,避免 labels 組合爆炸

? k6 事務腳本合并:減少 CronJob Pod 啟停成本

? 降低 scrape 頻率:對低變動目標 30s~60s

? p95 計算窗口:5m 與 30m 雙 recording,短期波動不直報警

與“被動”監控協同

層次

主動 (Synthetic)

被動 (Metrics/APM/Logs)

入口檢測

外部路徑真實可達

內部組件細粒度指標

證書/DNS

主動提前預警

通常缺失

事務組合

統一腳本

APM Trace 鏈路還原

回滾決策

快速驗證效果

確認內部資源使用健康

最佳實踐:告警分層 —— 外部可用性為頂層觸發,內部指標輔助定位。

最終效果

1. 總覽儀表盤:所有目標可用性狀態(綠/黃/紅)

2. 延遲分布:p50 / p95 / p99 疊加趨勢

3. 事務響應時間階梯圖(k6 Trend)

4. 證書剩余天數 Top 面板 + 低于閾值高亮

5. Error Budget 燃盡曲線

圖片圖片

總結

通過上述方案,你已在 Kubernetes 上構建了:

? 多協議主動可用性探測

? 事務級 & 性能模擬(k6)

? 統一指標采集 / 錄制 / 告警

? 證書、延遲、可用率全鏈路可視化

? 易擴展(多區域、動態目標、SLO 驅動)

如果你也在推進類似體系,歡迎一起交流實踐經驗與 SLO 設計思路。希望本文對你落地自建 Synthetic Monitoring 有幫助。

責任編輯:武曉燕 來源: 云原生SRE
相關推薦

2024-02-01 09:48:17

2023-09-06 08:12:04

k8s云原生

2022-04-22 13:32:01

K8s容器引擎架構

2022-10-10 12:54:00

Flink運維

2023-11-06 01:17:25

主機容器選項

2022-07-18 18:48:32

Kubernetes云原生

2022-05-26 10:19:59

k6性能測試

2023-11-06 07:16:22

WasmK8s模塊

2025-04-17 06:00:00

2023-09-08 08:09:12

k8sservice服務

2023-02-27 07:40:00

2020-08-27 14:59:08

K8sDevOps平臺

2021-11-04 07:49:58

K8SStatefulSetMySQL

2024-03-01 19:59:17

2023-06-08 09:05:55

2023-11-15 13:44:00

k8s-域名日志

2023-03-06 07:19:50

2023-11-27 13:54:00

kubernetes高可用

2023-09-15 08:00:20

Ingress網關Istio

2021-05-07 09:31:33

KindK8s Operator
點贊
收藏

51CTO技術棧公眾號

天天操天天操天天操| 免费在线观看日韩视频| 91丨九色丨蝌蚪丨对白| 亚洲国产成人精品女人| 欧美一级欧美一级在线播放| 天堂8在线天堂资源bt| 午夜影院在线视频| 美女诱惑一区二区| 久久久久国产精品免费网站| 90岁老太婆乱淫| yiren22亚洲综合| 亚洲精品视频一区| 国产日韩一区二区| 精品久久久久久久久久久久久久久久| 久久影院一区| 日韩av在线免播放器| 九色porny自拍| 国产亚洲成av人片在线观看| 久久久高清一区二区三区| 51国偷自产一区二区三区| 制服.丝袜.亚洲.中文.综合懂色| 欧美电影免费| 亚洲美女黄色片| 亚洲视频一二三四| 性欧美videohd高精| 一区二区三区中文免费| 欧洲精品亚洲精品| 天堂在线观看视频| 国产精品亚洲一区二区三区在线 | 婷婷丁香久久五月婷婷| 亚洲精品一区二| 手机福利在线| 国产91精品一区二区麻豆亚洲| 国产精品久久久久久久久久ktv | 亚洲情侣在线| 亚洲最新av在线网站| 99精品一区二区三区无码吞精 | 99久久精品免费看国产一区二区三区| 区一区二在线观看| 99香蕉国产精品偷在线观看 | 国产在线资源一区| 精品区在线观看| 久久99久久99精品免视看婷婷 | 国产亚洲欧美日韩美女| 99久久免费看精品国产一区| 人人爱人人干婷婷丁香亚洲| 欧美群妇大交群的观看方式| 色一情一乱一伦一区二区三区日本| 变态调教一区二区三区| 亚洲男人天堂一区| 国产高清精品软男同| 91xxx在线观看| 国产欧美一区二区三区沐欲| 美女被啪啪一区二区| 婷婷综合激情网| 91在线观看一区二区| 国产一区二区三区高清| 人妻精品一区二区三区| 成人精品gif动图一区| 91久久极品少妇xxxxⅹ软件| 99久久精品国产一区二区成人| 麻豆91在线播放| 国产有码一区二区| 国产内射老熟女aaaa∵| 国产裸体歌舞团一区二区| 91免费福利视频| 精品人妻午夜一区二区三区四区| 国产精品中文有码| 成人欧美一区二区| 日韩一级片免费观看| www.成人在线| 欧洲成人一区二区| sese一区| 亚洲精品视频在线观看网站| 免费视频爱爱太爽了| a'aaa级片在线观看| 岛国精品视频在线播放| 日韩无套无码精品| 漫画在线观看av| 午夜天堂影视香蕉久久| 黑森林福利视频导航| 日本综合久久| 制服视频三区第一页精品| 黄页网站在线看| 日韩精品亚洲aⅴ在线影院| 日韩高清av一区二区三区| 美女被到爽高潮视频| 色一区二区三区四区| 久久天天躁夜夜躁狠狠躁2022| 欧美成人精品欧美一级| 国产日产高清欧美一区二区三区| 国产v综合v亚洲欧美久久| 一级黄色免费看| 国产成人99久久亚洲综合精品| 黑人中文字幕一区二区三区| 国产福利片在线| 亚洲免费观看高清完整 | 秋霞午夜鲁丝一区二区老狼| 亚洲va欧美va国产综合久久| 刘亦菲毛片一区二区三区| 久久人人爽人人爽| 亚洲在线视频一区二区| 青春草在线视频| 91高清在线观看| 激情久久综合网| 视频福利一区| 久久天天躁狠狠躁夜夜躁| 一区二区三区视频免费看| 卡一卡二国产精品| 久久久免费看| av在线免费网址| 精品日韩美女的视频高清| 依人在线免费视频| 日韩在线你懂的| 久久九九热免费视频| 特黄视频免费看| 国产美女精品一区二区三区| 美脚丝袜一区二区三区在线观看| 午夜伦理在线视频| 欧美色手机在线观看| 2一3sex性hd| 天堂美国久久| 国产91在线播放九色快色| 性中国xxx极品hd| 国产精品丝袜在线| 日本成年人网址| 9l视频自拍蝌蚪9l视频成人| 中文字幕亚洲图片| 成年人av网站| xfplay精品久久| 黄色三级中文字幕| 精品国产鲁一鲁****| 一区二区欧美亚洲| 国产午夜免费福利| 成人精品gif动图一区| 日本一道在线观看| 亚洲日韩中文字幕一区| 亚洲天堂网在线观看| 日韩av片在线播放| www.亚洲免费av| 国产传媒久久久| 97久久中文字幕| www.色综合| 中文字幕观看视频| 国产嫩草影院久久久久| 黄色片一级视频| 欧美一性一交| 97视频在线观看亚洲| 国产 欧美 精品| 亚洲一区二区三区四区中文字幕 | 国产精品第72页| 国产盗摄一区二区三区| 一二三四中文字幕| 国产精品一区二区精品| 久久精品99无色码中文字幕| 中文字幕乱码人妻无码久久| 欧美激情一区二区三区全黄| 久久国产色av免费观看| 国产成人3p视频免费观看| 日本成人黄色片| 精品无人乱码| 日本高清不卡视频| 国产综合精品久久久久成人av| 日韩电影免费在线看| 日韩高清国产一区在线观看| 欧洲av一区二区| 中文字幕无线精品亚洲乱码一区 | 精精国产xxxx视频在线中文版| 日韩亚洲欧美成人一区| 国产一级特黄a高潮片| 成人高清视频在线| 免费观看国产精品视频| 性人久久久久| 国产精品爽爽爽| 在线观看国产福利| 色小子综合网| 亚洲在线视频观看| 欧美大胆的人体xxxx| 精品国产伦一区二区三区免费| 久久精品一级片| av在线不卡免费看| 欧美日韩中文在线视频| 国产一区二区三区电影在线观看| 国产精品精品一区二区三区午夜版 | 久久久久久久久久久久久国产精品| 日韩在线麻豆| 国产精品色午夜在线观看| 麻豆传媒在线免费看| 综合干狼人综合首页| 久久综合伊人77777蜜臀| 亚洲成人777777| 色综合久久久久久久久久久| 一级片久久久久| 国产精品影视在线观看| 内射国产内射夫妻免费频道| 欧美一站二站| 99精彩视频在线观看免费| 在线观看v片| 久久精品91久久香蕉加勒比| 高潮白浆女日韩av免费看| 看看黄色一级片| 欧美久久综合| 欧美日韩精品一区| 999久久久国产999久久久| 欧美激情a在线| 国产资源在线观看| 日韩欧美在线网站| 六月丁香婷婷综合| 亚洲视频 欧洲视频| 久久久久久久人妻无码中文字幕爆| 久久精品国产清高在天天线| 一区二区三区日韩视频| 欧美高清视频看片在线观看| 国产热re99久久6国产精品| h片在线观看视频免费| 色妞欧美日韩在线| 午夜福利视频一区二区| 欧美精品一卡二卡| 亚洲图片在线视频| 亚洲综合久久av| 长河落日免费高清观看| 97se亚洲国产综合自在线| 国产乱码一区二区三区四区| 新67194成人永久网站| av影院在线播放| 欧洲杯什么时候开赛| 国产在线精品一区二区中文| 精品国产18久久久久久二百| 国产精品久久久久久久久久小说 | 成人国产精品一区二区网站| 91精品国产99| 欧美日韩经典丝袜| 久久色精品视频| 成年人视频在线看| 亚洲精品日韩在线| 天天综合网在线观看| 日韩视频在线永久播放| 国产精品久久久久久久免费| 色呦呦网站一区| 毛片毛片女人毛片毛片| 亚洲妇女屁股眼交7| 中文字幕在线观看成人| 中文字幕亚洲一区二区av在线| 男人天堂av电影| 91小视频在线| 欧美精品欧美极品欧美激情| 岛国精品在线观看| 欧洲成人午夜精品无码区久久| 国产一区二区影院| 想看黄色一级片| 久久99精品一区二区三区| 特级丰满少妇一级| 免费在线观看视频一区| 91淫黄看大片| 美女一区二区三区在线观看| 久久99999| 欧美专区在线| 免费裸体美女网站| 日韩精品欧美精品| 国产一二三四在线视频| 美国欧美日韩国产在线播放| 在线观看av日韩| 日韩成人一区二区| 性猛交ⅹ×××乱大交| 久久精品国产999大香线蕉| 97超碰成人在线| 国内精品伊人久久久久av影院| 在线视频日韩欧美| 国产成人精品亚洲777人妖 | 不卡av电影在线播放| 国产精品嫩草av| 国产午夜精品久久久久久免费视 | 亚洲av永久无码国产精品久久| 日韩欧美你懂的| 欧美一级视频免费| 亚洲精品国产美女| 成人亚洲综合天堂| 久久夜色撩人精品| а√天堂8资源中文在线| 欧美中文字幕视频| 日韩电影精品| 国产精品乱码视频| 国产麻豆一区二区三区精品视频| 视频一区二区在线观看| 亚洲理论电影网| 九一国产精品视频| 日本不卡一区二区三区| 超碰91在线播放| 99国产精品久久久久久久久久 | 亚洲国产经典视频| 午夜免费激情视频| 欧美日韩国产在线| 97精品人妻一区二区三区在线 | 欧美高清视频手机在在线| 国产亚洲精品久久久久久久| 99热在线精品观看| 污污的网站18| 成人美女在线观看| 色婷婷国产精品免| 性久久久久久久久| 在线观看免费高清视频| 亚洲国产成人精品一区二区| avav免费在线观看| 国产最新精品视频| 另类一区二区| 久久国产精品亚洲va麻豆| 99精品电影| 91精品91久久久中77777老牛| 麻豆精品视频在线观看| 免费中文字幕av| 亚洲素人一区二区| 无码人妻丰满熟妇奶水区码| 日韩欧美久久久| av在线免费一区| 97香蕉久久超级碰碰高清版| 在线播放成人| 日韩免费电影一区二区| 亚洲成人原创| 亚洲欧美一区二区三区不卡| 久久这里都是精品| 久久精品视频日本| 欧美高清视频一二三区 | 欧美videos粗暴| 蜜桃视频在线观看成人| 国产精品v亚洲精品v日韩精品 | 亚洲一区二区四区| 香蕉精品999视频一区二区 | 国产又粗又猛又黄视频| 精品国产电影一区二区| 精品国产白色丝袜高跟鞋| 国产91精品在线播放| 久久夜色电影| 阿v天堂2018| 国产成人在线观看| 亚洲综合视频网站| 欧美日韩不卡一区二区| 岛国视频免费在线观看| 2019日本中文字幕| 国产人妖ts一区二区| 午夜久久久久久久久久久| 久久99国产精品免费| 女人黄色一级片| 欧洲精品在线观看| 国产一级网站视频在线| 日韩av片免费在线观看| 校花撩起jk露出白色内裤国产精品| 拔插拔插海外华人免费| 丰满白嫩尤物一区二区| 九九热精彩视频| 欧美电视剧在线看免费| 日本在线视频www鲁啊鲁| av电影成人| 伊人精品成人久久综合软件| 怡红院一区二区| 天天影视涩香欲综合网| 搡老岳熟女国产熟妇| 91精品国产91久久久久福利| 久久动漫网址| 欧美日本视频在线观看| 久久免费视频色| 成人免费一级片| 在线播放精品一区二区三区 | 99se视频在线观看| 国产精品网址在线| 999成人精品视频线3| 国产探花在线观看视频| 一区二区三区美女| 神马一区二区三区| 78色国产精品| 国产亚洲一区二区三区啪| 国产喷水theporn| 亚洲免费电影在线| 国产小视频免费观看| 91精品国产色综合| 国产精品片aa在线观看| 欧美一级特黄a| 亚洲永久免费av| 日韩在线免费播放| 国产精品一二三在线| 在线成人激情| 日本三级日本三级日本三级极| 精品久久久免费| 91涩漫在线观看| 91手机在线视频| 久久国产99| 久久av红桃一区二区禁漫| 精品国产亚洲一区二区三区在线观看| 欧美久久天堂| 一区二区免费在线观看| 国产精品123| 五月天婷婷导航| 欧美成人亚洲成人日韩成人| 久久99国产精品久久99大师 | 视频一区二区精品| 国产大陆精品国产| 日本熟女毛茸茸| 欧美成人黄色小视频| 久操国产精品| 中国男女全黄大片| 欧美视频一区二区三区四区|