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

一文讀懂如何在Kubernetes上輕松實現自動化部署Prometheus

開發 架構 系統運維 自動化
關于為什么要用 Prometheus,我這里就不多講,相關的文章太多了,大家也可以看看官方的說法。本文就講講如何自動化的搭建一套基于 Kubernetes 集群的 Prometheus 監控系統。

 

簡介

Prometheus 是當下火熱的監控解決方案,尤其是容器微服務架構,Kubernetes 的首選監控方案。關于為什么要用 Prometheus,我這里就不多講,相關的文章太多了,大家也可以看看官方的說法。本文就講講如何自動化的搭建一套基于 Kubernetes 集群的 Prometheus 監控系統。

我這里使用 Prometheus Operator 以及 helm 工具在 Kubernetes 集群上部署,后面給大家提供一個全自動運維 (http://t.cn/Ai8t4jLw) 的例子參考,這里直接看代碼。

關于 helm 的使用不清楚的可以參考這幾篇文章:

  •  Helm 入門指南
  •  利用 Helm 快速部署 Ingress
  •  Kubernetes 實操手冊-Helm使用 (http://t.cn/Ai85DU9N)

關于什么是 Prometheus Operator 以及為什么要用 Prometheus Operator?

Operator 是以軟件的方式定義運維過程,是一系列打包、部署和管理 Kubernetes 應用的方法。簡單來說就是將運維過程中的手動操作轉換為自動化流程,通過 Kubernetes 的 CRD(Custom Resource Definition)將部署前后的相關操作自動化,同時以參數的方式提供了靈活性。而 Prometheus Operator 是 CoreOS 提供的一整套 Prometheus 的 Operator,方便了 Prometheus 的部署。

下面我們先簡單講講 Prometheus 的架構。

Prometheus 核心

下圖是 Promtheus 官方的架構圖

Prometheus Server

Prometheus Server 是監控系統的服務端,服務端通過服務發現的方式,抓取被監控服務的指標,或者通過 pushgateway 的間接抓取,抓取到指標數據后,通過特定的存儲引擎進行存儲,同時暴露一個 HTTP 服務,提供用 PromQL 來進行數據查詢。注意,Prometheus 是定時采樣數據,而不是全量數據。

Exporter

Prometheus 需要服務暴露 http 接口,如果服務本身沒有,我們不需要改造服務,可以通過 exporter 來間接獲取。Exporter 就充當了 Prometheus 采集的目標,而由各個 exporter 去直接獲取指標。目前大多數的服務都有現成的 exporter,我們不需要重復造輪子,拿來用即可,如 MySQL,MongoDB 等,可以參考這里。

Push Gateway

Prometheus 采集指標的方式主要有兩種,一種是服務端暴露接口(Exporter),由 Prometheus 主動去抓取指標,稱為 pull 模式。另一種是服務端主動上報,服務端將指標主動上報至 Push Gateway,Prometheus 再從 Push Gateway 中獲取,稱為 push 模式。而 Push Gateway 就是 push 模式中重要的中介角色,用于暫存服務端上報的指標,等待 Prometheus 收集。

為什么要有兩種模式呢?我們來比較一下這兩種模式的特點。

Pull 模式:Prometheus 主動抓取的方式,可以由 Prometheus 服務端控制抓取的頻率,簡單清晰,控制權在 Prometheus 服務端。通過服務發現機制,可以自動接入新服務,去掉下線的服務,無需任何人工干預。對于各種常見的服務,官方或社區有大量 Exporter 來提供指標采集接口,基本無需開發。是官方推薦的方式。 

Push 模式:由服務端主動上報至 Push Gateway,采集最小粒度由服務端決定,等于 Push Gateway 充當了中介的角色,收集各個服務主動上報的指標,然后再由 Prometheus 來采集。但是這樣就存在了 Push Gateway 這個性能單點,而且 Push Gateway 也要處理持久化問題,不然宕機也會丟失部分數據。同時需要服務端提供主動上報的功能,可能涉及一些開發改動。不是首選的方式,但是在一些場景下很適用。例如,一些臨時性的任務,存在時間可能非常短,如果采用 Pull 模式,可能抓取不到數據。

Alert Manager

Alert Manager 是 Prometheus 的報警組件,當 Prometheus 服務端發現報警時,推送 alert 到 Alert Manager,再由 Alert Manager 發送到通知端,如 Email,Slack,微信,釘釘等。Alert Manager 根據相關規則提供了報警的分組、聚合、抑制、沉默等功能。

Web UI/Grafana

Prometheus 提供了一個簡單的 web UI 界面,用于查詢數據,查看告警、配置等,官方推薦使用另一個開源項目 grafana 來做指標的可視化展示,制作儀表盤等。

部署

下面詳細講講如何自動化部署 Promethues,自動化監控以及遇到的一些坑。

部署這塊 Prometheus Operator 已經幫我們做的非常好了,我們只需要調整一些參數即可實現部署。我們使用 helm 來部署 Prometheus,只需要一個命令。 

  1. helm install --name my-release stable/prometheus-operator 

不過這不可能滿足我們的需求,我們需要的不是演示,而是實戰。

下面是詳細講解,完整的項目可以參考這里:http://t.cn/Ai8tzUaR 。

我們首先要確定的是如何持久化存儲 Prometheus 的指標數據,默認的方式是以文件的方式保存在服務端的磁盤上,但這樣不利于服務端的橫向擴展以及數據的備份恢復。Prometheus 還提供了其他存儲后端的整合,詳見這里。目前比較流行的做法是使用 InfluxDB 作為存儲后端,InfluxDB 是一款強大的時序數據庫,就是為監控指標等時序數據而生的。

首先,我們來部署 InfluxDB,為了持久化 InfluxDB 的數據,我們先創建一個 PVC 來持久化數據。

pvc.yaml 

  1. apiVersion: v1  
  2. kind: PersistentVolumeClaim  
  3. metadata:  
  4.   name: influxdb-pvc  
  5.   namespace: monitoring  
  6.   labels:  
  7.     app: influxdb  
  8.     release: influxdb  
  9. spec:  
  10.   accessModes:  
  11.     - ReadWriteOnce  
  12.   storageClassName: monitor-ebs  # 選擇合適的存儲類  
  13.   resources:  
  14.     requests:  
  15.       storage: 200Gi  # 設置合適的存儲空間 

然后我們創建 InfluxDB 的配置文件

influxdb.yaml 

  1. # 持久化存儲配置  
  2. persistence:  
  3.   enabled: true  
  4.   useExisting: true  
  5.   name: "influxdb-pvc"  # 使用我們剛才創建的 PVC  
  6.   accessMode: "ReadWriteOnce"  
  7.   size: 200Gi  
  8. # 創建 Prometheus 的數據庫  
  9. env:  
  10.   - name: INFLUXDB_DB  
  11.     value: "prometheus"  
  12. # influxdb 配置  
  13. config:  
  14.   data:  
  15.     # 這兩個配置默認限制了數據的上限,建議設置為 0 變成無限制,不然在達到上限后插入數據會返回錯誤  
  16.     max_series_per_database: 0  
  17.     max_values_per_tag: 0  
  18.   http:  
  19.     enabled: true  # 啟動 http  
  20. initScripts:  
  21.   enabled: true  
  22.   scripts:  
  23.     # 設置數據保留策略,默認是永不失效,需要人工清理  
  24.     # 保留 180 天數據  
  25.     retention.iql: |+  
  26.       CREATE RETENTION POLICY "default_retention_policy" on "prometheus" DURATION 180d REPLICATION 1 DEFAULT 

InfluxDB 的全部配置可以參考文檔,我講一下上面的兩個主要的配置。

max-series-per-database

內存中每個數據庫最大的序列數量,默認是 1000000,設置為 0 改成無限制。如果新來的數據增加了序列數量并超過了這個上限,那么數據就會被丟棄就并返回一個 500 錯誤: 

  1. {"error":"max series per database exceeded: <series>"} 

max-values-per-tag

內存中每個標簽的最大數據量,默認是 100000,設置為 0 改成無限制。如果新來的數據超過了這個限制,也會被丟棄并返回寫入失敗的錯誤。

我們使用如下命令來部署 InfluxDB: 

  1. helm install --name=influxdb --namespace=monitoring -f influxdb.yaml stable/influxdb 

存儲后端部署成功后,我們就來部署 Prometheus-operator 了,首先創建如下的配置文件:

prometheus.yaml 

  1. # prometheus 服務端  
  2. prometheus:  
  3.   prometheusSpec:  
  4.     # 遠端存儲配置  
  5.     remoteWrite:  
  6.     - url: "http://influxdb:8086/api/v1/prom/write?db=prometheus 
  7.     remoteRead:  
  8.     - url: "http://influxdb:8086/api/v1/prom/read?db=prometheus 
  9.   # ingress 配置,暴露 web 界面  
  10.   ingress:  
  11.     enabled: true  
  12.     annotations:  
  13.       kubernetes.io/ingress.class: traefik  # ingress class  
  14.     hosts:  
  15.     - "prometheus.mydomain.io"  # 配置域名  
  16. alertmanager:  
  17.   # alertmanager 配置  
  18.   config:  
  19.     global:  
  20.       # SMTP 配置  
  21.       smtp_smarthost: 'xxx'  
  22.       smtp_from: 'xxx' 
  23.        smtp_auth_username: 'xxx'  
  24.       smtp_auth_password: 'xxx'  
  25.       # 全局 opsgenie 配置  
  26.       # opsgenie_api_key: ""  
  27.     # 報警路由  
  28.     route:  
  29.       receiver: 'monitoring-warning' 
  30.        group_by: ['alertname']  
  31.       group_wait: 30s  
  32.       group_interval: 3m  
  33.       repeat_interval: 8h  
  34.       routes:  
  35.       - match:  
  36.           severity: critical  
  37.         receiver: monitoring-critical  
  38.         group_by: ['alertname']  
  39.       - match:  
  40.           severity: warning  
  41.         receiver: monitoring-warning  
  42.         group_by: ['alertname']  
  43.     # 報警抑制規則  
  44.     inhibit_rules:  
  45.     - source_match:  
  46.         severity: 'critical'  
  47.       target_match:  
  48.         severity: 'warning'  
  49.       # 抑制相同的報警  
  50.       equal: ['alertname']  
  51.     # 接收者配置  
  52.     receivers:  
  53.     - name: 'monitoring-critical'  
  54.       email_configs:  
  55.       - to: 'monitor@mydomain.com'  
  56.       # 發送到釘釘的 webhook,需要部署一個轉發服務,詳見項目代碼  
  57.       webhook_configs:  
  58.       - send_resolved: true  
  59.         url: http://prometheus-webhook-dingtalk/dingtalk/monitoring/send  
  60.     - name: 'monitoring-warning'  
  61.       email_configs:  
  62.       - to: 'monitor@mydomain.com'  
  63.   alertmanagerSpec:  
  64.     # alertmanager 存儲配置,alertmanager 會以文件形式存儲報警靜默等配置  
  65.     storage:  
  66.       volumeClaimTemplate:  
  67.         spec:  
  68.           accessModes:  
  69.           - ReadWriteOnce  
  70.           storageClassName: monitor-ebs  # 選擇合適的存儲類  
  71.           resources:  
  72.             requests:  
  73.               storage: 20Gi  # 選擇合適的大小  
  74.   # ingress 配置,暴露 alert 的界面  
  75.   ingress:  
  76.     enabled: true  
  77.     annotations:  
  78.       kubernetes.io/ingress.class: traefik  # ingress class  
  79.     hosts:  
  80.     - "alert.mydomain.io"  # 配置域名  
  81. # grafana 配置  
  82. grafana:  
  83.   replicas: 1  
  84.   adminPassword: "admin"  # 管理員賬戶 admin,密碼 admin  
  85.   env:  
  86.     # GF_SERVER_DOMAIN: ""  # 域名  
  87.     GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s/"  
  88.     # GF_DATABASE_URL: "mysql://user:secret@host:port/database"  # SQL 數據庫  
  89.   # ingress 配置,暴露界面  
  90.   ingress:  
  91.     enabled: true  
  92.     annotations:  
  93.       kubernetes.io/ingress.class: traefik  # ingress class  
  94.     hosts:  
  95.     - "grafana.mydomain.io"  # 設置域名  
  96. # exporter 設置,自建集群需要開啟,如果是云服務商托管集群,則獲取不到這些信息,可以關閉  
  97. kubeControllerManager:  
  98.   enabled: true  
  99. kubeEtcd:  
  100.   enabled: true  
  101. kubeScheduler:  
  102.   enabled: true 

然后我們使用如下命令來部署 Prometheus-Operator。

  1. helm install --name=prometheus --namespace=monitoring -f prometheus.yam stable/prometheus-operator 

如果需要 Prometheus-Pushgateway 的話,創建如下配置:

prometheus-pushgateway.yaml 

  1. replicaCount: 1  
  2. # 自動在 Prometheus 中添加 target  
  3. serviceMonitor:  
  4.   enabled: true  
  5.   namespace: monitoring  
  6.   selector: 
  7.      app: prometheus-pushgateway  
  8.     release: prometheus  
  9. # ingress 配置,暴露界面  
  10. ingress:  
  11.   enabled: true  
  12.   annotations:  
  13.     kubernetes.io/ingress.class: traefik  # ingress class  
  14.   hosts:  
  15.   - "pushgateway.mydomain.io"  # 設置域名 

同樣的方式部署:

  1. helm install --name=prometheus-pushgateway --namespace=monitoring -f prometheus-pushgateway.yaml stable/prometheus-pushgateway 

這樣 Prometheus 的核心組件都部署完成了,查看集群中的 Pod,有類似如下圖所示的 Pod。

這里有個注意點,如果通過 Prometheus 收集 kube-proxy 的指標,需要 kube-proxy 開通訪問,默認 kube-proxy 只允許本機訪問。

需要修改 kube-proxy 的 ConfigMap 中的 metricsBindAddress 值為 0.0.0.0:10249。 

  1. kubectl -n kube-system edit cm kube-proxy 

會看到如下內容,將 metricsBindAddress: 127.0.0.1:10249 這行修改為 metricsBindAddress: 0.0.0.0:10249 保存即可。 

  1. apiVersion: v1  
  2. data:  
  3.   config.conf: |-  
  4.     apiVersion: kubeproxy.config.k8s.io/v1alpha1  
  5.     kind: KubeProxyConfiguration  
  6.     # ...  
  7.     # metricsBindAddress: 127.0.0.1:10249  
  8.     metricsBindAddress: 0.0.0.0:10249  
  9.     # ...  
  10.   kubeconfig.conf: |-  
  11.     # ...  
  12. kind: ConfigMap  
  13. metadata:  
  14.   labels:  
  15.     app: kube-proxy  
  16.   name: kube-proxy  
  17.   namespace: kube-system 

然后刪除 kube-proxy 的 Pod,讓它重啟即可看到已正常抓取。

應用

至此,Prometheus 的服務端就全部部署完成了。接下來就是根據實際業務部署相應的 Exporter,ServiceMonitor 和 PrometheusRule 了。官方和社區有大量現成的 Exporters 可供使用,如果有特殊需求的也可以參考這里自行開發。

接下來我們講講如何快速集成 Prometheus 監控和報警。

我們之前提到過 Operator 通過 CRD 的方式提供了很多部署方面的自動化,Prometheus-Operator 就提供了四個 CRD,分別是:

  •  Prometheus,定義了 Prometheus 服務端,用來生成服務端控制器,保證了服務端的正常運行,我們只需要一個此 CRD 的實例
  •  Alertmanager,定義了 AlertManager 服務,用來生成服務端控制器,保證了服務的正常運行,我們也只需要一個此 CRD 的實例
  •  ServiceMonitor,定義了 Prometheus 抓取指標的目標,就是 Prometheus 界面 targets 頁面看到的內容,此 CRD 幫助我們創建目標的配置
  •  PrometheusRule,定義了 Prometheus 規則,就是 Prometheus 界面 Rules 頁面看到的內容,此 CRD 幫助我們創建規則的配置

Prometheus 和 Alertmanager CRD 主要是之前部署階段關注的,在服務應用階段,我們主要是創建各個 ServiceMonitor 和 PrometheusRule 來配置服務端。

Prometheus-Operator 默認會幫我們注冊相關組件的抓取目標,如下圖所示:

我們要定義其他的抓取目標,首先來創建了一個 ServiceMonitor 抓取我們部署的 InfluxDB 的指標:

  1. apiVersion: monitoring.coreos.com/v1  
  2. kind: ServiceMonitor  
  3. metadata:  
  4.   name: influxdb-scrape-targets  
  5.   labels:  
  6.     app.kubernetes.io/name: scrape-targets  
  7.     app.kubernetes.io/instance: influxdb-target  
  8.     release: prometheus  
  9. spec:  
  10.   # 用標簽選擇器來選擇相應的 Pod  
  11.   selector:  
  12.     matchLabels:  
  13.       app: influxdb  
  14.       release: influxdb  
  15.   # 選擇命名空間  
  16.   namespaceSelector:  
  17.     matchNames:  
  18.     - monitoring  
  19.   # 定義抓取的配置,如端口、頻率等  
  20.   endpoints:  
  21.     - interval: 15s  
  22.       port: api 

我們在項目中創建了一個 Chart 模版(在 charts/scrape-targets/ 目錄),能夠快速的創建 ServiceMonitor,提供下面的配置文件:

influxdb.yaml 

  1. selector:  
  2.   matchLabels:  
  3.     app: influxdb  
  4.     release: influxdb  
  5. namespaceSelector:  
  6.   matchNames:  
  7.     - monitoring  
  8. endpoints:  
  9.   - port: api  
  10.     interval: 15s 

然后使用 helm 安裝:

  1. helm install --name influxdb-target --namespace monitoring -f influxdb.yaml charts/scrape-targets/ 

創建完成后無需重啟 Prometheus 服務端,服務端根據標簽自動載入,過一會可以在界面上看到:

Prometheus-Operator 同樣會幫我們注冊許多相關的規則,如下圖所示:

配置我們自己的 PrometheusRule 同樣很簡單,我們用如下配置生成報警規則,如果 5 分鐘內的 HTTP 500 錯誤大于 5 則報警。

  1. apiVersion: monitoring.coreos.com/v1  
  2. kind: PrometheusRule  
  3. metadata:  
  4.   name: request-rules  
  5.   labels:  
  6.     app.kubernetes.io/name: rules  
  7.     app.kubernetes.io/instance: request  
  8.     app: prometheus-operator  
  9.     release: prometheus  
  10. spec:  
  11.   groups:  
  12.   - name: request-rules.rules  
  13.     rules:  
  14.       - alert: RequestStatusCode500  
  15.         annotations: 
  16.            summary: http status code 500 is high for `{{$labels.service}}`  
  17.         expr: http_request_total{statuscode="500"> 5  
  18.         for: 5m  
  19.         labels:  
  20.           severity: critical 

也可以用我們項目中的 Chart 模版(在 charts/rules/ 目錄)來快速配置。

request.yaml 

  1. groups:  
  2.   - rules:  
  3.     - alert: RequestStatusCode500  
  4.       expr: http_request_total{statuscode="500"> 5  
  5.       for: "5m"  
  6.       labels:  
  7.         severity: critical  
  8.       annotations:  
  9.         summary: http status code 500 is high for `{{$labels.service}}` 

然后 helm 安裝 

  1. helm install --name request --namespace monitoring -f request.yaml charts/rules/ 

關于怎么寫規則配置,可以參考官方的文檔和 PromQL 語法。

以上的操作還是手動化的,如果要全自動化的話,可以參考我的項目,定義好配置文件,寫好自動化腳本,接入 CI/CD 工作流,即可讓監控系統實現自動部署、自動配置。 

 

責任編輯:龐桂玉 來源: 運維之美
相關推薦

2022-02-15 08:07:17

測試軟件開發

2024-02-29 14:27:37

人工智能機器學習物聯網

2024-01-03 08:54:17

Kubernetes策略工具

2022-05-12 08:01:18

KubernetesDocker容器

2021-12-08 09:00:00

數據庫Liquibase腳本

2017-06-02 15:32:09

大數據數據可視化

2021-03-30 18:05:10

數字化轉型計算機技術

2021-08-04 16:06:45

DataOps智領云

2023-12-22 19:59:15

2021-02-22 09:44:03

KubernetesDNSLinux

2023-03-03 08:26:32

負載均衡算法服務

2020-12-11 10:20:33

Ansible運維軟件包

2025-09-19 09:52:19

2020-06-05 14:15:29

可視化數據集分析

2022-08-30 19:14:31

LinuxBash

2022-09-22 09:00:46

CSS單位

2025-04-03 10:56:47

2018-09-28 14:06:25

前端緩存后端

2022-11-06 21:14:02

數據驅動架構數據

2025-02-11 09:29:07

點贊
收藏

51CTO技術棧公眾號

国产午夜伦鲁鲁| 国产精品大陆在线观看| 26uuu国产| 日韩av影片| 99久久伊人精品| 国产精品久久久久久av| 国产大片免费看| 亚洲国产合集| 在线播放/欧美激情| 草草视频在线免费观看| 国产大学生校花援交在线播放| 美女性感视频久久| 韩国日本不卡在线| 久久午夜精品视频| 国产精品自在线拍| 欧美日韩国产一级| 欧美一区二区中文字幕| 日韩美女网站| 久久久亚洲综合| 亚洲综合在线小说| 日日夜夜狠狠操| 影音国产精品| 久久亚洲国产精品| 干b视频在线观看| 国产精品久久久网站| 欧美在线观看一区| 国产 日韩 亚洲 欧美| 欧美成人hd| 久久久www成人免费无遮挡大片| 99c视频在线| 又骚又黄的视频| 久久精品道一区二区三区| 欧美理论片在线观看| 成人18视频免费69| 欧美一区三区| 亚洲女同性videos| 亚洲熟女一区二区三区| 91国产精品| 欧美综合亚洲图片综合区| 天堂…中文在线最新版在线| 国产人成网在线播放va免费| 国产精品天美传媒沈樵| 蜜桃视频日韩| 神马午夜精品95| 成人激情文学综合网| 91在线观看免费高清| ,亚洲人成毛片在线播放| 免费在线观看成人| 国产精品久久97| 黄色av一级片| 丝袜美腿亚洲一区| 国产97在线|亚洲| 69国产精品视频免费观看| 99精品热视频只有精品10| 欧美大码xxxx| 精国产品一区二区三区a片| 亚洲成人一区| 久久精品中文字幕电影| 蜜桃av.com| 国产精品99视频| 久久久国产视频91| 亚洲女人久久久| 希岛爱理一区二区三区| 精品国偷自产在线视频99| 国内毛片毛片毛片毛片毛片| 日韩在线高清| 久久人体大胆视频| 在线观看成人毛片| 欧美1区2区| 午夜免费日韩视频| 中文字幕亚洲精品一区| 丝袜美腿亚洲一区| 91九色国产在线| 国产欧美一区二区三区视频在线观看| 狠狠网亚洲精品| av色综合网| 水中色av综合| 国产精品高潮呻吟| 国产 国语对白 露脸 | 精品美女一区| 51精品秘密在线观看| 国产成人精品综合久久久久99| jizz性欧美23| 亚洲免费小视频| 后入内射无码人妻一区| 欧美激情aⅴ一区二区三区| 孩xxxx性bbbb欧美| 午夜一级黄色片| 国产一区二区中文字幕| 国产伦精品一区二区三区视频黑人| 欧美熟妇乱码在线一区| 久久久久久亚洲综合影院红桃| 五月婷婷综合色| 污污影院在线观看| 岛国视频午夜一区免费在线观看 | 向日葵视频成人app网址| 欧美日韩欧美一区二区| 久久久久99人妻一区二区三区| 亚洲日本三级| 久久成人精品一区二区三区| 欧美日韩精品区| 久久国产精品区| 国产伦精品一区二区三区高清版| 国产福利免费在线观看| 一级日本不卡的影视| 日本成年人网址| 国产精品99久久免费| 亚洲欧美在线播放| 久草福利资源在线观看| 日本女人一区二区三区| 国产精品手机视频| 在线看av的网址| 五月婷婷综合网| 午夜视频在线观| 亚洲丝袜啪啪| 欧美激情视频在线免费观看 欧美视频免费一| 日韩污视频在线观看| 精品伊人久久久久7777人| 国产乱码精品一区二区三区不卡| 麻豆av免费在线观看| 色综合激情五月| 97精品人妻一区二区三区蜜桃| 清纯唯美综合亚洲| 青青精品视频播放| 亚洲女人18毛片水真多| 中文字幕一区二| 久久午夜夜伦鲁鲁一区二区| 美女网站色精品尤物极品姐弟| 日韩一区二区三区国产| 波多野结衣家庭主妇| 99re视频精品| 日本在线xxx| 无码国模国产在线观看| 日韩在线激情视频| 国产情侣呻吟对白高潮| 91老司机福利 在线| 欧美男女爱爱视频| 一区二区在线视频观看| 久久色精品视频| 国产又粗又猛又黄又爽无遮挡| 国产日韩欧美一区二区三区乱码| 精品久久久久久久久久中文字幕| 精品国产18久久久久久洗澡| 欧美福利视频在线| 亚洲欧美另类视频| 亚洲综合精品自拍| 国产一精品一aⅴ一免费| 欧美一区在线看| 99久久伊人精品影院| 成人在线网址| 日韩亚洲欧美在线| 日韩视频中文字幕在线观看| 激情综合五月天| 免费看啪啪网站| 国产精品国产三级在线观看| 久久视频免费在线播放| 午夜精品一区二区三| 亚洲男人的天堂在线观看| 在线播放免费视频| 欧美精品不卡| 国产综合第一页| 筱崎爱全乳无删减在线观看| 亚洲图片在线综合| 中文字幕日日夜夜| 国产精品成人免费| 男人操女人下面视频| 欧美午夜久久| 久久综合一区二区三区| 亚洲wwww| 欧美成人免费视频| 日本人妻熟妇久久久久久| 精品久久久久久久久久久久| 亚洲成人网在线播放| 日韩电影网1区2区| 亚洲一区二区三区四区中文| 久久av网站| 91高清视频在线免费观看| 美国成人毛片| 欧美群妇大交群的观看方式| 清纯粉嫩极品夜夜嗨av| 99视频国产精品| 三级a在线观看| 久久久久久久久国产一区| 国产丝袜不卡| 国产精品字幕| 色与欲影视天天看综合网| 欧美女v视频| 911国产精品| 国产又大又黑又粗免费视频| 国产精品免费视频一区| 亚洲 自拍 另类 欧美 丝袜| 免费在线播放第一区高清av| 中文字幕中文字幕一区三区| 六月丁香久久丫| 国产精品永久免费在线| 久久电影网站| 一区国产精品视频| 亚洲国产精品久久久久久6q| 色婷婷激情综合| 久久久久97国产| 国产精品无圣光一区二区| 日韩成人av影院| 蜜桃久久久久久| 奇米精品一区二区三区| 久久久久久久久久久久久久久久久久| 国产一区免费视频| 国产第一亚洲| 国产91网红主播在线观看| 激情影院在线| 久久韩剧网电视剧| 久久久pmvav| 精品久久久久香蕉网| 免费看av在线| 激情久久av一区av二区av三区| 久久成人小视频| 久久精品综合网| 免费a v网站| 国产成+人+日韩+欧美+亚洲| 色播五月综合网| 三级不卡在线观看| 黄色片网址在线观看| 欧美日韩国产一区精品一区| 日韩在线观看电影完整版高清免费| 国产乱论精品| 成人羞羞视频免费| 成人免费91| 国产精品久久久亚洲| 日本黄色免费在线| 97视频在线观看成人| 色呦呦在线看| 欧美黑人xxxx| av免费在线免费观看| 日韩欧美黄色| 在线精品播放av| 亚洲欧美丝袜中文综合| 精品国产91九色蝌蚪| av加勒比在线| 91精品蜜臀在线一区尤物| 在线观看av大片| 欧美午夜精品一区二区三区 | 91成人在线精品| 91在线看视频| 婷婷六月综合亚洲| 亚洲精品视频在线观看免费视频| 亚洲一区二区三区四区五区中文| 欧美爱爱免费视频| 中文字幕一区免费在线观看| 免费看裸体网站| 国产欧美一区在线| 欧美性猛交xxxx乱| 国产欧美一区二区精品仙草咪| 黄色aaa视频| 久久蜜臀精品av| 欧美另类z0zx974| 中文字幕高清不卡| 欧洲性xxxx| 亚洲欧洲精品一区二区精品久久久| 日本一二三不卡视频| 国产精品麻豆久久久| xxxxx99| 国产精品毛片高清在线完整版| 午夜影院黄色片| 中文字幕在线一区二区三区| 亚洲综合图片一区| 亚洲码国产岛国毛片在线| 久久久精品视频免费观看| 夜夜精品视频一区二区| 中文字幕在线观看免费视频| 日韩欧美在线观看| 亚洲国产综合久久| 狠狠干狠狠久久| 亚洲精品久久久久久久蜜桃| 欧美私模裸体表演在线观看| 97人妻一区二区精品免费视频| 日韩一级在线观看| 无码国产精品高潮久久99| 亚洲精品按摩视频| 成人影院免费观看| 久久影院模特热| 草草视频在线| 国产精品免费久久久| 只有精品亚洲| 精品1区2区| 精品成人影院| 久久综合亚洲精品| 久久xxxx精品视频| 最新av免费在线观看| 国产91精品入口| 精品少妇人妻一区二区黑料社区| 国产精品激情偷乱一区二区∴| 免费三片在线播放| 欧美性猛xxx| 精品黑人一区二区三区国语馆| 亚洲国产欧美一区| 国产98在线| 久久久久久这里只有精品| 国产成人精品123区免费视频| 亚洲tv在线观看| 亚洲69av| 国产一区二区三区乱码| 肉丝袜脚交视频一区二区| 中文字幕1区2区| 波多野结衣网站| 欧美视频第一页| 999国产精品视频免费| 亚洲男人天堂手机在线| 影音先锋在线视频| 国产精品扒开腿做爽爽爽男男 | 国内精品伊人久久久久av一坑| 波多野结衣视频播放| 亚洲视频一二区| 波多野结衣理论片| 日韩激情在线视频| 99福利在线| 国产伦精品免费视频| 色狼人综合干| 国产亚洲精品久久久久久久| 日本欧美一区二区| 中文成人无字幕乱码精品区| 亚洲手机成人高清视频| 国产成人精品一区二区色戒| 亚洲第一视频在线观看| 丝袜美腿av在线| 成人亚洲欧美一区二区三区| 国产一区二区三区站长工具| 奇米精品一区二区三区| 成人网男人的天堂| 婷婷在线精品视频| 欧美色倩网站大全免费| 美州a亚洲一视本频v色道| 久久久久久久久中文字幕| 精品国产欧美| 免费观看中文字幕| 狠狠狠色丁香婷婷综合久久五月| 久久久久亚洲AV成人无在| 色女孩综合影院| 九色视频网站在线观看| 51午夜精品视频| 欧美尿孔扩张虐视频| 99视频在线免费播放| 成人av中文字幕| 国产极品在线播放| 欧美精品一区二区蜜臀亚洲| 免费网站在线观看人| 91亚色免费| 亚洲午夜一区| 日韩精品xxx| 亚洲专区一二三| 日本黄色免费视频| 欧美性视频网站| 国产精品一线天粉嫩av| 国产视频一区二区三区在线播放 | 亚洲二区三区四区| 日韩成人午夜电影| 欧美日韩生活片| 制服丝袜亚洲网站| 菠萝蜜视频国产在线播放| 91免费版黄色| 亚洲国产婷婷| theav精尽人亡av| 色哟哟精品一区| 91xxx在线观看| 91在线视频一区| 韩国自拍一区| 瑟瑟视频在线观看| 欧美日韩综合色| 在线中文字幕电影| 国产亚洲欧美另类一区二区三区| 国产一区导航| 国产wwwwxxxx| 日韩片之四级片| 最新欧美色图| 在线观看成人av电影| 国产大陆精品国产| 亚洲午夜18毛片在线看| 亚洲午夜性刺激影院| www久久久| 青青艹视频在线| 国产精品国产自产拍高清av王其 | 国产午夜精品无码一区二区| 亚洲精品国产成人| 一二区成人影院电影网| 最新中文字幕久久| www.成人在线| 一区二区三区播放| 性日韩欧美在线视频| 成人亚洲一区| 午夜免费福利影院| 欧美体内she精视频| 日本资源在线| 色综合久久久久久久久五月| 国产精品一区二区男女羞羞无遮挡 | 欧美三级电影在线| 奇米视频888| 狠狠躁18三区二区一区| 日本中文字幕在线观看| 久久国产精品久久| 狠狠色丁香久久婷婷综合_中| 日韩视频在线观看一区| 久久国产精品久久久久久久久久|