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

徹底搞懂 Kubernetes 中的 Events

云計算
既然 events 是 Kubernetes 集群中的一種資源,正常情況下它的 metadata.name 中應該包含其名稱,用于進行單獨操作。

 [[442818]]

之前我寫了一篇《更優雅的 Kubernetes 集群事件度量方案》,利用 Jaeger 利用 tracing 的方式來采集 Kubernetes 集群中的 events 并進行展示。最終效果如下:

寫那篇文章的時候,立了個 flag 要詳細介紹下其中的原理,鴿了很久,現在年底了,也該發出來了。

Eents 概覽

我們先來做個簡單的示例,來看看 Kubernetes 集群中的 events 是什么。

創建一個新的名叫 moelove 的 namespace ,然后在其中創建一個叫做 redis 的 deployment。接下來查看這個 namespace 中的所有 events。

  1. (MoeLove) ➜ kubectl create ns moelove 
  2. namespace/moelove created 
  3. (MoeLove) ➜ kubectl -n moelove create deployment redis --image=ghcr.io/moelove/redis:alpine  
  4. deployment.apps/redis created 
  5. (MoeLove) ➜ kubectl -n moelove get deploy 
  6. NAME    READY   UP-TO-DATE   AVAILABLE   AGE 
  7. redis   1/1     1            1           11s 
  8. (MoeLove) ➜ kubectl -n moelove get events 
  9. LAST SEEN   TYPE     REASON              OBJECT                        MESSAGE 
  10. 21s         Normal   Scheduled           pod/redis-687967dbc5-27vmr    Successfully assigned moelove/redis-687967dbc5-27vmr to kind-worker3 
  11. 21s         Normal   Pulling             pod/redis-687967dbc5-27vmr    Pulling image "ghcr.io/moelove/redis:alpine" 
  12. 15s         Normal   Pulled              pod/redis-687967dbc5-27vmr    Successfully pulled image "ghcr.io/moelove/redis:alpine" in 6.814310968s 
  13. 14s         Normal   Created             pod/redis-687967dbc5-27vmr    Created container redis 
  14. 14s         Normal   Started             pod/redis-687967dbc5-27vmr    Started container redis 
  15. 22s         Normal   SuccessfulCreate    replicaset/redis-687967dbc5   Created pod: redis-687967dbc5-27vmr 
  16. 22s         Normal   ScalingReplicaSet   deployment/redis              Scaled up replica set redis-687967dbc5 to 1 

但是我們會發現默認情況下 kubectl get events 并沒有按照 events 發生的順序進行排列,所以我們往往需要為其增加 --sort-by='{.metadata.creationTimestamp}' 參數來讓其輸出可以按時間進行排列。

這也是為何 Kubernetes v1.23 版本中會新增 kubectl alpha events 命令的原因。

按時間排序后可以看到如下結果:

  1. (MoeLove) ➜ kubectl -n moelove get events --sort-by='{.metadata.creationTimestamp}' 
  2. LAST SEEN   TYPE     REASON              OBJECT                        MESSAGE 
  3. 2m12s       Normal   Scheduled           pod/redis-687967dbc5-27vmr    Successfully assigned moelove/redis-687967dbc5-27vmr to kind-worker3 
  4. 2m13s       Normal   SuccessfulCreate    replicaset/redis-687967dbc5   Created pod: redis-687967dbc5-27vmr 
  5. 2m13s       Normal   ScalingReplicaSet   deployment/redis              Scaled up replica set redis-687967dbc5 to 1 
  6. 2m12s       Normal   Pulling             pod/redis-687967dbc5-27vmr    Pulling image "ghcr.io/moelove/redis:alpine" 
  7. 2m6s        Normal   Pulled              pod/redis-687967dbc5-27vmr    Successfully pulled image "ghcr.io/moelove/redis:alpine" in 6.814310968s 
  8. 2m5s        Normal   Created             pod/redis-687967dbc5-27vmr    Created container redis 
  9. 2m5s        Normal   Started             pod/redis-687967dbc5-27vmr    Started container redis 

