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

在Kubernetes中從零打造可觀測性

云計算 云原生
我們使用Start.spring.io創建一個Java spring boot項目,它可以幫我們快速創建一個Java項目,并且支持在項目中添加依然和其他配置。

在這篇文章中,我們將在Kubernetes中使用Grafana、Prometheus、Loki、Tempo、OpenTelemetry來搭建可觀測性平臺。其中Grafana作為操作面板,Prometheus、Loki、Tempo作為數據源,分別用來獲取指標、日志以及跟蹤數據。同時,我們還將使用Exemplars將trace_id與Java指標相關聯,使用OpenTelemetry對應用進行檢測。

在開始之前,先簡單介紹一下這些開源工具。

  1. OpenTelemetry:它是CNCF的 開源產品,通過使用代理來收集指標、日志和鏈路,然后將它們發送給其他工具,它支持多種語言集成,并且有很大的儀表功能。
  2. Prometheus:CNCF的畢業產品,是目前主流的監控工具之一。
  3. Examplars:它可以將trace_id和metrics聯系起來,可以幫助我們通過指標獲取到具體日志以及鏈路狀況,通常和Prometheus配合工作。
  4. Promtail:日志收集工具,將日志發送到Loki。
  5. Loki:收集并處理日志,并且支持通過LogQL來查詢日志,其語法和PromQL類似
  6. Tempo:接收OpenTelemetry的數據,并且可以通過Jaeger將其可視化
  7. Grafana:支持多種數據源的可視化面板

圖片

準備后端應用程序

在這個示例中,我們將使用java spring boot項目作為例子。

首先,我們使用start.spring.io創建一個java spring boot項目,它可以幫我們快速創建一個Java項目,并且支持在項目中添加依然和其他配置。

圖片

其中:

  • 使用Gradle作為構建自動化工具
  • 使用2.7版本的Spring Boot
  • 使用JAR作為包構建格式
  • 使用JDK11

當完成配置并生成之后,就可以將其壓縮包下載下來并用IDE打開。

圖片

我們先配置build.gradle,確保所有依賴是沒問題的。

