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

Kubernetes中的事件收集以及監控告警

云計算 云原生
Kubernetes本身是一個復雜的管理系統,它既然是作為企業業務的基礎設施,其本身以及運行在集群內部的業務系統對于企業來說都變得非常重要。為此,在實際工作中,我們會借助需要的監控手段來提升Kubernetes本身以及業務的可觀測性。

Kubernetes中的事件監控

隨著微服務以及云原生的發展,越來越多的企業都將業務部署運行到Kubernetes中,主要是想依托Kubernetes的可擴展、可伸縮、自動化以及高穩定性來保障業務的穩定性。

然而,Kubernetes本身是一個復雜的管理系統,它既然是作為企業業務的基礎設施,其本身以及運行在集群內部的業務系統對于企業來說都變得非常重要。為此,在實際工作中,我們會借助需要的監控手段來提升Kubernetes本身以及業務的可觀測性,常見的有:

  • 使用cAdvisor來獲取容器的資源指標,比如cpu、內存;
  • 使用kube-state-metrics來獲取資源對象的狀態指標,比如Deployment、Pod的狀態;
  • 使用metrics-server來獲取集群范圍內的資源數據指標;
  • 使用node-exporter等一系列官方以及非官方的exporter來獲取特定組件的指標;

在大部分的監控場景中,我們都是對特定資源進行特定監控,比如Pod,Node等。但是,在Kubernetes中還有一些場景是無法通過資源來表述的,就是說它們不是特定的資源,比如Pod調度、重啟,在Kubernetes中,這類場景主要稱之為事件。

在Kubernetes中,存在兩種事件:

  • Warning事件,事件的狀態轉換是在非預期的狀態之間產生。
  • Normal事件,期望達到的狀態和目前的狀態是一致的。

在這里,我們用Pod來進行說明。當創建Pod的時候,會先進入Pending狀態,然后再進入Creating狀態(主要是在拉取鏡像),再進去NotReady狀態(主要是應用啟動并且等待健康檢測通過),最后進入Running狀態,這整個過程就會生成Normal事件。但是,如果在運行過程中,如果Pod因為一些異常原因進入其他狀態,比如節點驅逐、OOM等,在這個狀態轉換的過程中,就會產生Warning事件。在Kubernetes中,我們可以通過其他辦法來保障業務的穩定性,比如為了避免Pod調度到一個節點或者同可用區等而采用親和性以及反親和性調度,為了避免節點驅逐導致某個單個Pod不可用而采用的PDB等,也許某個Warning事件并不會對整個業務的穩定性帶來致命的影響,但是如果能夠通過監控事件的手段來感知集群的某個狀態變化是有助于進行查漏補缺的,也有助于我們感知一些容易忽略的問題。

在Kubernetes中,所有事件都通過事件系統記錄到APIServer中,并且最終存入在Etcd中,我們可以通過API或者kubectl進行查看,比如:

也可以查看某個對象的事件,比如:

圖片

事件包含了時間、類型、對象、原因以及描述等,通過事件我們能夠知道應用的部署、調度、運行、停止等整個生命周期,也能通過事件去了解系統中正在發生的一些異常。在Kubernetes各個組件的源碼中都會定義該組件可能會觸發的事件類型,比如在kubelet的源碼中定義了許多的事件類型,如下:

package events

// Container event reason list
const (
 CreatedContainer        = "Created"
 StartedContainer        = "Started"
 FailedToCreateContainer = "Failed"
 FailedToStartContainer  = "Failed"
 KillingContainer        = "Killing"
 PreemptContainer        = "Preempting"
 BackOffStartContainer   = "BackOff"
 ExceededGracePeriod     = "ExceededGracePeriod"
)

// Pod event reason list
const (
 FailedToKillPod                = "FailedKillPod"
 FailedToCreatePodContainer     = "FailedCreatePodContainer"
 FailedToMakePodDataDirectories = "Failed"
 NetworkNotReady                = "NetworkNotReady"
)
......

Kubernetes事件最終是存在Etcd中,默認只保存1小時,由于Etcd本身并不支持一些復雜的分析操作,只能被動地存在Etcd中,并不支持主動推送到其他系統,通常情況下只能手動去查看。

