精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

99久久精品免费观看| 综合久久综合| 在线视频国产一区| 在线看视频不卡| 日本一欧美一欧美一亚洲视频| 99热这里只有精品2| 成人一级福利| 中文字幕精品一区二区三区精品| 91亚洲精品久久久| 久久中文字幕免费| 午夜免费一区| 亚洲精品动漫100p| 一女二男3p波多野结衣| 51精品视频| 国产精品久久久久久久久动漫 | 国产麻豆a毛片| 亚洲日本天堂| 亚洲日本va午夜在线影院| 免费影院在线观看一区| a网站在线观看| 日本va欧美va瓶| 久久免费精品日本久久中文字幕| 亚洲精品一区二区三区影院忠贞| 超碰地址久久| 欧美电影一区二区三区| 欧美三级午夜理伦三级| 一色桃子av在线| 国产精品人成在线观看免费| 久久综合毛片| 欧美熟妇另类久久久久久不卡| 日本vs亚洲vs韩国一区三区二区| 国产91|九色| 久久久久久久中文字幕| 精品av中文字幕在线毛片| 色老板在线视频一区二区| 7777女厕盗摄久久久| 欧洲熟妇精品视频| 欧美激情网站| 婷婷综合另类小说色区| 欧美精品在欧美一区二区| 在线免费黄色| 日本一区二区在线不卡| 欧美精品亚洲精品| 午夜福利视频一区二区| 国产成a人亚洲| 91在线中文字幕| 亚洲午夜激情视频| 麻豆成人在线观看| 国产精品美女无圣光视频| 波多野结衣啪啪| 欧美一级一区| 国产97在线视频| 波多野结衣mp4| 日本午夜精品视频在线观看| 日本一本a高清免费不卡| 国产高清中文字幕| 久久久久国内| 日本成人精品在线| 日本一本在线观看| 日韩精品电影在线观看| 国产精品入口夜色视频大尺度| 在线观看国产区| 日本女人一区二区三区| 国产精品自产拍在线观看| 又色又爽又黄无遮挡的免费视频| 青青草97国产精品免费观看无弹窗版| 国产精品嫩草影院一区二区| 日韩久久久久久久久| 亚洲成人直播| 欧美一区二区视频在线观看2020 | 欧美网站免费| 欧美高清精品3d| 国产美女视频免费看| 91精品麻豆| 久久99精品久久久久久国产越南 | 综合av第一页| 成人在线观看毛片| av在线最新| 欧美色播在线播放| 青青青在线视频免费观看| 成人在线观看免费视频| 91精品国产综合久久精品麻豆| 欧美午夜精品一区二区| 亚洲影院天堂中文av色| 这里只有精品在线观看| 国产性生活大片| 亚洲电影在线| 国产精品成人免费电影| 国产片高清在线观看| 不卡一区二区在线| 午夜欧美性电影| 中文在线免费| 色综合久久88色综合天天免费| 日本xxxx黄色| 成人高潮视频| 国产亚洲精品美女久久久久| 破处女黄色一级片| 国产精品久久久久毛片大屁完整版| 国产精品高潮呻吟久久av野狼| 国产日韩免费视频| 久久综合成人精品亚洲另类欧美 | 国产精品第十页| 日韩av观看网址| www.成人精品| 国产色产综合色产在线视频 | 男女精品网站| 成人网址在线观看| 日韩私人影院| 一区二区三区中文免费| 草草草在线视频| 三上悠亚在线观看视频| 一区二区导航| 美女少妇精品视频| 久久国产乱子伦精品| 成人一区在线观看| 一区二区三区四区欧美| 日韩脚交footjobhd| 制服.丝袜.亚洲.另类.中文| av女人的天堂| 亚洲激情精品| 97人人模人人爽视频一区二区| 久草福利在线视频| 亚洲五码中文字幕| av噜噜在线观看| 精品国产美女| 4k岛国日韩精品**专区| www.蜜臀av.com| 国产精品美女久久久久久久久| 无罩大乳的熟妇正在播放| 嫩呦国产一区二区三区av| 亚洲国产成人精品久久| 国产一区二区播放| 久久国产福利国产秒拍| 亚洲 国产 日韩 综合一区| 午夜小视频在线| 色香色香欲天天天影视综合网| 欧美丰满少妇xxxxx做受| 九九热最新地址| 久久av中文字幕片| 性欧美大战久久久久久久免费观看| 亚洲精品日产| 亚洲精品久久久久久久久久久久久 | 精品精品精品| 欧美精品xxx| 国产夫妻性生活视频| 亚洲欧洲日韩在线| 亚洲欧美aaa| 久久国产电影| 狠狠色综合色综合网络| 精品乱码一区二区三区| 福利成人导航| 亚洲第一网站男人都懂| 久久精品一区二区三| 国产美女在线观看一区| 激情视频小说图片| 中文久久电影小说| 久久免费精品视频| 深夜福利在线视频| 欧美性猛交xxxx久久久| 欧美特黄一区二区三区| 久久久噜噜噜| 日韩精品另类天天更新| 美女网站视频一区| 中文字幕欧美日韩精品| 亚洲天堂中文在线| 久久精品系列| 亚洲精品国产精品国自产在线 | 亚洲国产成人精品视频| 蜜臀av粉嫩av懂色av| 99视频一区| 欧美中日韩一区二区三区| 456亚洲精品成人影院| 中文字幕亚洲自拍| 国产麻豆91视频| 亚洲综合一二三区| 美女脱光内衣内裤| 另类中文字幕网| 777久久精品一区二区三区无码| av不卡一区二区| 国产成人av在线播放| 一级毛片视频在线观看| 日韩欧美国产综合| 一级免费在线观看| 国产精品女人毛片| 美女网站视频在线观看| 日韩精品一级中文字幕精品视频免费观看 | 色琪琪久久se色| 古典武侠综合av第一页| 欧美色网一区| 另类美女黄大片| 免费福利在线观看| 欧美一区二区精美| av大全在线观看| 亚洲欧美色综合| 性欧美成人播放77777| 精品一区二区国语对白| 日韩伦理在线免费观看| 欧洲毛片在线视频免费观看| 亚洲自拍另类欧美丝袜| 国产精品一区二区av影院萌芽| 老司机精品福利视频| 国产精选一区二区| 青青久久精品| 97成人超碰免| 9191在线播放| 中国日韩欧美久久久久久久久| 亚洲精品一区二区三区新线路| 日本韩国一区二区| 日本熟妇一区二区| 一区在线播放视频| 波多野结衣 在线| 成人性生交大合| 国产又黄又猛的视频| 欧美中文日韩| 日韩视频免费播放| 亚洲国产精品综合久久久| 神马影院一区二区三区| 99精品中文字幕在线不卡 | 日本成人手机在线| 国产精品一区二区三区免费视频 | 午夜精品成人在线| 男人操女人的视频网站| 中文字幕国产一区| 一本色道久久综合亚洲精品图片 | www.自拍偷拍| 成人精品国产福利| 毛毛毛毛毛毛毛片123| 六月丁香婷婷色狠狠久久| 欧美激情精品久久久久久小说| 国产亚洲在线观看| 精品视频在线观看一区| 在线播放日韩| 黄色片免费在线观看视频| 久久久久美女| 伊人婷婷久久| 99精品在线免费在线观看| 视频一区二区三区免费观看| 在线观看欧美理论a影院| 精品在线视频一区二区| 久久97精品| 韩国成人一区| 性人久久久久| 麻豆亚洲一区| 欧美禁忌电影网| 日本一区二区三区免费观看| 欧美绝顶高潮抽搐喷水合集| 国内一区二区在线视频观看| 另类春色校园亚洲| 久久国产精品一区二区三区| 日韩动漫一区| 久久久综合香蕉尹人综合网| 夜夜春成人影院| 久久精品国产精品国产精品污 | 国产精品视频资源| 欧美国产视频| 成人激情视频在线| 成人噜噜噜噜| 国产98在线|日韩| 韩国女主播一区二区三区| 好吊色欧美一区二区三区 | 久久久久久久久久影院| 精品久久久久久中文字幕大豆网 | 欧美一区二区三区视频在线观看| 国产精品亚洲欧美在线播放| 日韩欧美一二区| 亚洲精品一级片| 日韩av网站大全| 黄色小视频在线免费观看| 中文字幕av一区中文字幕天堂| 成人精品一区二区三区免费| 色噜噜狠狠狠综合曰曰曰| 超碰个人在线| 国内精品视频在线| 欧洲精品一区二区三区| 国产一区二区香蕉| 1204国产成人精品视频| 久久影视中文粉嫩av| 国产一区二区亚洲| 黄色免费高清视频| 亚洲午夜伦理| 国产精品无码av无码| 国产综合色视频| 青青草视频网站| 国产欧美一区二区三区鸳鸯浴 | 亚洲久久久久久| 国产亚洲午夜高清国产拍精品| 91麻豆精品久久毛片一级| 亚洲一级在线观看| 91porny九色| 日韩欧美的一区二区| 你懂的在线观看视频网站| 色偷偷av亚洲男人的天堂| 青青草视频在线免费直播| 欧洲亚洲妇女av| 亚洲精品a区| 天天人人精品| 韩国亚洲精品| 亚洲少妇久久久| 成人国产精品免费网站| 国产亚洲精品精品精品| 亚洲成人影音| 欧美主播福利视频| 精品视频一区二区三区在线观看| 精品日本一区二区三区| 欧美freesextv| 亚欧无线一线二线三线区别| 韩国成人在线视频| 国产精品无码永久免费不卡| 亚洲日本欧美天堂| 亚洲影院在线播放| 精品国产伦一区二区三区免费| 成年人视频在线看| 欧美夜福利tv在线| 日韩成人18| 综合久久国产| 日韩电影免费在线| 波多野结衣办公室33分钟| 亚洲黄色av一区| 国产精品51麻豆cm传媒| 日韩成人小视频| 黄色在线观看视频网站| 成人精品在线观看| 欧美精品尤物在线观看| 男人添女人荫蒂免费视频| 国产综合色在线| 国产免费嫩草影院| 在线免费观看日本欧美| 天天色综合av| 国内精品400部情侣激情| 精品91福利视频| 正在播放亚洲| 毛片基地黄久久久久久天堂| 免费一级黄色录像| 日韩欧美成人免费视频| 丝袜+亚洲+另类+欧美+变态| 久久男人资源视频| 成人爽a毛片| 欧美大黑帍在线播放| 国产电影精品久久禁18| 疯狂撞击丝袜人妻| 欧美日韩亚州综合| 98在线视频| 国产精品视频xxx| 波多野结衣一区| 最近中文字幕一区二区| 亚洲国产经典视频| 中文字幕第31页| 最近2019中文字幕大全第二页| 国产精品4hu.www| 在线观看日韩片| 国内精品自线一区二区三区视频| 99在线视频免费| 欧美日韩国产bt| 国产最新在线| av在线不卡观看| 成年人av电影| 欧美一级视频| 免费人成又黄又爽又色| 在线亚洲一区二区| 91亚洲欧美| 亚洲最大福利视频网站| 伊人久久大香线蕉综合四虎小说 | 奇米影视第四色777| 亚洲国产精彩中文乱码av在线播放| 丰满诱人av在线播放| 久久66热这里只有精品| 日韩精品国产精品| 午夜激情福利网| 亚洲神马久久| www.51色.com| 亚洲主播在线播放| 天天综合网在线观看| 国产福利视频一区| 亚洲啊v在线观看| 在线免费看黄色片| 一本色道久久综合精品竹菊| av午夜在线| 99热在线播放| 性8sex亚洲区入口| 久久噜噜色综合一区二区| 精品国产乱码久久久久久夜甘婷婷| 多野结衣av一区| 亚洲精品久久久久久一区二区| 国产美女精品一区二区三区| 日韩黄色a级片| 在线观看亚洲视频| 一本一道久久a久久| 国产成人精品视频ⅴa片软件竹菊| 国产精品传媒视频| 好吊视频一区二区三区| 国产精品美女免费视频| 亚洲韩日在线| 青青操在线播放| 精品伊人久久97| 免费精品一区二区三区在线观看| 18岁网站在线观看| 亚洲女与黑人做爰| 精华区一区二区三区| 999视频在线观看| 日韩av不卡一区二区|