通過以上的操作,我們可以發現 events 實際上是 Kubernetes 集群中的一種資源。當 Kubernetes 集群中資源狀態發生變化時,可以產生新的 events。

深入 Events

單個 Event 對象

既然 events 是 Kubernetes 集群中的一種資源,正常情況下它的 metadata.name 中應該包含其名稱,用于進行單獨操作。所以我們可以使用如下命令輸出其 name :

  1. (MoeLove) ➜ kubectl -n moelove get events --sort-by='{.metadata.creationTimestamp}' -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' 
  2. redis-687967dbc5-27vmr.16c4fb7bde8c69d2 
  3. redis-687967dbc5.16c4fb7bde6b54c4 
  4. redis.16c4fb7bde1bf769 
  5. redis-687967dbc5-27vmr.16c4fb7bf8a0ab35 
  6. redis-687967dbc5-27vmr.16c4fb7d8ecaeff8 
  7. redis-687967dbc5-27vmr.16c4fb7d99709da9 
  8. redis-687967dbc5-27vmr.16c4fb7d9be30c06 

選擇其中的任意一條 event 記錄,將其輸出為 YAML 格式進行查看:

  1. (MoeLove) ➜ kubectl -n moelove get events redis-687967dbc5-27vmr.16c4fb7bde8c69d2 -o yaml 
  2. action: Binding 
  3. apiVersion: v1 
  4. eventTime: "2021-12-28T19:31:13.702987Z" 
  5. firstTimestamp: null 
  6. involvedObject: 
  7.   apiVersion: v1 
  8.   kind: Pod 
  9.   name: redis-687967dbc5-27vmr 
  10.   namespace: moelove 
  11.   resourceVersion: "330230" 
  12.   uid: 71b97182-5593-47b2-88cc-b3f59618c7aa 
  13. kind: Event 
  14. lastTimestamp: null 
  15. message: Successfully assigned moelove/redis-687967dbc5-27vmr to kind-worker3 
  16. metadata: 
  17.   creationTimestamp: "2021-12-28T19:31:13Z" 
  18.   name: redis-687967dbc5-27vmr.16c4fb7bde8c69d2 
  19.   namespace: moelove 
  20.   resourceVersion: "330235" 
  21.   uid: e5c03126-33b9-4559-9585-5e82adcd96b0 
  22. reason: Scheduled 
  23. reportingComponent: default-scheduler 
  24. reportingInstance: default-scheduler-kind-control-plane 
  25. source: {} 
  26. type: Normal 

可以看到其中包含了很多信息, 這里我們先不展開。我們看另一個例子。

kubectl describe 中的 Events

我們可以分別對 Deployment 對象和 Pod 對象執行 describe 的操作,可以得到如下結果(省略掉了中間輸出):

  • 對 Deployment 操作
  1. (MoeLove) ➜ kubectl -n moelove describe deploy/redis                 
  2. Name:                   redis 
  3. Namespace:              moelove 
  4. ... 
  5. Events: 
  6.   Type    Reason             Age   From                   Message 
  7.   ----    ------             ----  ----                   ------- 
  8.   Normal  ScalingReplicaSet  15m   deployment-controller  Scaled up replica set redis-687967dbc5 to 1 
  • 對 Pod 操作
  1. (MoeLove) ➜ kubectl -n moelove describe pods redis-687967dbc5-27vmr 
  2. Name:         redis-687967dbc5-27vmr                                                                  
  3. Namespace:    moelove 
  4. Priority:     0 
  5. Events: 
  6.   Type    Reason     Age   From               Message 
  7.   ----    ------     ----  ----               ------- 
  8.   Normal  Scheduled  18m   default-scheduler  Successfully assigned moelove/redis-687967dbc5-27vmr to kind-worker3 
  9.   Normal  Pulling    18m   kubelet            Pulling image "ghcr.io/moelove/redis:alpine" 
  10.   Normal  Pulled     17m   kubelet            Successfully pulled image "ghcr.io/moelove/redis:alpine" in 6.814310968s 
  11.   Normal  Created    17m   kubelet            Created container redis 
  12.   Normal  Started    17m   kubelet            Started container redis 