在實際中,我們對Kubernetes事件還有其他的需求,比如:

  • 希望對異常的事件做告警處理;
  • 希望查詢更長事件的歷史事件;
  • 希望對集群事件進行靈活的統計分析;

為此,我們需要單獨對Kubernetes事件進行收集,以便適用于查詢以及告警。

在社區中,有很多工具來做事件的收集以及告警,我常用的兩個工具是:

  • kube-eventer:阿里云推出的事件收集工具;
  • kube-event-exporter:Github上另外一個事件收集工作;

在實際工作中,可以選擇使用其中一個,基本都能滿足收集以及告警功能。在這里,我將同時使用上面兩個插件,用kube-eventer來進行告警,用kube-event-exporter將事件收集到ES中進行查看和分析。

使用kube-eventer進行事件告警

kube-eventer的告警通道可以是企業微信、釘釘以及webhook。可以根據需要進行選擇,每個組件的具體使用方法在項目的docs/en目錄中,這里選擇使用webhook將告警發送到企業微信中。

(1)首先需要在企業微信群里創建一個webhook機器人,然后獲取webhook地址。

(2)在Kubernetes集群中部署kube-eventer。

# cat kube-eventer.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    name: kube-eventer
  name: kube-eventer
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kube-eventer
  template:
    metadata:
      labels:
        app: kube-eventer
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      dnsPolicy: ClusterFirstWithHostNet
      serviceAccount: kube-eventer
      containers:
        - image: registry.aliyuncs.com/acs/kube-eventer:v1.2.7-ca03be0-aliyun
          name: kube-eventer
          command:
            - "/kube-eventer"
            - "--source=kubernetes:https://kubernetes.default.svc.cluster.local"
            ## .e.g,dingtalk sink demo
            #- --sink=dingtalk:[your_webhook_url]&label=[your_cluster_id]&level=[Normal or Warning(default)]
            #- --sink=webhook:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=07055f32-a04e-4ad7-9cb1-d22352769e1c&level=Warning&label=oa-k8s
            - --sink=webhook:http://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=888888-888-8888-8888-d35c52ff2e0b&level=Warning&header=Content-Type=application/json&custom_body_cnotallow=custom-webhook-body&custom_body_configmap_namespace=monitoring&method=POST
          env:
          # If TZ is assigned, set the TZ value as the time zone
          - name: TZ
            value: "Asia/Shanghai"
          volumeMounts:
            - name: localtime
              mountPath: /etc/localtime
              readOnly: true
            - name: zoneinfo
              mountPath: /usr/share/zoneinfo
              readOnly: true
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
            limits:
              cpu: 500m
              memory: 250Mi
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: zoneinfo
          hostPath:
            path: /usr/share/zoneinfo
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: kube-eventer
rules:
  - apiGroups:
      - ""
    resources:
      - events
      - configmaps
    verbs:
      - get
      - list
      - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kube-eventer
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kube-eventer
subjects:
  - kind: ServiceAccount
    name: kube-eventer
    namespace: monitoring
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-eventer
  namespace: monitoring
---
apiVersion: v1
data:
  content: >-
    {"msgtype": "text","text": {"content": "集群事件告警\n事件級別: {{ .Type }}\n名稱空間: {{ .InvolvedObject.Namespace }}\n事件類型: {{ .InvolvedObject.Kind }}\n事件對象: {{ .InvolvedObject.Name }}\n事件原因: {{ .Reason }}\n發生時間: {{ .LastTimestamp }}\n詳細信息: {{ .Message }}"}}
kind: ConfigMap
metadata:
  name: custom-webhook-body
  namespace: monitoring

在webhook的配置中增加了level=Warning,表示只要Warning事件才會告警通知,除此之外,還可以通過namespaces字段來過來需要告警的命名空間,通過kinds字段來過濾需要告警的對象,比如只需要發送Node的Warning事件,則可以寫成level=warning&kinds=Node。再比如,如果不想產生非常多的告警風暴,只發送某些特定原因的告警,比如系統OOM的事件,可以增加reasnotallow=SystemOOM等待。

當kube-eventer的Pod啟動完成后,企業微信即可收到滿足條件的事件告警,比如:

圖片

使用kube-event-exporter收集集群事件

上面使用kube-eventer進行事件告警,本質上并沒有存儲歷史事件,而實際中可能需要查詢歷史事件并且對其做一些事件分析,而ES是常用于進行內容收集并通過kibana進行查看和分析,所以這里我們將使用kube-event-exporter收集Kubernetes事件到ES中。

kube-event-exporter可以直接將事件存入ES,也可以將事件發送到kafka,然后再通過Logstash消費Kafka中的數據將其存入ES。在這里,我基于環境現狀,將事件發送給Kafka,然后再消費收集到ES。

(1)部署kube-event-exporter

apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: monitoring
  name: event-exporter
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: event-exporter
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: view
subjects:
  - kind: ServiceAccount
    namespace: monitoring
    name: event-exporter
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: event-exporter-cfg
  namespace: monitoring
data:
  config.yaml: |
    logLevel: error
    logFormat: json
    route:
      routes:
        - match:
            - receiver: "kafka"
          drop:
            - kind: "Service"
    receivers:
      - name: "kafka"
        kafka:
          clientId: "kubernetes"
          topic: "kubenetes-event"
          brokers:
            - "192.168.100.50:9092"
            - "192.168.100.51:9092"
            - "192.168.100.52:9092"
          compressionCodec: "snappy"
          layout: #optional
            kind: "{{ .InvolvedObject.Kind }}"
            namespace: "{{ .InvolvedObject.Namespace }}"
            name: "{{ .InvolvedObject.Name }}"
            reason: "{{ .Reason }}"
            message: "{{ .Message }}"
            type: "{{ .Type }}"
            timestamp: "{{ .GetTimestampISO8601 }}"
            cluster: "sda-pre-center"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: event-exporter
  namespace: monitoring
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: event-exporter
        version: v1
    spec:
      serviceAccountName: event-exporter
      containers:
        - name: event-exporter
          image: ghcr.io/resmoio/kubernetes-event-exporter:latest
          imagePullPolicy: IfNotPresent
          args:
            - -cnotallow=/data/config.yaml
          volumeMounts:
            - mountPath: /data
              name: cfg
      volumes:
        - name: cfg
          configMap:
            name: event-exporter-cfg
  selector:
    matchLabels:
      app: event-exporter
      version: v1

當kube-event-exporter的Pod啟動過后,可以在kafka中查看到收集的事件,如下:

圖片

(2)部署logstash將事件存入ES

kind: Deployment
apiVersion: apps/v1
metadata:
  name: kube-event-logstash
  namespace: log
  labels:
    app: kube-event-logstash
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kube-event-logstash
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: kube-event-logstash
      annotations:
        kubesphere.io/restartedAt: '2024-02-22T09:03:36.215Z'
    spec:
      volumes:
        - name: kube-event-logstash-pipeline-config
          configMap:
            name: kube-event-logstash-pipeline-config
            defaultMode: 420
      containers:
        - name: kube-event-logstash
          image: 'logstash:7.8.0'
          env:
            - name: XPACK_MONITORING_ELASTICSEARCH_HOSTS
              value: 'http://192.168.100.100:8200'
            - name: XPACK_MONITORING_ELASTICSEARCH_USERNAME
              value: jokerbai
            - name: XPACK_MONITORING_ELASTICSEARCH_PASSWORD
              value: JeA9BiAgnNRzVrp5JRVQ4vYX
            - name: PIPELINE_ID
              value: kube-event-logstash
            - name: KAFKA_SERVER
              value: '192.168.100.50:9092,192.168.100.51:9092,192.168.100.52:9092'
            - name: ES_SERVER
              value: 'http://192.168.100.100:8200'
            - name: ES_USER_NAME
              value: jokerbai
            - name: ES_USER_PASSWORD
              value: JeA9BiAgnNRzVrp5JRVQ4vYX
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: PIPELINE_BATCH_SIZE
              value: '4000'
            - name: PIPELINE_BATCH_DELAY
              value: '100'
            - name: PIPELINE_WORKERS
              value: '4'
            - name: LS_JAVA_OPTS
              value: '-Xms2g -Xmx3500m'
          resources:
            limits:
              cpu: '2'
              memory: 4Gi
            requests:
              cpu: '2'
              memory: 4Gi
          volumeMounts:
            - name: kube-event-logstash-pipeline-config
              mountPath: /usr/share/logstash/pipeline
          livenessProbe:
            tcpSocket:
              port: 9600
            initialDelaySeconds: 39
            timeoutSeconds: 5
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 2
          readinessProbe:
            tcpSocket:
              port: 9600
            initialDelaySeconds: 39
            timeoutSeconds: 5
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 2
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: node/category
                    operator: In
                    values:
                      - app
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: kube-event-logstash-pipeline-config
  namespace: log