plugins {
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

repositories {
maven {
url = uri('https://repo.spring.io/libs-snapshot')
}
mavenCentral()
}

dependencyManagement {
imports {
mavenBom 'io.micrometer:micrometer-bom:1.9.0-SNAPSHOT'
}
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus:1.9.0'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.opentelemetry:opentelemetry-api:1.12.0'
}

tasks.named('test') {
useJUnitPlatform()
}

group = 'com.staz'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

然后我們將創建一個控制器類Controller.java?,有兩個端點:/fail? 和 /success?。該文件必須位于${project}/src/main/java/com/staz/observability/的路徑下。

package com.staz.observability;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controller {

@PostMapping("/fail")
public String fail() {
return "Fail!";
}

@GetMapping("/success")
public String success() {

return "Success!";
}

}

為了將metrics和trace_id關聯起來,我們需要在${project}/src/main/java/com/staz/observability/?路徑下創建一個公共配置類PrometheusExemplarConfiguration.java。

package com.staz.observability;

import io.micrometer.core.instrument.Clock;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;
import io.opentelemetry.api.trace.Span;
import io.prometheus.client.CollectorRegistry;
import io.prometheus.client.exemplars.DefaultExemplarSampler;
import io.prometheus.client.exemplars.tracer.otel_agent.
OpenTelemetryAgentSpanContextSupplier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class PrometheusExemplarConfiguration {
@Bean
public PrometheusMeterRegistry prometheusMeterRegistryWithExemplar
(PrometheusConfig prometheusConfig, CollectorRegistry collectorRegistry,
Clock clock) {
return new PrometheusMeterRegistry(prometheusConfig, collectorRegistry,
clock, new DefaultExemplarSampler(new OpenTelemetryAgentSpanContextSupplier() {

@Override
public String getTraceId() {
if (!Span.current().getSpanContext().isSampled()) {
return null;
}
return super.getTraceId();
}
})
);
}
}

最后,編輯${project}/src/main/resources/?目錄下的配置文件application.yml:

# Enable Actuator endpoints including Prometheus
management:
endpoints:
web:
exposure:
include: health, info, prometheus
metrics:
# Exemplar metrics
distribution:
percentiles-histogram:
http.server.requests: true
minimum-expected-value:
http.server.requests: 5ms
maximum-expected-value:
http.server.requests: 1000ms

# Add trace_id in log. OpenTelemetry set this value using logger-mdc.
# https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/logger-mdc-instrumentation.md
logging:
pattern:
level: '%prefix(%mdc{trace_id:-0}) %5p'

如果想要在本地運行項目,需要下載OpenTelemetry Agent,該項目中使用的版本是1.12.1。

準備工作做完過后,我們在本地來測試一下。

首先,使用gradle build -x test編譯項目。

圖片

然后使用以下命令啟動:

java -javaagent:opentelemetry-javaagent.jar -Dspring.config.locatinotallow=src/main/resources/application.yml -jar build/libs/observability-0.0.1-SNAPSHOT.jar

圖片

然后可以使用htttp://localhost:8080/fail和htttp://localhost:8080/success進行訪問測試。

圖片

再來使用localhost:8080/actuator/prometheus來驗證Prometheus指標是否有效。

圖片

最后,驗證metrice和trace_id的關聯情況。

curl -H 'Accept: application/openmetrics-text; versinotallow=1.0.0; charset=utf-8' http://localhost:8080/actuator/prometheus | grep trace_id

圖片

我們的Spring Boot應用程序已經準備好了,現在我們需要安裝觀察性工具。在此之前,我們會在本地創建一個K3s集群,所有的軟件都將部署到里面。

容器化應用程序

首先,在項目根目錄創建一個Dockerfile,內容如下:

# Download OpenTelemetryAgent
FROM curlimages/curl:7.81.0 AS OTEL_AGENT
ARG OTEL_AGENT_VERSION="1.12.1"
RUN curl --silent --fail -L "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_AGENT_VERSION}/opentelemetry-javaagent.jar" \
-o "/tmp/opentelemetry-javaagent.jar"

# Build .JAR file
FROM gradle:7.1.1-jdk11-hotspot AS BUILD_IMAGE
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build -x test --no-daemon

# Final image copying OTEL Agent and .JAR File
FROM gradle:7.1.1-jdk11-hotspot
ENV TIME_ZONE America/Lima
ENV TZ=$TIME_ZONE
ENV JAVA_OPTS "-Dspring.config.locatinotallow=src/main/resources/application.yml"
COPY --from=OTEL_AGENT /tmp/opentelemetry-javaagent.jar /otel-javaagent.jar
COPY --from=BUILD_IMAGE home/gradle/src/build/libs/*.jar app.jar
ENTRYPOINT exec java -javaagent:/otel-javaagent.jar -jar app.jar

使用以下命令構建并測試:

$ docker build --no-cache -t otel-springboot-prometheus .
$ docker run -it -p 8080:8080 otel-springboot-prometheus

待容器啟動過后,使用http://localhost:8080/success驗證是否可以正常使用。

創建單節點集群

首先,使用multipass創建一個Ubuntu實例:

$ multipass launch --name demo --mem 4G --disk 20G

圖片

然后登錄實例:

$ multipass shell demo

圖片

可以通過sudo su命令驗證是否正確進去Ubuntu實例。

其次,使用以下命令安裝K3s:

$ curl -sfL https://get.k3s.io | sh -

集群創建完成后,將KUBECONFIG添加到環境變量。

$ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

檢查集群是否正常運行。

$ kubectl cluster-info

圖片

然后,安裝Helm,后續都將使用它來安裝應用軟件。

$ snap install helm --classic

將K3s的KUBECONFIG?拷貝到~/.kube/config目錄下。

$ kubectl config view --raw > ~/.kube/config

最后,檢查Helm是否能正常工作。

$ helm

圖片

部署可觀測性組件

在該階段,我們將使用Helm部署Prometheus、Promtail、Loki、Tempo以及Grafana,最后部署應用并驗證。

 以上應用都將部署到K3s中。

首先,從倉庫把需要的manifests克隆下來。

$ git clone https://github.com/stazdx/otel-springboot-grafana-tools.git
$ cd otel-springboot-grafana-tools/kubernetes

然后,添加Helm倉庫。

$ helm repo add grafana https://grafana.github.io/helm-charts
$ helm repo update

圖片

最后,創建一個namespace,所有應用都部署到該namespace下。

$ kubectl create ns observability

圖片

部署Promtail

使用以下命令進行部署:

$ cd promtail
$ helm upgrade --install promtail grafana/promtail -n observability -f promtail.yaml

圖片

注意檢查Promtail?所指向的Loki地址。

部署Loki

部署命令如下:

$ helm upgrade --install loki grafana/loki-distributed -n observability

圖片

loki-loki-distributed-gateway這個Service非常重要,Promtail將向它發送數據,Grafana將通過它獲取數據。

部署Tempo

首先,進入Tempo清單所在的目錄:

$ cd ../tempo

在安裝Tempo之前,我們需要先安裝minio,命令如下:

$ kubectl apply -f minio.yaml

圖片

 Minio被部署在default命名空間中,因為它是一個更通用的對象存儲工具,而不是直接用于觀察性。

現在,使用以下命令部署Tempo:

$ helm upgrade --install tempo grafana/tempo-distributed -n observability -f tempo.yaml

圖片

!! Grafana將通過_tempo-tempo-distributed-query-frontend:3100_來獲取數據。

部署Prometheus和Grafana

Prometheus和Grafana直接使用官網倉庫進行部署。

首先,添加Helm倉庫。

$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update

然后,使用倉庫清單進行部署。

$ cd ../prometheus-grafana
$ helm dependency update
helm upgrade --install kube-prometheus-stack -n observability .

圖片

檢查Deployments

使用Helm命令查看部署的所有應用。

$ helm ls -n observability

圖片

然后,使用kubectl檢查應用是否都啟動成功。

$ kubectl get po -n observability

圖片

檢查Service是否正常。

$ kubectl get svc -n observability

圖片

我們看到所有應用都正常部署完成。

部署后端應用

直接到倉庫目錄清單部署即可。

$ cd ../springboot-app

需要注意的是,為了能夠讓Prometheus能夠正常抓取指標,我們需要添加以下??Annotations??。

annotations:
# Annotations for Prometheus - scrape config
prometheus.io/path: '/actuator/prometheus'
prometheus.io/port: 'actuator'
prometheus.io/scrape: 'true'

另外一個重要的配置就是OpenTelemetry配置,如下:

env:
- name: SERVER_PORT
value: '8080'
- name: MANAGEMENT_SERVER_PORT
value: '8081'
# Setting OTEL_EXPORTER_METRICS: none - Default: OTLP
- name: OTEL_METRICS_EXPORTER
value: none
- name: OTEL_TRACES_EXPORTER
value: otlp,logging
# Setting Tempo Distributor Service using GRPC Port -> 4317
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://tempo-tempo-distributed-distributor.observability.svc.cluster.local:4317
- name: OTEL_SERVICE_NAME
value: springboot-app
- name: KUBE_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OTEL_RESOURCE_ATTRIBUTES
value: app=springboot-app

最后,我們有一個包含Spring Boot的Grafana儀表盤的配置圖,這將使我們能夠通過請求延遲等指標看到Exemplar與Tempo的關聯。

配置檢查無誤后,就可以進行部署了。

$ kubectl apply -f springboot-app.yaml

圖片

檢查應用是否部署成功。

$ kubectl get deploy,svc,cm -l app=springboot-app

圖片

接口測試

首先,測試/fail?接口:http://{external-ip}:8080/fail。

圖片

然后,測試/success?接口:http://{external-ip}:8080/success。

圖片

最后,測試/actuator/prometheus?接口:http://{external-ip}:8081/actuator/prometheus。

圖片

可以看到所有接口返回正常。

Grafana測試

上面以及完成了所有的配置,接下來就在Grafana中驗證是否能夠正常使用。

首先,獲取Grafana的訪問地址。

$ kubectl get svc -n observability

圖片

在瀏覽器輸入地址http://{external-ip}:32656。

圖片

然后,添加數據源。

圖片

我們把Prometheus、Loki以及Tempo數據源都添加上。

圖片

其中,Prometheus的配置如下:

圖片

!! 可以看到Prometheus和Tempo通過Exemplars進行關聯了。

Loki的配置如下:

圖片

!! 可以看到Loki和Tempo通過trace_id進行關聯了。

Tempo的配置如下:

圖片

!! 在這里我們將Tempo與Loki相關聯,并映射我們在微服務中配置的應用標簽。

測試一下

通過Explore可以查看應用日志。

圖片

選擇Loki數據源。

圖片

通過Loki,我們可以通過label對監控日志進行過濾。

圖片

從日志中,我們可以看到trace信息。

圖片

然后,我們查看Grafana面板。

圖片

我們選擇Spring Boot Demo,它是我們自己創建的面板。

圖片

我們可以看到應用的請求延遲,另外星星是由Exemplar生成。

圖片

圖片

用鼠標懸停在它上面,我們可以看到它是如何與一個trace_id相關聯的,當點擊它時,它將把我們重定向到Tempo。

圖片

我們可以看到它產生的跟蹤,我們也可以看到日志,因為它也是與Loki相關的,當點擊時我們會看到具體信息:

圖片

屏幕被分割,但是我們可以看到具體的日志了。

最后

我們實現了指標、日志和跟蹤之間的可觀察性關聯。這可以幫助我們在微服務的故障排除過程中,識別瓶頸,看到我們的應用指標的行為,并能夠獲得特定的跟蹤和日志。

責任編輯:姜華 來源: 運維開發故事
相關推薦

2022-08-05 14:26:50

Kubernetes容器工具

2025-02-24 13:46:40

2023-03-30 16:30:08

可觀測云原生

2023-04-25 16:47:48

Kubernetes可觀測性Prometheus

2023-10-26 08:47:30

云原生數據采集

2025-08-27 02:55:00

API監控調試性

2022-08-30 08:22:14

可觀測性監控軟件

2022-07-05 15:50:25

Kubernetes工具DevOps

2023-03-09 08:00:22

2023-05-18 22:44:09

2023-08-03 15:13:59

混合云Kubernetes

2022-02-12 00:00:00

架構

2025-07-14 08:47:39

2023-10-13 13:40:29

2022-08-24 10:01:57

云原生容器

2025-03-03 00:46:00

GolangAPI客戶端

2021-06-23 10:00:46

eBPFKubernetesLinux

2024-05-28 09:37:48

2023-08-21 09:37:57

MySQL工具MariaDB
點贊
收藏

51CTO技術棧公眾號

超碰中文在线| 天天天天天天天干| 国产精品毛片视频| 亚洲国产精品精华液网站| 精品不卡在线| 精品国产青草久久久久96| 久久精品免费一区二区三区| 精品少妇一区二区三区日产乱码| 中国丰满人妻videoshd| fc2在线中文字幕| 国产激情91久久精品导航| 欧美理论片在线观看| 人妻大战黑人白浆狂泄| 亚洲欧美一级| 色婷婷av一区二区三区大白胸| 国产av第一区| 国产中文在线观看| 成人国产电影网| 国产精品香蕉av| 日产欧产va高清| 99久久久久久中文字幕一区| 日韩精品福利在线| 亚洲视频在线不卡| 亚洲精品国产嫩草在线观看| 亚洲伊人色欲综合网| 天天综合色天天综合色hd| 老熟妇高潮一区二区高清视频| 男女男精品视频| 69久久夜色精品国产7777| 精品国产精品国产精品| 国产欧美亚洲精品a| 欧美变态凌虐bdsm| 污网站在线免费| 成人国产激情在线| 欧美视频一二三| 免费人成自慰网站| 91cn在线观看| 亚洲婷婷国产精品电影人久久| 欧美精品二区三区四区免费看视频 | 电影一区二区三区| 亚洲人吸女人奶水| 亚洲国产精品www| 视频二区在线| 成人午夜免费视频| 97久草视频| 国产有码在线观看| 青青草国产精品97视觉盛宴| 国产91av在线| 国产成人一区二区三区影院在线| 中文字幕一区二区三区乱码图片| 三级精品视频久久久久| 亚洲ⅴ国产v天堂a无码二区| 国产人成视频在线观看| 日本综合字幕| 欧美性生交xxxxx久久久| 日本xxxxxxxxxx75| a毛片不卡免费看片| 一区二区三区欧美视频| 日本在线视频www色| 免费黄色在线| 中文字幕中文字幕一区| 亚洲视频导航| 黄网址在线观看| 亚洲欧洲国产日韩| 五月天在线免费视频| www红色一片_亚洲成a人片在线观看_| 国产精品久久久久久久久免费桃花 | 久久久久高清精品| 日本精品一区二区三区不卡无字幕| 日本在线视频1区| 久久色视频免费观看| 欧美亚洲精品日韩| chinese偷拍一区二区三区| 日本一区二区动态图| 这里只有精品66| 亚洲图区一区| 偷拍与自拍一区| 免费激情视频在线观看| 日韩制服诱惑| 67194成人在线观看| 久久黄色一级视频| 欧美日韩精品一区二区三区在线观看| 亚洲免费电影一区| 免费成人深夜夜行网站| 影音国产精品| 国产精品白嫩美女在线观看| 91中文字幕在线视频| 国产福利一区二区三区视频在线| 国产一区高清视频| 欧美视频综合| 亚洲精品美腿丝袜| 能在线观看的av| 四虎精品一区二区免费| 精品国产精品网麻豆系列| 永久免费成人代码| 亚洲区综合中文字幕日日| 97精品在线视频| 一个人看的www日本高清视频| 国产馆精品极品| 欧美人xxxxx| 4438x成人网全国最大| 五月激情六月综合| 亚洲最大天堂网| 男人的天堂久久| 日韩中文在线不卡| 可以免费看的av毛片| 日本午夜精品视频在线观看| 不卡一区二区三区视频| 国产三级视频在线看| 亚洲最色的网站| 熟女少妇精品一区二区| 亚洲伊人影院| 久久精品国产一区| 精产国品一区二区| av不卡在线观看| 亚洲欧美丝袜| 九色porny自拍视频在线观看| 91精品国产一区二区三区香蕉| 日韩中文字幕电影| 国内精品美女在线观看| 国产免费成人av| 天天操天天干天天爱| 亚洲欧美视频一区| 中文字幕在线观看第三页| 国内精品国产成人国产三级粉色 | 1024在线看片| 亚洲欧美日韩国产一区二区| www.成人av.com| 欧美精品电影| 日本电影亚洲天堂一区| 噜噜噜在线视频| 国产精品v亚洲精品v日韩精品| 国产精品永久免费观看| 理论在线观看| 狠狠做深爱婷婷久久综合一区| 国产xxxxhd| 91成人免费| 国产色视频一区| 国产98在线| 色婷婷久久久久swag精品| 国产又粗又长又爽| 国产主播精品| av色综合网| 怡红院在线播放| 91精品欧美综合在线观看最新 | 美国一级片在线免费观看视频| 亚洲va中文字幕| 人妻激情偷乱频一区二区三区| 欧美激情日韩| 99se婷婷在线视频观看| 毛片大全在线观看| 精品国产精品网麻豆系列 | 色噜噜狠狠成人网p站| 女同毛片一区二区三区| 亚洲一区二区三区高清不卡| 精品国产免费久久久久久尖叫| 岛国毛片av在线| 亚洲高清久久网| 日韩 欧美 综合| 92精品国产成人观看免费| 97国产精东麻豆人妻电影| 人妖一区二区三区| 国产成人精品久久二区二区91| 日本在线视频1区| 欧美午夜寂寞影院| 国产小视频你懂的| 国产麻豆精品一区二区| 激情五月婷婷六月| 伊人春色之综合网| 国产精品久久久久77777| 免费日本一区二区三区视频| 欧美一区二区三区在线视频 | 欧美日韩亚洲91| 日韩在线免费观看av| 免费一级片91| 日韩国产精品毛片| 久久精品福利| 国产精品xxxxx| 在线视频中文字幕第一页| 亚洲丁香婷深爱综合| 免费观看日批视频| 亚洲丝袜美腿综合| 中文字幕第3页| 日韩电影免费在线| 黄色网在线视频| 婷婷成人影院| 国产在线一区二区三区| 成人在线高清免费| 夜夜躁日日躁狠狠久久88av| 国产三级小视频| 色综合一区二区| 欧美成人777| 99国产欧美另类久久久精品| 日本激情综合网| 影院欧美亚洲| 亚洲日本无吗高清不卡| 久久aimee| 国产欧美精品在线| 国内精彩免费自拍视频在线观看网址| 亚洲人成网站免费播放| 精品久久久中文字幕人妻| 黑人欧美xxxx| 九九免费精品视频| 欧美国产日本韩| 亚洲一区二区在线免费| 久久99精品国产麻豆婷婷洗澡| 久久国产精品网| 欧美激情欧美| 欧美日韩精品久久| 999久久久精品一区二区| 国产精品久久久久久久电影 | 精品女厕一区二区三区| 疯狂撞击丝袜人妻| 久久九九影视网| 人妻 日韩 欧美 综合 制服| 精品一区二区国语对白| 日韩精品一区中文字幕| 亚洲日本黄色| 国风产精品一区二区| 欧美色爱综合| 久久久久一区二区| youjizzjizz亚洲| 成人性生交大片免费观看嘿嘿视频| 蜜桃麻豆影像在线观看| 欧美片一区二区三区| 一区二区三区视频网站| 亚洲欧美激情四射在线日| 丰满少妇一级片| 日韩一区二区三免费高清| 国产日韩久久久| 日韩欧中文字幕| 久久久久久少妇| 亚洲成人免费av| 国产在线视频第一页| 亚洲人午夜精品天堂一二香蕉| 国产又粗又猛又爽又黄的视频四季 | 欧美精品乱码久久久久久按摩 | 麻豆久久久久久| www.日本xxxx| 石原莉奈在线亚洲二区| 18禁男女爽爽爽午夜网站免费| 亚洲精选国产| 国产3p露脸普通话对白| 亚洲精品男同| www.99热这里只有精品| 亚洲黄色高清| 成人免费aaa| 国产精品美女久久久浪潮软件| 国产美女在线一区| 黄色av一区| 黄网站欧美内射| 亚洲人成在线影院| 免费黄色日本网站| 久久久精品网| 日日噜噜噜噜久久久精品毛片| 日韩影院精彩在线| 爱情岛论坛亚洲首页入口章节| 日韩福利视频网| 亚洲综合av在线播放| 精品一区二区久久| 国产人妖在线观看| av在线不卡电影| 久久精品国产亚洲av麻豆| 国产亚洲成av人在线观看导航 | 国产欧美中文字幕| 国产精品xnxxcom| 99理论电影网| 精品久久97| 日本亚洲导航| 婷婷激情综合| 国产一二三在线视频| 亚洲综合电影一区二区三区| chinese少妇国语对白| 久久精品国产在热久久| 伦伦影院午夜理论片| 岛国精品一区二区| 97人妻精品一区二区免费| 国产精品久久久久影院亚瑟| 欧洲第一无人区观看| 精品久久久久久久久久久久久久| 久操视频在线免费观看| 91精品国产综合久久福利软件| 欧美特黄一级视频| 亚洲一区999| 在线三级中文| 奇米4444一区二区三区| 91精品网站在线观看| 国产三区二区一区久久| 欧美日韩一二三四| 欧美日韩中文字幕在线播放| 亚洲欧美日本国产专区一区| 99日在线视频| 97成人超碰视| 日本黄色片免费观看| 婷婷综合久久一区二区三区| 一区二区国产欧美| 日韩av在线播放资源| 天堂资源在线中文| 777午夜精品福利在线观看| 日韩美香港a一级毛片| 精品综合在线| 欧美 日韩 国产精品免费观看| 无码人妻丰满熟妇区毛片18| 国产一区二区三区免费观看| 青青草视频成人| 成人欧美一区二区三区小说| 日韩免费观看一区二区| 91精品国模一区二区三区| 欧洲免费在线视频| 欧美激情小视频| 四虎成人精品一区二区免费网站| 久久天天狠狠| 在线欧美亚洲| 中文 日韩 欧美| 欧美激情在线观看视频免费| 国产成人精品a视频一区| 91麻豆精品国产91久久久久久 | 欧美美女操人视频| 91超碰碰碰碰久久久久久综合| 国产在线一区二区三区欧美| 综合国产在线| 欧美成年人视频在线观看| ww久久中文字幕| 日本少妇性高潮| 欧美一级在线观看| 欧洲不卡视频| 国产精品免费视频久久久| 欧美**vk| 少妇高潮喷水久久久久久久久久| 成人综合婷婷国产精品久久蜜臀 | 伊人222成人综合网| 国产欧美日韩91| 精品一区二区三区中文字幕老牛| 男人日女人逼逼| 成人91在线观看| 黄色一级视频免费| 日韩欧美国产一区二区在线播放| 成人福利在线观看视频| 成人激情在线观看| 国产精品99一区二区三区| 国产91色在线观看| 亚洲国产高清在线| 国产suv精品一区二区33| 亚洲欧美日本另类| 欧美xxxxxx| 日韩亚洲欧美精品| 美女mm1313爽爽久久久蜜臀| 337人体粉嫩噜噜噜| 欧洲av一区二区嗯嗯嗯啊| 成人免费在线电影| 国产精品日韩在线播放| 9999国产精品| 久久人人爽人人片| 夜夜爽夜夜爽精品视频| 欧美特黄一级视频| 456国产精品| 欧美一级本道电影免费专区| 亚洲一区二区三区四区五区xx| 国产精品久久久久国产精品日日| 中文字幕丰满人伦在线| 播播国产欧美激情| 久久三级中文| 日韩a∨精品日韩在线观看| 99r国产精品| 午夜视频网站在线观看| 菠萝蜜影院一区二区免费| 北条麻妃一区二区三区在线| 欧美亚洲精品一区二区| 欧美国产一区视频在线观看| 一级成人免费视频| 欧美区在线播放| 欧美黑人做爰爽爽爽| 男女啪啪网站视频| 亚洲免费观看高清在线观看| 国产 日韩 欧美 综合| 欧美亚洲国产视频| 日韩久久精品| 国产亚洲精品成人a| 欧美日韩亚洲一区二区三区| 粉嫩一区二区三区国产精品| 亚洲一区二区中文| 国产一级一区二区| 小泽玛利亚一区| 日韩av在线网| 日韩综合av| 热99这里只有精品| 亚洲欧洲精品一区二区三区不卡| 国产91久久久| 国产精品久久久久久久av大片| 国内精品久久久久久久影视蜜臀| 男人舔女人下部高潮全视频 | 四虎在线免费观看| 国产一区香蕉久久| 99国产一区| www.xxxx日本| 亚洲欧美在线磁力| 日韩三级av高清片| 中文字幕第21页| 亚洲午夜精品在线| yiren22亚洲综合伊人22|