我們可以發現 對不同的資源對象進行 describe 的時候,能看到的 events 內容都是與自己有直接關聯的。在 describe Deployment 的時候,看不到 Pod 相關的 Events 。

這說明, Event 對象中是包含它所描述的資源對象的信息的,它們是有直接聯系的。

結合前面我們看到的單個 Event 對象,我們發現 involvedObject 字段中內容就是與該 Event 相關聯的資源對象的信息。

更進一步了解 Events

我們來看看如下的示例,創建一個 Deployment ,但是使用一個不存在的鏡像:

  1. (MoeLove) ➜ kubectl -n moelove create deployment non-exist --image=ghcr.io/moelove/non-exist 
  2. deployment.apps/non-exist created 
  3. (MoeLove) ➜ kubectl -n moelove get pods 
  4. NAME                        READY   STATUS         RESTARTS   AGE 
  5. non-exist-d9ddbdd84-tnrhd   0/1     ErrImagePull   0          11s 
  6. redis-687967dbc5-27vmr      1/1     Running        0          26m 

我們可以看到當前的 Pod 處于一個 ErrImagePull 的狀態。查看當前 namespace 中的 events (我省略掉了之前 deploy/redis 的記錄)

  1. (MoeLove) ➜ kubectl -n moelove get events --sort-by='{.metadata.creationTimestamp}'                                                            
  2. LAST SEEN   TYPE      REASON              OBJECT                           MESSAGE 
  3. 35s         Normal    SuccessfulCreate    replicaset/non-exist-d9ddbdd84   Created pod: non-exist-d9ddbdd84-tnrhd 
  4. 35s         Normal    ScalingReplicaSet   deployment/non-exist             Scaled up replica set non-exist-d9ddbdd84 to 1 
  5. 35s         Normal    Scheduled           pod/non-exist-d9ddbdd84-tnrhd    Successfully assigned moelove/non-exist-d9ddbdd84-tnrhd to kind-worker3 
  6. 17s         Warning   Failed              pod/non-exist-d9ddbdd84-tnrhd    Error: ErrImagePull 
  7. 17s         Warning   Failed              pod/non-exist-d9ddbdd84-tnrhd    Failed to pull image "ghcr.io/moelove/non-exist": rpc error: code = Unknown desc = failed to pull and unpack image "ghcr.io/moelove/non-exist:latest": failed to resolve reference "ghcr.io/moelove/non-exist:latest": failed to authorize: failed to fetch anonymous token: unexpected status: 403 Forbidden 
  8. 18s         Normal    Pulling             pod/non-exist-d9ddbdd84-tnrhd    Pulling image "ghcr.io/moelove/non-exist" 
  9. 4s          Warning   Failed              pod/non-exist-d9ddbdd84-tnrhd    Error: ImagePullBackOff 
  10. 4s          Normal    BackOff             pod/non-exist-d9ddbdd84-tnrhd    Back-off pulling image "ghcr.io/moelove/non-exist" 

對這個 Pod 執行 describe 操作:

  1. (MoeLove) ➜ kubectl -n moelove describe pods non-exist-d9ddbdd84-tnrhd 
  2. ... 
  3. Events: 
  4.   Type     Reason     Age                    From               Message 
  5.   ----     ------     ----                   ----               ------- 
  6.   Normal   Scheduled  4m                     default-scheduler  Successfully assigned moelove/non-exist-d9ddbdd84-tnrhd to kind-worker3 
  7.   Normal   Pulling    2m22s (x4 over 3m59s)  kubelet            Pulling image "ghcr.io/moelove/non-exist" 
  8.   Warning  Failed     2m21s (x4 over 3m59s)  kubelet            Failed to pull image "ghcr.io/moelove/non-exist": rpc error: code = Unknown desc = failed to pull and unpack image "ghcr.io/moelove/non-exist:latest": failed to resolve reference "ghcr.io/moelove/non-exist:latest": failed to authorize: failed to fetch anonymous token: unexpected status: 403 Forbidden 
  9.   Warning  Failed     2m21s (x4 over 3m59s)  kubelet            Error: ErrImagePull 
  10.   Warning  Failed     2m9s (x6 over 3m58s)   kubelet            Error: ImagePullBackOff 
  11.   Normal   BackOff    115s (x7 over 3m58s)   kubelet            Back-off pulling image "ghcr.io/moelove/non-exist" 