data:
  logstash.conf: |-
    input {
      kafka {
        id => "kafka_plugin_id"
        bootstrap_servers => "${KAFKA_SERVER}"
        client_id => "logstash"
        group_id => "logstash"
        decorate_events => true
        topics => ["kubenetes-event"]
        codec => json {
          charset => "UTF-8"
        }
      }
    }

    output {
        elasticsearch {
          hosts => "${ES_SERVER}"
          user => "${ES_USER_NAME}"
          password => "${ES_USER_PASSWORD}"
          index => "kubernetes-event-%{+YYYY.MM}"
          manage_template => false
          template_name => "kubernetes-event"
        }
    }

部署之前,先在ES中創建template,可以在kibana中的dev tools中進行操作,語句如下:

PUT _template/kubernetes-event
{
    "index_patterns" : [
      "*kubernetes-event*"
    ],
    "settings": {
      "index": {
        "highlight": {
          "max_analyzed_offset": "10000000"
        },
        "number_of_shards": "2",
        "number_of_replicas": "0"
      }
    },
    "mappings": {
      "properties": {
        "cluster": {
          "type": "keyword"
        },
        "kind": {
          "type": "keyword"
        },
        "message": {
          "type": "text"
        },
        "name": {
          "type": "keyword"
        },
        "namespace": {
          "type": "keyword"
        },
        "reason": {
          "type": "keyword"
        },
        "type": {
          "type": "keyword"
        },
        "timestamp": {
          "type": "keyword"
        }
      }
    },
    "aliases": {}
}

然后再在Kubernetes集群中部署Logstash。然后就可以在Kibana上查看收集到的事件了,如下:

圖片

只要數據有了,不論是查詢還是做分析,都變得簡單容易了。比如最簡單得統計今天事件原因為Unhealthy所發生的總次數,可以在Kibana中創建圖表,如下:

圖片

以上就是在Kubernetes中對集群事件進行收集和告警,這是站在巨人的肩膀上直接使用。在企業中還可以對其進行二次開放以將功能更豐富,比如支持對事件告警增加開關,可以任意開啟或者關閉某個事件告警。

鏈接

[1] https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/events/event.go?spm=a2c6h.12873639.article-detail.7.c8585c576FGh7o&file=event.go。

[2] https://github.com/AliyunContainerService/kube-eventer。

[3] https://github.com/resmoio/kubernetes-event-exporter。

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

2024-02-23 14:57:40

2022-05-05 07:25:03

Supervisor監控Python

2022-07-29 21:23:54

Grafana微服務

2022-07-28 06:50:52

微服務業務系統

2021-06-21 08:30:14

Netflix監控系統微服務

2021-06-21 08:59:55

監控Netflix優化

2025-09-08 00:00:00

2024-01-05 11:49:30

K8S監控告警

2023-12-20 08:13:54

K8S監控管理

2025-03-13 08:01:32

2022-01-21 08:36:21

LogstashZabbix監控

2020-10-09 06:55:23

監控告警日志

2022-11-08 00:00:00

監控系統Prometheus

2020-12-10 10:00:59

監控Java可視化

2025-05-23 08:30:00

系統監控告警架構告警

2025-01-06 10:38:04

2019-03-19 08:41:38

Linux運維變更

2025-08-27 07:10:00

運維監控系統資源

2020-12-17 09:25:46

運維Prometheus監控

2019-06-12 08:23:21

數據庫時間序列開源
點贊
收藏

51CTO技術棧公眾號

国产精品成人观看视频免费| 亚洲欧美在线免费| av日韩在线看| 黄色av一区二区三区| 在线欧美不卡| 日韩av在线网站| 亚洲色精品三区二区一区| 137大胆人体在线观看| 久久精品国产久精国产| 欧美精品在线观看91| 久久免费精品国产| 韩国精品一区| 亚洲国产成人自拍| 99re在线观看| 久久国产黄色片| 国产精品88久久久久久| 亚洲国产精品资源| 天堂一区在线观看| 2020日本在线视频中文字幕| 国产丝袜在线精品| 91日韩久久| www.久久久久久久| 天天做天天爱天天综合网| 亚洲国产精品va在线看黑人| 天堂在线资源视频| 国产网红在线观看| 国产精品久久二区二区| 精品日韩美女| 国产又粗又猛又爽又黄91| 伊人影院久久| 日韩有码视频在线| 亚洲精品乱码久久久久久不卡| **精品中文字幕一区二区三区| 亚洲一级片在线观看| 色爱区成人综合网| 日本免费网站在线观看| 狠狠色丁香久久婷婷综| 国产91精品最新在线播放| 久久久久免费看| 日韩电影一区| 亚洲欧洲日本专区| 少妇一级淫片免费放播放| 国产95亚洲| 欧美少妇bbb| 红桃av在线播放| 91福利在线免费| 亚洲最大的成人av| mm131午夜| 最新av网站在线观看| 久久久久久久久伊人| 国内视频一区二区| 国产91麻豆视频| 国产成a人亚洲精| 91社区国产高清| 亚洲综合视频在线播放| 琪琪一区二区三区| 国产精品白丝jk喷水视频一区| 激情五月色婷婷| 亚洲大胆av| 欧美大片免费观看| 国产性一乱一性一伧一色| 欧美日韩福利| 久久久久久久一区二区| 69精品久久久| 99亚洲伊人久久精品影院红桃| 久久久久久国产精品久久| 久久久久久久福利| 精品动漫一区| 97精品久久久中文字幕免费| 日韩福利片在线观看| 樱桃成人精品视频在线播放| 久久久久久久久久久免费| 久久老司机精品视频| 激情综合亚洲| 91精品国产91久久久久福利| 91看片在线播放| 一区二区三区四区五区在线| 4438全国亚洲精品在线观看视频| 国产成人在线免费视频| 久久性天堂网| 国产精品视频大全| 国产理论视频在线观看| 国产精品一级在线| 国产精品xxx在线观看www| 少妇高潮一区二区三区99小说| 9人人澡人人爽人人精品| 欧美激情一区二区三区在线视频| 国产高清av在线| 中文字幕一区二区三区精华液| 色爽爽爽爽爽爽爽爽| www.综合网.com| 狠狠色噜噜狠狠狠狠97| 少妇一级淫免费放| 日韩在线成人| 日韩精品中文字幕在线| 欧美激情亚洲色图| 欧美在线高清| 欧美一级成年大片在线观看| 又骚又黄的视频| 高潮精品一区videoshd| 欧美精品v日韩精品v国产精品| h视频在线观看免费| 亚洲欧美一区二区三区极速播放| 精品视频在线观看一区| 成人精品国产亚洲| 精品对白一区国产伦| 国产三级av在线播放| 欧美 日韩 国产一区二区在线视频| 97在线看免费观看视频在线观看| 中国a一片一级一片| 成人午夜在线免费| 亚洲国产精品一区二区第四页av| 日本乱理伦在线| 91高清视频免费看| 国产欧美一区二区| 国产高潮在线观看| 日韩 欧美一区二区三区| 亚洲精品欧美极品| 蝌蚪视频在线播放| 亚洲综合视频网| 五月婷婷深爱五月| 成午夜精品一区二区三区软件| 国产一区二区三区精品久久久| 九九视频免费观看| 六月婷婷色综合| 久久久久久亚洲精品不卡4k岛国 | 大胆av不用播放器在线播放| 一区二区激情视频| www.超碰97.com| 久久av综合| 国产做受69高潮| 国产av一区二区三区| 欧美国产一区视频在线观看| 日韩免费一级视频| 成人在线视频中文字幕| 久久精品亚洲热| a片在线免费观看| 久久蜜桃香蕉精品一区二区三区| 精品国产一区二区三区在线| www.国产精品| 亚洲品质视频自拍网| 自拍偷拍欧美亚洲| 本田岬高潮一区二区三区| 手机福利在线视频| 国产精品黄色片| 一区二区三区国产视频| 麻豆成人免费视频| 久久综合久久99| 欧美不卡在线播放| 国产女人18毛片水真多18精品| 欧美精品情趣视频| av资源免费看| 亚洲精品乱码久久久久久黑人 | 日韩三级在线播放| 欧美一区 二区 三区| 亚洲精选一区二区| 久久久久久九九九九九| 99re国产精品| 国产在线资源一区| 欧美a级在线观看| 亚洲精品aⅴ中文字幕乱码 | 天天干天天做天天操| 亚洲高清久久久| 中文成人无字幕乱码精品区| 亚洲精品男同| 麻豆视频成人| 美脚恋feet久草欧美| 日韩精品视频在线观看网址| 性无码专区无码| 日本一区二区三级电影在线观看| 精品少妇无遮挡毛片| 精品美女久久| 国产日韩换脸av一区在线观看| 美女黄视频在线观看| 制服丝袜亚洲精品中文字幕| 九九精品视频免费| 国产69精品一区二区亚洲孕妇 | 在线综合视频| 欧美精品尤物在线| 青青在线精品| 欧美激情国产日韩精品一区18| 人妻偷人精品一区二区三区| 精品露脸国产偷人在视频| 天堂久久精品忘忧草| 久久久国产精品一区二区中文| 亚洲精品一区二区三区四区五区| 精品国产鲁一鲁****| 午夜精品久久久99热福利| 你懂的视频在线| 欧美日韩大陆在线| 国产精品成人网站| 久久青草欧美一区二区三区| www午夜视频| 好看的日韩av电影| 日本一区二区精品| 亚洲一区导航| 992tv在线成人免费观看| seseavlu视频在线| 精品福利视频一区二区三区| 国产女主播喷水视频在线观看 | 不卡一区二区三区视频| 中文在线免费二区三区| 久久久国产一区| 亚洲 另类 春色 国产| 精品视频1区2区| 国产乡下妇女做爰毛片| 国产精品免费av| 成人在线视频免费播放| 久久超碰97中文字幕| 久久久久久久中文| 亚洲经典一区| 日本一区二区三区视频免费看| 精品视频一二| 国产激情999| av午夜在线观看| www.亚洲成人| 黄视频在线观看免费| 日韩视频在线你懂得| 国产免费一级视频| 一区二区三区精品视频| 精品手机在线视频| 久久综合久久久久88| 无码人妻精品一区二区三| 久久99精品久久久久久久久久久久| 日日碰狠狠添天天爽超碰97| 欧美黄免费看| 一区二区三区av| 精品成av人一区二区三区| 国产精品一区二区不卡视频| 四虎国产精品免费久久5151| 国产精品高潮粉嫩av| 日本在线播放一二三区| 久久久久久久国产精品| 国产成人无吗| 日韩在线观看免费全集电视剧网站 | 97超碰青青草| 国产精品99一区二区| 亚洲综合av一区| 成人激情免费视频| 欧美自拍资源在线| 台湾佬综合网| 国产日韩一区欧美| 国产伦精品一区二区三区免费优势 | 性色国产成人久久久精品| 99精品视频在线免费观看| 日本成人在线免费| 国产一区二区三区免费在线观看| 老司机午夜性大片| 日韩va欧美va亚洲va久久| 激情网站五月天| 香蕉精品999视频一区二区| 青青青青草视频| 国产视频一区免费看| 1024av视频| 欧美亚洲三区| 无码人妻丰满熟妇区毛片18| 亚洲综合精品| 国产激情在线观看视频| 日韩和欧美一区二区| 欧美伦理片在线观看| 久久成人免费电影| 91视频免费入口| 国内成+人亚洲+欧美+综合在线| 亚洲va在线va天堂va偷拍| 激情五月婷婷综合网| 久久综合在线观看| 国产高清在线观看免费不卡| 免费看91视频| www.亚洲激情.com| 强伦人妻一区二区三区| 久久精品夜夜夜夜久久| 国产99在线 | 亚洲| 亚洲欧洲99久久| 精品国产乱码久久久久久鸭王1 | 日韩电影中文 亚洲精品乱码| 亚洲av片在线观看| 一本色道久久88综合日韩精品| h视频在线播放| 欧美wwwxxxx| av资源网在线播放| 日韩男女性生活视频| 久久亚洲人体| ts人妖另类在线| 精品一区在线| 日日噜噜噜夜夜爽爽| 国产综合婷婷| 久久久久免费精品| 老鸭窝一区二区久久精品| av在线天堂网| 国产色产综合产在线视频| 黄视频网站免费看| 午夜精品一区在线观看| 中文字幕+乱码+中文| 日韩欧美一区二区不卡| 麻豆app在线观看| 另类图片亚洲另类| 中文字幕资源网在线观看免费| 国产精品99久久久久久久久久久久 | 国产午夜亚洲精品理论片色戒 | 日韩av不卡一区| 亚洲精品国产精品久久| 亚洲国产欧美国产综合一区| 亚洲免费av一区二区三区| 国产精品资源网| 少妇久久久久久久久久| 亚洲美女视频一区| 无码人妻精品一区二| 精品久久久久久无| 亚洲成人三级| 青青久久av北条麻妃黑人| 麻豆国产精品| 亚洲成人第一| 亚洲资源av| 99免费观看视频| 中文字幕日韩av资源站| 亚洲综合图片网| 精品福利在线导航| 超碰在线网址| 国产999在线| 国产精品18hdxxxⅹ在线| 伊人av成人| 久久久久99| 欧美成人三级伦在线观看| 一区二区在线电影| 97精品久久人人爽人人爽| 亚洲欧美在线免费| 午夜欧美激情| 国产日韩亚洲精品| 好看的av在线不卡观看| 一级黄色免费毛片| 亚洲欧洲日产国码二区| 亚洲精品一区二三区| 亚洲精品丝袜日韩| 爱啪视频在线观看视频免费| 91久久国产精品91久久性色| 欧美日韩有码| 日本精品免费在线观看| 99久久久免费精品国产一区二区| 久草国产在线视频| 欧美一区二区三区影视| 欧美18hd| 成人福利网站在线观看| 日韩毛片在线| 欧美大陆一区二区| 9久re热视频在线精品| 性色av蜜臀av浪潮av老女人 | 亚洲国产精品国自产拍av秋霞| 成人免费网址| 91在线视频九色| 久久久国产精品| 男生操女生视频在线观看| 国产精品每日更新| 一区二区自拍偷拍| 日日噜噜噜夜夜爽亚洲精品| 欧美一级做a| 婷婷视频在线播放| 国产精品亚洲第一区在线暖暖韩国 | 国产福利一区二区| 久久综合综合久久| 欧美精品一区二区三| 国产一二在线播放| 欧美高清视频一区| 日本欧美在线观看| 国产麻豆a毛片| 欧美精品欧美精品系列| h网站久久久| 国产二区一区| 国产精品一区亚洲| 谁有免费的黄色网址| 欧美日韩精品三区| 丝袜国产在线| 国精产品99永久一区一区| 免费一级欧美片在线播放| 国产毛片欧美毛片久久久| 欧美剧情电影在线观看完整版免费励志电影 | 日韩1区在线| 91欧美一区二区三区| 亚洲一二三级电影| 欧美黄色小说| 成人妇女淫片aaaa视频| 国产一区二区三区四区三区四| 欧美一级片黄色| 日本韩国精品一区二区在线观看| 91电影在线播放| eeuss一区二区三区| 欧美一区=区| 午夜成人亚洲理伦片在线观看| 日韩一区二区三区精品视频| mm视频在线视频| 日韩精品电影网站| 国产宾馆实践打屁股91| 久久精品视频7| 久久中文字幕国产| 天堂网av成人| 亚洲一区二区三区观看| 精品久久久久久久大神国产| 五月婷婷在线观看| 国产一级特黄a大片99| 久久国产精品99久久久久久老狼| 日韩成人免费在线观看|