我們可以發現,這里的輸出和之前正確運行 Pod 的不一樣。最主要的區別在于 Age 列。這里我們看到了類似 115s (x7 over 3m58s) 這樣的輸出。

它的含義表示:該類型的 event 在 3m58s 中已經發生了 7 次,最近的一次發生在 115s 之前

但是當我們去直接 kubectl get events 的時候,我們并沒有看到有 7 次重復的 event 。這說明 Kubernetes 會自動將重復的 events 進行合并。

選擇最后一條 Events (方法前面內容已經講了) 并將其內容使用 YAML 格式進行輸出:

  1. (MoeLove) ➜ kubectl -n moelove get events non-exist-d9ddbdd84-tnrhd.16c4fce570cfba46 -o yaml 
  2. apiVersion: v1 
  3. count: 43 
  4. eventTime: null 
  5. firstTimestamp: "2021-12-28T19:57:06Z" 
  6. involvedObject: 
  7.   apiVersion: v1 
  8.   fieldPath: spec.containers{non-exist} 
  9.   kind: Pod 
  10.   name: non-exist-d9ddbdd84-tnrhd 
  11.   namespace: moelove 
  12.   resourceVersion: "333366" 
  13.   uid: 33045163-146e-4282-b559-fec19a189a10 
  14. kind: Event 
  15. lastTimestamp: "2021-12-28T18:07:14Z" 
  16. message: Back-off pulling image "ghcr.io/moelove/non-exist" 
  17. metadata: 
  18.   creationTimestamp: "2021-12-28T19:57:06Z" 
  19.   name: non-exist-d9ddbdd84-tnrhd.16c4fce570cfba46 
  20.   namespace: moelove 
  21.   resourceVersion: "334638" 
  22.   uid: 60708be0-23b9-481b-a290-dd208fed6d47 
  23. reason: BackOff 
  24. reportingComponent: "" 
  25. reportingInstance: "" 
  26. source: 
  27.   component: kubelet 
  28.   host: kind-worker3 
  29. type: Normal 

這里我們可以看到其字段中包括一個 count 字段,表示同類 event 發生了多少次。以及 firstTimestamp 和 lastTimestamp 分別表示了這個 event 首次出現了最近一次出現的時間。這樣也就解釋了前面的輸出中 events 持續的周期了。

徹底搞懂 Events

以下內容是從 Events 中隨便選擇的一條,我們可以看到它包含的一些字段信息:

  1. apiVersion: v1 
  2. count: 1 
  3. eventTime: null 
  4. firstTimestamp: "2021-12-28T19:31:13Z" 
  5. involvedObject: 
  6.   apiVersion: apps/v1 
  7.   kind: ReplicaSet 
  8.   name: redis-687967dbc5 
  9.   namespace: moelove 
  10.   resourceVersion: "330227" 
  11.   uid: 11e98a9d-9062-4ccb-92cb-f51cc74d4c1d 
  12. kind: Event 
  13. lastTimestamp: "2021-12-28T19:31:13Z" 
  14. message: 'Created pod: redis-687967dbc5-27vmr' 
  15. metadata: 
  16.   creationTimestamp: "2021-12-28T19:31:13Z" 
  17.   name: redis-687967dbc5.16c4fb7bde6b54c4 
  18.   namespace: moelove 
  19.   resourceVersion: "330231" 
  20.   uid: 8e37ec1e-b3a1-420c-96d4-3b3b2995c300 
  21. reason: SuccessfulCreate 
  22. reportingComponent: "" 
  23. reportingInstance: "" 
  24. source: 
  25.   component: replicaset-controller 
  26. type: Normal 

其中主要字段的含義如下:

  • count: 表示當前同類的事件發生了多少次 (前面已經介紹)
  • involvedObject: 與此 event 有直接關聯的資源對象 (前面已經介紹) , 結構如下:
  1. type ObjectReference struct { 
  2.  Kind string 
  3.  Namespace string 
  4.  Name string 
  5.  UID types.UID 
  6.  APIVersion string 
  7.  ResourceVersion string 
  8.  FieldPath string 
  • source: 直接關聯的組件, 結構如下:
  1. type EventSource struct { 
  2.  Component string 
  3.  Host string 
  • reason: 簡單的總結(或者一個固定的代碼),比較適合用于做篩選條件,主要是為了讓機器可讀,當前有超過 50 種這樣的代碼;
  • message: 給一個更易讓人讀懂的詳細說明
  • type: 當前只有 Normal 和 Warning 兩種類型, 源碼中也分別寫了其含義:
  1. // staging/src/k8s.io/api/core/v1/types.go 
  2. const ( 
  3.  // Information only and will not cause any problems 
  4.  EventTypeNormal string = "Normal" 
  5.  // These events are to warn that something might go wrong 
  6.  EventTypeWarning string = "Warning" 

所以,當我們將這些 Events 都作為 tracing 的 span 采集回來后,就可以按照其 source 進行分類,按 involvedObject 進行關聯,按時間進行排序了。

總結

在這篇文章中,我主要通過兩個示例,一個正確部署的 Deploy,以及一個使用不存在鏡像部署的 Deploy,深入的介紹了 Events 對象的實際的作用及其各個字段的含義。

對于 Kubernetes 而言,Events 中包含了很多有用的信息,但是這些信息卻并不會對 Kubernetes 造成什么影響,它們也并不是實際的 Kubernetes 的日志。默認情況下 Kubernetes 中的日志在 1 小時后就會被清理掉,以便釋放對 etcd 的資源占用。

所以為了能更好的讓集群管理員知道發生了什么,在生產環境中,我們通常會把 Kubernetes 集群的 events 也給采集回來。我個人比較推薦的工具是:https://github.com/opsgenie/kubernetes-event-exporter

本文轉載自微信公眾號「MoeLove」,可以通過以下二維碼關注。轉載本文請聯系MoeLove公眾號。

 

責任編輯:武曉燕 來源: MoeLove
相關推薦

2020-11-02 11:40:24

Node.jsRequire前端

2025-04-21 04:00:00

2023-09-28 08:15:05

SpringBean加載

2023-05-29 08:12:38

2024-01-03 13:39:00

JS,Javascrip算法

2023-10-18 10:55:55

HashMap

2025-04-11 05:55:00

2025-01-13 16:00:00

服務網關分布式系統架構

2025-06-30 00:32:43

策略模式算法MyBatis

2017-12-05 17:44:31

機器學習CNN卷積層

2025-05-06 01:14:00

系統編程響應式

2020-10-14 08:50:38

搞懂 Netty 線程

2022-08-26 13:24:03

version源碼sources

2025-07-01 06:05:34

2021-10-11 11:58:41

Channel原理recvq

2025-03-17 00:21:00

2021-10-09 19:05:06

channelGo原理

2025-07-28 04:00:00

Spring框架應用程序

2021-07-16 11:35:20

Java線程池代碼

2019-11-14 05:22:41

Javascript語言this
點贊
收藏

51CTO技術棧公眾號

五月天激情播播| 久久久一本精品99久久精品66| 青青草自拍偷拍| 99re8精品视频在线观看| 一区二区三区在线播放| 国产亚洲一区在线播放| 伊人久久久久久久久久久久| 99精品视频在线观看播放| 精品免费一区二区三区| 国产真实乱子伦| 一级毛片视频在线| 成人网男人的天堂| 国产成人综合精品在线| 日韩成人毛片视频| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲有吗中文字幕| 日韩精品在线免费播放| 91女神在线观看| 波多野结衣视频一区二区| 国产精品视频一二| 精品无码久久久久国产| 国产欧美熟妇另类久久久 | 国模吧一区二区| 91禁男男在线观看| 青青久久av| 日韩一区二区在线观看视频播放| 各处沟厕大尺度偷拍女厕嘘嘘| 国产精品实拍| 中文一区二区在线观看| 久久99精品久久久久久秒播放器| 一本色道久久综合亚洲| 香蕉久久夜色精品国产| 欧美极品第一页| 欧美特黄一级片| 精品日韩一区| 亚洲欧洲激情在线| 国产黑丝在线观看| 亚洲成av人片在线观看www| 欧美在线观看一区| 丝袜老师办公室里做好紧好爽| 超碰免费公开在线| 国产精品免费观看视频| 欧美黄色直播| 国产女人高潮毛片| 欧美视频导航| 欧美尺度大的性做爰视频| 性爱在线免费视频| 日韩国产欧美| 综合久久五月天| 国产aⅴ激情无码久久久无码| 你懂的在线观看一区二区| 精品少妇一区二区三区视频免付费| 手机av在线免费| 日韩三区四区| 91精品国产综合久久福利 | 久久国内精品| 欧美视频精品在线观看| 午夜免费福利在线| 成人不卡视频| 欧美亚洲国产一区二区三区va| 动漫av免费观看| 国精产品一区一区三区四川| 在线观看区一区二| 91福利国产成人精品播放| 日本黄色一区| 欧美日韩精品免费观看视频| 亚洲午夜激情影院| 欧美久久一区二区三区| 欧美大片一区二区三区| 中文字幕第九页| 老牛影视av一区二区在线观看| 在线亚洲免费视频| 国产精品区在线| 国产高清日韩| 亚洲精品在线一区二区| 在线观看日韩精品视频| 精品国产一区二区三区噜噜噜| 一区二区成人精品| 久久嫩草捆绑紧缚| 狠狠爱www人成狠狠爱综合网| 久久免费在线观看| av图片在线观看| 免费观看日韩av| 91在线免费看网站| 人妻少妇一区二区三区| 91视频你懂的| 亚洲精品欧美精品| 污的网站在线观看| 精品日本美女福利在线观看| 91人人澡人人爽人人精品| 成人日韩视频| 精品亚洲一区二区三区在线播放 | 欧美激情 亚洲| 免费看av成人| 久久综合电影一区| a v视频在线观看| 免费在线观看成人| 国产精品国产精品国产专区蜜臀ah| 水中色av综合| 亚洲天堂免费看| 内射国产内射夫妻免费频道| 国产精品原创视频| 欧美精品一区二区久久婷婷| 日韩精品无码一区二区三区久久久| 国产精品麻豆久久| 欧美一区深夜视频| www.色亚洲| 久久久99久久| 中文精品无码中文字幕无码专区| 国产不卡网站| 欧美变态凌虐bdsm| 国产精品久久久久久成人| 亚洲婷婷在线| 91久久久在线| 国外av在线| 亚洲国产精品精华液网站| 亚洲天堂网一区| 老司机精品在线| 欧美剧在线观看| 中文字幕人妻精品一区| 99精品国产一区二区三区不卡| 伊人天天久久大香线蕉av色| 在线最新版中文在线| 日韩精品一区二区三区蜜臀| 999久久久国产| 久久精品电影| 国产在线一区二区三区欧美| h视频在线免费观看| 欧美自拍偷拍一区| 日本japanese极品少妇| 国产精品v亚洲精品v日韩精品| 国产精品欧美日韩一区二区| 日本成人一区| 欧美日韩人人澡狠狠躁视频| 国产精品欧美性爱| 国产精品7m凸凹视频分类| 日本久久精品视频| 农村少妇久久久久久久| 亚洲精品高清视频在线观看| 在线视频观看91| 日产精品一区二区| 国产精品大陆在线观看| 久青青在线观看视频国产| 午夜久久久久久| 婷婷五月精品中文字幕| 海角社区69精品视频| 国产二区一区| 国产在线xxx| 欧美不卡一二三| 免费人成年激情视频在线观看| 国产伦精品一区二区三区免费 | 国产日韩久久| 成人影音在线| 亚洲第一网站免费视频| 国产乡下妇女做爰视频| 不卡影院免费观看| 欧美日韩精品在线一区二区| 欧美黑人巨大videos精品| 91精品国产91久久| 三级av在线播放| 色诱亚洲精品久久久久久| 熟女少妇一区二区三区| 久久午夜精品一区二区| 婷婷四房综合激情五月| 欧美一区二区三区婷婷| 欧美成人全部免费| 人妻中文字幕一区| 精品免费在线观看| 女人又爽又黄免费女仆| 蜜桃视频一区二区| 91xxx视频| 成人看片爽爽爽| 国产91精品不卡视频| 美女毛片在线看| 欧美日韩在线三区| 丰满少妇被猛烈进入一区二区| 国产精品1区2区| 欧美s码亚洲码精品m码| re久久精品视频| 成人做爽爽免费视频| xxxx另类黑人| 一区二区三区四区视频| 99热这里是精品| 亚洲成人免费视频| 久久亚洲无码视频| 国产乱一区二区| 久久久噜噜噜www成人网| 日韩欧美电影| 国产精品久久久久久久天堂第1集| 欲香欲色天天天综合和网| 综合久久五月天| 欧美在线 | 亚洲| 欧美性三三影院| 无码人妻精品一区二区三区夜夜嗨| 不卡的av在线播放| 538任你躁在线精品免费| 欧美精品色网| 日韩在线第一区| 欧美第一在线视频| 国产精品扒开腿做爽爽爽的视频| 老司机99精品99| 亚洲欧美激情视频| а√中文在线资源库| 在线观看区一区二| 国产一级中文字幕| 国产精品欧美一级免费| 少妇一级淫免费观看| 久久 天天综合| 久久婷婷五月综合色国产香蕉| 天天做天天爱综合| 欧美日韩电影一区二区| 日韩精品成人在线观看| 国产精品com| 2021中文字幕在线| 成年无码av片在线| 1024国产在线| 亚洲日本中文字幕| 手机看片一区二区| 欧美日韩久久久久久| 天堂在线免费观看视频| 亚洲一区二区三区美女| 国产精品综合激情| 久久久精品一品道一区| 好吊一区二区三区视频| 国产福利视频一区二区三区| 超碰超碰在线观看| 免费日韩精品中文字幕视频在线| 18禁裸男晨勃露j毛免费观看| 99九九热只有国产精品| 五月婷婷一区| 欧美猛男男男激情videos| 久久99精品国产一区二区三区| av男人一区| 99精彩视频| 欧美日韩黄网站| 亚洲va码欧洲m码| 24小时成人在线视频| 国产欧美韩国高清| 粉嫩av一区二区三区四区五区| 日韩av黄色在线观看| 中文字幕在线直播| 911国产网站尤物在线观看| h片精品在线观看| 久久久久久av| 波多野结衣在线观看| 欧美激情在线播放| 国精产品一区一区三区mba下载| 欧美激情国产精品| 超碰在线资源| 高清一区二区三区四区五区| 国产黄色大片在线观看| 隔壁老王国产在线精品| 国产福利电影在线播放| 91精品国产乱码久久久久久蜜臀 | 成人欧美一区二区三区视频| 精品视频在线播放一区二区三区| 91免费在线视频| 久久久精品区| 国产精品视频一区二区三区经| 国产96在线亚洲| 久久综合毛片| 黑丝美女一区二区| 中文字幕日韩精品一区二区| 999久久久国产精品| 中文字幕第50页| 91久久中文| 欧美 日韩精品| 免费久久99精品国产| 99精品视频国产| 从欧美一区二区三区| 波多野结衣先锋影音| 国产婷婷色一区二区三区 | 欧美国产偷国产精品三区| 自拍偷拍99| 亚洲调教视频在线观看| 妞干网在线免费视频| 蜜臀av性久久久久av蜜臀妖精| 国产在线观看中文字幕| 成人sese在线| 中文字幕在线观看免费高清| 最好看的中文字幕久久| 久热精品在线观看| 色哟哟欧美精品| 国产免费不卡av| 亚洲精品www久久久| 91社区在线观看播放| 欧美第一黄网免费网站| 高潮一区二区| 91超碰在线电影| 国产一区二区三区四区二区| 色婷婷777777仙踪林| 久久亚洲电影| 国产精九九网站漫画| 国产欧美一区视频| 精品少妇久久久久久888优播| 色欧美88888久久久久久影院| 99久久免费国产精精品| 亚洲欧美日韩一区二区在线 | 97婷婷涩涩精品一区| 91国内外精品自在线播放| 99re国产视频| 精品日韩一区| 免费欧美一级视频| 国产高清亚洲一区| 一区二区三区在线观看免费视频| 一区二区高清免费观看影视大全| 男人的天堂av网站| 亚洲成年人在线播放| 日本电影全部在线观看网站视频| 午夜精品一区二区三区在线视| 天天综合91| 日韩精品伦理第一区| 影音先锋久久久| 91pony九色| 久久久精品人体av艺术| 久久精品国产亚洲AV无码麻豆| 欧美久久久久久久久| 国产私拍精品| 欧美有码在线观看| jizzjizzjizz欧美| 水蜜桃在线免费观看| 精品亚洲国产成人av制服丝袜| 李宗瑞91在线正在播放| 亚洲成a人v欧美综合天堂下载 | 国产成人午夜性a一级毛片| 国产精品一区二区av| 欧美在线免费一级片| 99日在线视频| 国产精品久久看| 69xxxx国产| 亚洲欧美日本精品| 久草在线资源站手机版| 国产福利不卡| 一区免费视频| 韩国一区二区三区四区| 一区二区不卡在线视频 午夜欧美不卡在 | 在线亚洲一区二区| 精品久久av| 日韩av免费在线看| 一区二区三区视频免费观看| 国产乱子伦农村叉叉叉| 成人国产亚洲欧美成人综合网| 毛片a片免费观看| 亚洲成人黄色在线| 77thz桃花论族在线观看| 国产精品一区二区三区四区五区| 国产一区久久| 国产伦精品一区三区精东| 亚洲高清在线精品| 色婷婷在线视频| 2019中文字幕全在线观看| 神马香蕉久久| 日本xxxxxxx免费视频| 国产色婷婷亚洲99精品小说| 日韩熟女一区二区| 夜夜嗨av一区二区三区免费区| 亚洲第一会所| 只有这里有精品| 国产91丝袜在线观看| 日本熟妇成熟毛茸茸| 日韩电影中文 亚洲精品乱码| 理论片午夜视频在线观看| 免费不卡亚洲欧美| 丝袜国产日韩另类美女| 国产欧美一区二区三区在线观看视频| 欧美日韩一卡二卡| 综合久久2019| 狠狠久久综合婷婷不卡| 久久男女视频| 精品亚洲乱码一区二区| 日韩视频一区在线观看| a毛片不卡免费看片| 欧美区高清在线| 国产一区二区精品久久99| 国产一级在线免费观看| 亚洲视频在线观看| 只有精品亚洲| 免费av手机在线观看| 国产日韩欧美激情| 国产又粗又长又黄| 欧美精品国产精品日韩精品| 婷婷国产精品| 精品久久久99| 欧美日韩一区二区免费在线观看 | 亚洲精品国产一区二区精华液| 视频一区二区免费| 国产精品三级在线| 国产专区一区| 国产精品理论在线| 亚洲成在人线av| 国产成人a视频高清在线观看| 91免费国产精品| 国产日产欧美一区二区三区| 国产伦子伦对白视频| 欧美最猛性xxxxx(亚洲精品)| 99久久婷婷| v8888av| 精品福利一区二区三区| 日韩美女在线| 亚洲成熟丰满熟妇高潮xxxxx|