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

一文圖解Kubernetes的持久化存儲解決方案

開發 前端
Kubernetes(下稱k8s)作為目前行業內使用最廣泛的容器編排工具,已經深入到各個技術領域,正在徹底改變應用程序的開發和部署方式;但從另一個方面講,k8s的架構是不斷變化的。

概述

Kubernetes(下稱k8s)作為目前行業內使用最廣泛的容器編排工具,已經深入到各個技術領域,正在徹底改變應用程序的開發和部署方式;但從另一個方面講,k8s的架構是不斷變化的。容器的創建和銷毀,從本質上講,它們的生命周期是短暫的。因而,K8s的發展歷程勢必無法繞開持久化的問題,本文就將從這一點出發,為大家講解k8s在持久化存儲方面所提供的解決方案,幫助大家更好的理解k8s的整體技術生態。

本文的章節內容分配如下:

  • 概述
  • K8s有哪些持久化方案
  • Docker存儲
  • K8s原生存儲
  • 開源存儲項目Ceph&Rook
  • 總結

K8s有哪些持久化方案

外部存儲方案:

先拋一張CNCF(云原生計算基金會)公布的云原生存儲解決方案一覽圖,這里只截取了存儲的部分。

 

一文圖解Kubernetes的持久化存儲解決方案

 

圖中列舉的存儲方案,目前都可以集成到Kubernetes平臺,

Docker存儲卷

當使用Docker作為K8s的容器方案時,Docker自身所支持的存儲卷也就成為了可選方案之一。Docker存儲卷是容器服務在單節點的存儲組織形式,作為解決數據存儲、容器運行時的技術方案;

K8s存儲卷

K8s自己的持久化存儲方案更關注于應用和集群層面,主要用于容器集群的存儲編排,從應用使用存儲的角度提供存儲服務。另一方面,K8s的持久化存儲方案能夠完全兼容自身的對象,如Pod對象等,即插即用,無需二次開發。

下面,我們就對這幾種存儲方案一一進行解釋。

Docker存儲

容器的讀寫層

為了提高節點存儲的使用效率,容器不光在不同運行的容器之間共享鏡像資源,而且還實現了在不同鏡像之間共享數據。共享鏡像數據的實現原理:鏡像是分層組合而成的,即一個完整的鏡像會包含多個數據層,每層數據相互疊加、覆蓋組成了最終的完整鏡像。

 

一文圖解Kubernetes的持久化存儲解決方案

 

為了實現多個容器間共享鏡像數據,容器鏡像每一層都是只讀的。而容器使用鏡像時,在多個鏡像分層的最上面還添加了一個讀寫層。每一個容器在運行時,都會基于當前鏡像在其最上層掛載一個讀寫層,用戶針對容器的所有操作都在讀寫層中完成。一旦容器銷毀,這個讀寫層也隨之銷毀。

容器的數據卷

容器中的應用讀寫數據都是發生在容器的讀寫層,鏡像層+讀寫層映射為容器內部文件系統、負責容器內部存儲的底層架構。當我們需要容器內部應用和外部存儲進行交互時,還需要一個外置存儲,容器數據卷即提供了這樣的功能。

另一方面,容器本身的存儲數據都是臨時存儲,在容器銷毀的時候數據會一起刪除。而通過數據卷將外部存儲掛載到容器文件系統,應用可以引用外部數據,也可以將自己產出的數據持久化到數據卷中,因此容器數據卷是容器實現數據持久化的主要實現方式。

容器存儲組成:只讀層(容器鏡像) + 讀寫層 + 外置存儲(數據卷)

容器數據卷從作用范圍可以分為:單機數據卷 和 集群數據卷。其中單機數據卷即為容器服務在一個節點上的數據卷掛載能力,docker volume 是單機數據卷的代表實現;

Docker Volume 是一個可供多個容器使用的目錄,它繞過 UFS,包含以下特性:

  • 數據卷可以在容器之間共享和重用;
  • 相比通過存儲驅動實現的可寫層,數據卷讀寫是直接對外置存儲進行讀寫,效率更高;
  • 對數據卷的更新是對外置存儲讀寫,不會影響鏡像和容器讀寫層;
  • 數據卷可以一直存在,直到沒有容器使用。

1)Docker 數據卷類型

Bind:將主機目錄/文件直接掛載到容器內部。

需要使用主機的上的絕對路徑,且可以自動創建主機目錄;

容器可以修改掛載目錄下的任何文件,是應用更具有便捷性,但也帶來了安全隱患。

Volume:使用第三方數據卷的時候使用這種方式。

Volume命令行指令:docker volume (create/rm);

是Docker提供的功能,所以在非 docker 環境下無法使用;

分為命名數據卷和匿名數據卷,其實現是一致的,區別是匿名數據卷的名字為隨機碼;

支持數據卷驅動擴展,實現更多外部存儲類型的接入。

Tmpfs:非持久化的卷類型,存儲在內存中。

數據易丟失。

2)數據卷使用語法

Bind掛載語法

-v: src:dst:opts 只支持單機版。

Src:表示卷映射源,主機目錄或文件,需要是絕對地址;

Dst:容器內目標掛載地址;

Opts:可選,掛載屬性:ro, consistent, delegated, cached, z, Z;

Consistent, delegated, cached:為mac系統配置共享傳播屬性;

Z、z:配置主機目錄的selinux label。

示例:

  1. $ docker run -d --name devtest -v /home:/data:ro,rslave nginx  
  2. $ docker run -d --name devtest --mount type=bind,source=/home,target=/data,readonly,bind-propagation=rslave nginx  
  3. $ docker run -d --name devtest -v /home:/data:z nginx  

Volume 掛載方式語法

-v: src:dst:opts 只支持單機版。

Src:表示卷映射源,數據卷名、空;

Dst:容器內目標目錄;

Opts:可選,掛載屬性:ro(只讀)。

示例:

  1. $ docker run -d --name devtest -v myvol:/app:ro nginx  
  2. $ docker run -d --name devtest --mount source=myvol2,target=/app,readonly nginx  

3)Docker數據卷插件

Docker 數據卷實現了將容器外部存儲掛載到容器文件系統的方式。為了擴展容器對外部存儲類型的需求,docker 提出了通過存儲插件的方式掛載不同類型的存儲服務。擴展插件統稱為 Volume Driver,可以為每種存儲類型開發一種存儲插件。

可以查看官方文檔鏈接:

https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins

其特性簡單來說可以總結為2點:

單個節點上可以部署多個存儲插件;

一個存儲插件負責一種存儲類型的掛載服務。

一文圖解Kubernetes的持久化存儲解決方案

關于Volume plugin的代碼實現,可以參考這篇小文章:Docker 17.03-CE create plugin源碼解析

Docker Plugin 是以Web Service的服務運行在每一臺Docker Host上的,通過HTTP協議傳輸RPC風格的JSON數據完成通信。Plugin的啟動和停止,并不歸Docker管理,Docker Daemon依靠在缺省路徑下查找Unix Socket文件,自動發現可用的插件。

當客戶端與Daemon交互,使用插件創建數據卷時,Daemon會在后端找到插件對應的 socket 文件,建立連接并發起相應的API請求,最終結合Daemon自身的處理完成客戶端的請求。

Docker Daemon 與 Volume driver 通信方式有:

  • Sock文件:linux 下放在/run/docker/plugins 目錄下
  • Spec文件:/etc/docker/plugins/convoy.spec 定義
  • Json文件:/usr/lib/docker/plugins/infinit.json 定義

實現接口:

Create, Remove, Mount, Path, Umount, Get, List, Capabilities;

使用示例:

  1. $ docker volume create --driver nas -o diskid="" -o host="10.46.225.247" -o path=”/nas1" -o mode="" --name nas1  

Docker Volume Driver 適用在單機容器環境或者 swarm 平臺進行數據卷管理,隨著 K8s 的流行其使用場景已經越來越少,這里不做贅述。

K8s原生存儲

如果說Docker注重的是單節點的存儲能力,那K8s 數據卷關注的則是集群級別的數據卷編排能力。

Kubernetes 提供是卷存儲類型,從存在的生命周期可分為臨時和持久卷。 從卷的類型分,又可以分為本地存儲、網絡存儲、Secret/ConfigMap、CSI/Flexvolume、PVC;有興趣的小伙伴可以參考一下官方文檔:

【Kubernetes文檔-卷】

https://kubernetes.io/zh/docs/concepts/storage/volumes/

這里就以一幅圖來展示各個存儲的存在形式。

一文圖解Kubernetes的持久化存儲解決方案

如上圖所示:

  • 最上層的pod和PVC由用戶管理,pod創建volume卷,并指定存儲方式。
  • 中間部分由集群管理者創建StorageClass對象,StorageClass只需確定PV屬性(存儲類型,大小等)及創建PV所需要用的的存儲插件;K8s會自動根據用戶提交的PVC來找到對應的StorageClass,之后根據其定義的存儲插件,創建出PV。
  • 最下層指代各個實際的存儲資源。

PV和PVC

這里單獨來聊聊PV和PVC,也是實際應用場景中最常用的一組概念,其中:

PV 是 PersistentVolume 的縮寫,譯為持久化存儲卷;PV 在 K8s 中代表一個具體存儲類型的卷,其對象中定義了具體存儲類型和卷參數。即目標存儲服務所有相關的信息都保存在 PV 中,K8s 引用 PV 中的存儲信息執行掛載操作。

PVC的存在,是從應用角度對存儲卷進行二次抽象;由于 PV 描述的是對具體存儲類型,需要定義詳細的存儲信息,而應用層用戶在消費存儲服務的時候往往不希望對底層細節知道的太多,讓應用編排層面來定義具體的存儲服務不夠友好。這時對存儲服務再次進行抽象,只把用戶關系的參數提煉出來,用 PVC 來抽象更底層的 PV。所以 PVC、PV 關注的對象不一樣,PVC 關注用戶對存儲需求,給用戶提供統一的存儲定義方式;而 PV 關注的是存儲細節,可以定義具體存儲類型、存儲掛載使用的詳細參數等。其具體的對應關系如下圖所示:

一文圖解Kubernetes的持久化存儲解決方案

使用方法

PVC 只有綁定了 PV 之后才能被 Pod 使用,而 PVC 綁定 PV 的過程即是消費 PV 的過程,這個過程是有一定規則的,下面規則都滿足的 PV 才能被 PVC 綁定:

  • VolumeMode:被消費 PV 的 VolumeMode 需要和 PVC 一致;
  • AccessMode:被消費 PV 的 AccessMode 需要和 PVC 一致;
  • StorageClassName:如果 PVC 定義了此參數,PV 必須有相關的參數定義才能進行綁定;
  • LabelSelector:通過 label 匹配的方式從 PV 列表中選擇合適的 PV 綁定;
  • storage:被消費 PV 的 capacity 必須大于或者等于 PVC 的存儲容量需求才能被綁定。

PVC模板:

  1. apiVersion: v1  
  2. kind: PersistentVolumeClaim  
  3. metadata:  
  4.   name: disk-1  
  5. spec:  
  6.   accessModes:  
  7.   - ReadWriteOnce  
  8.   resources:  
  9.     requests:  
  10.       storage: 20Gi  
  11.   storageClassName: test-disk  
  12.   volumeMode: Filesystem  

PV模板:

  1. apiVersion: v1  
  2. kind: PersistentVolume  
  3. metadata:  
  4.   labels:  
  5.     failure-domain.beta.kubernetes.io/region: cn-zn  
  6.     failure-domain.beta.kubernetes.io/zone: cn-zn  
  7.   name: d-wz9g2j5qbo37r2lamkg4  
  8. spec:  
  9.   accessModes:  
  10.   - ReadWriteOnce  
  11.   capacity:  
  12.     storage: 30Gi  
  13.   flexVolume:  
  14.     driver: alicloud/disk  
  15.     fsType: ext4  
  16.     options:  
  17.       VolumeId: d-wz9g2j5qbo37r2lamkg4  
  18.   persistentVolumeReclaimPolicy: Delete  
  19.   storageClassName: test-disk  
  20.   volumeMode: Filesystem  

開源存儲項目Ceph&Rook

圍繞云原生技術的工具和項目正在大量涌現。作為生產中最突出的問題之一,有相當一部分開源項目致力于解決“在云原生架構上處理存儲”這個問題。

目前最受歡迎的存儲項目是Ceph和Rook。

Ceph是一個動態管理的、水平可伸縮的分布式存儲集群。Ceph提供了對存儲資源的邏輯抽象。它被設計成不存在單點故障、可自我管理和基于軟件的。Ceph同時為相同的存儲集群提供塊、對象或文件系統接口。它能夠提供非常穩定的塊存儲系統,并且K8S對Ceph放出了完整的生態,幾乎可以說是全面兼容。

Ceph的架構非常復雜,有許多底層技術,如RADOS、librados、RADOSGW、RDB,它的CRUSH 算法和監視器、OSD和MDS等組件。這里不深入解讀其架構,關鍵在于,Ceph是一個分布式存儲集群,它可提供更高的可伸縮性,在不犧牲性能的情況下消除了單點故障,并提供了對對象、塊和文件的訪問的統一存儲。

一文圖解Kubernetes的持久化存儲解決方案

對于Rook,我們可以從以下幾點來了解這個有趣的項目。它旨在聚合Kubernetes和Ceph的工具——將計算和存儲放在一個集群中。

  • Rook 是一個開源的cloud-native storage編排, 提供平臺和框架;為各種存儲解決方案提供平臺、框架和支持,以便與云原生環境本地集成。
  • Rook 將存儲軟件轉變為自我管理、自我擴展和自我修復的存儲服務,它通過自動化部署、引導、配置、置備、擴展、升級、遷移、災難恢復、監控和資源管理來實現此目的。
  • Rook 使用底層云本機容器管理、調度和編排平臺提供的工具來實現它自身的功能。
  • Rook 目前支持Ceph、NFS、Minio Object Store和CockroachDB。
  • Rook使用Kubernetes原語使Ceph存儲系統能夠在Kubernetes上運行。

所以在ROOK的幫助之下我們甚至可以做到一鍵編排部署Ceph,同時部署結束之后的運維工作ROOK也會介入自動進行實現對存儲拓展,即便是集群出現了問題ROOK也能在一定程度上保證存儲的高可用性,絕大多數情況之下甚至不需要Ceph的運維知識都可以正常使用。

安裝方法

1. 獲取rook倉庫:

https://github.com/rook/rook.git

2. 獲取部署yaml文件

rook倉庫中,

cluster/examples/kubernetes/ceph/common.yaml 文件。

  1. #運行common.yaml文件   
  2. kubectl create -f common.yaml  

3. 安裝operator

編排文件為

/cluster/examples/kubernetes/ceph/operator.yaml

  1. #運行operator.yaml文件  
  2. kubectl create -f operator.yaml  

4. 安裝完成之后,需要等待所有操作器正常運行之后才能繼續還是ceph分部署集群的安裝

  1. #獲取命名空間下運行的pod,等待所以的pod都是running狀態之后繼續下一步  
  2. kubectl -n rook-ceph get pod  

5. 創建Ceph集群

編排文件為

/cluster/examples/kubernetes/ceph/cluster.yaml

這里也需要進行一定的基礎配置與修改才能繼續,cluster.yaml文件內容如下:

  1. apiVersion: ceph.rook.io/v1  
  2. kind: CephCluster  
  3. metadata:  
  4.   name: rook-ceph  
  5.   namespace: rook-ceph  
  6. spec:  
  7.   cephVersion:  
  8.     image: ceph/ceph:v14.2.6  
  9.     allowUnsupported: false  
  10.   dataDirHostPath: /var/lib/rook  
  11.   skipUpgradeChecks: false  
  12.   continueUpgradeAfterChecksEvenIfNotHealthy: false  
  13.   mon:  
  14.     #這里是最重要的,mon是存儲集群的監控器,我們K8S里面有多少主機這里的就必須使用多少個mon  
  15.     count: 3  
  16.     allowMultiplePerNode: false  
  17.   dashboard:  
  18.    #這里是是否啟用監控面板,基本上都會使用   
  19.     enabled: true  
  20.     #監控面板是否使用SSL,如果是使用8443端口,不是則使用7000端口,由于這是運維人員使用建議不啟用  
  21.     ssl: true  
  22.   monitoring:  
  23.     enabled: false  
  24.     rulesNamespace: rook-ceph  
  25.   network:  
  26.     hostNetwork: false  
  27.   rbdMirroring:  
  28.     workers: 0  
  29.   crashCollector:  
  30.     disable: false  
  31.   annotations:  
  32.   resources:  
  33.   removeOSDsIfOutAndSafeToRemove: false  
  34.   storage:  
  35.     useAllNodes: true  
  36.     useAllDevices: true  
  37.     config:  
  38.   disruptionManagement:  
  39.     managePodBudgets: false  
  40.     osdMaintenanceTimeout: 30  
  41.     manageMachineDisruptionBudgets: false  
  42.     machineDisruptionBudgetNamespace: openshift-machine-api  
  1. #運行cluster.yaml文件  
  2. kubectl create -f cluster.yaml  

6. 創建ceph控制面板

如果上面部署時,啟用了SSL則需要使用

/cluster/examples/kubernetes/ceph/dashboard-external-https.yaml,否則使用同目錄下的dashboard-external-http.yaml文件:

  1. #dashboard沒有啟用SSL  
  2. kubectl create -f dashboard-external-http.yaml  
  3. #dashboard啟用SSL  
  4. kubectl create -f dashboard-external-https.yaml  

7. 創建Ceph工具

運維人員可以直接通過對這個容器的shell進行Ceph集群的控制(后面有實例),編排文件是toolbox.yaml

  1. #安裝Ceph工具  
  2. kubectl create -f toolbox.yaml  

8,創建存儲系統與存儲類

集群搭建完畢之后便是存儲的創建,目前Ceph支持塊存儲、文件系統存儲、對象存儲三種方案,K8S官方對接的存儲方案是塊存儲,他也是比較穩定的方案,但是塊存儲目前不支持多主機讀寫;文件系統存儲是支持多主機存儲的性能也不錯;對象存儲系統IO性能太差不考慮,所以可以根據要求自行決定。

存儲系統創建完成之后對這個系統添加一個存儲類之后整個集群才能通過K8S的存儲類直接使用Ceph存儲。

  • 塊存儲系統+塊存儲類yaml文件:
  1. apiVersion: ceph.rook.io/v1  
  2. kind: CephBlockPool  
  3. metadata:  
  4.   name: replicapool  
  5.   namespace: rook-ceph  
  6. spec:  
  7.   failureDomain: host  
  8.   replicated:  
  9.     size: 3 #這里的數字分部署數量,一樣有幾臺主機便寫入對應的值  
  10. ---  
  11. apiVersion: storage.k8s.io/v1  
  12. kind: StorageClass  
  13. metadata:  
  14.    name: rook-ceph-block  
  15. provisioner: rook-ceph.rbd.csi.ceph.com  
  16. parameters:  
  17.     clusterID: rook-ceph  
  18.     pool: replicapool  
  19.     imageFormat: "2"  
  20.     imageFeatures: layering  
  21.     csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner  
  22.     csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph  
  23.     csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node  
  24.     csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph  
  25.     csi.storage.k8s.io/fstype: xfs  
  26. reclaimPolicy: Delete  
  • 文件系統存儲yaml文件:
  1. apiVersion: ceph.rook.io/v1  
  2. kind: CephFilesystem  
  3. metadata:  
  4.   name: myfs  
  5.   namespace: rook-ceph  
  6. spec:  
  7.   metadataPool:  
  8.     replicated:  
  9.       size: 3 #這里的數字分部署數量,一樣有幾臺主機便寫入對應的值  
  10.   dataPools:  
  11.     - replicated:   
  12.         size: 3 #這里的數字分部署數量,一樣有幾臺主機便寫入對應的值  
  13.   preservePoolsOnDelete: true  
  14.   metadataServer:  
  15.     activeCount: 1  
  16.     activeStandby: true  
  • 文件系統存儲類yaml文件:
  1. apiVersion: storage.k8s.io/v1  
  2. kind: StorageClass  
  3. metadata:  
  4.   name: csi-cephfs  
  5. provisioner: rook-ceph.cephfs.csi.ceph.com  
  6. parameters:  
  7.   clusterID: rook-ceph  
  8.   fsName: myfs  
  9.   pool: myfs-data0  
  10.   csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner  
  11.   csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph  
  12.   csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node  
  13.   csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph  
  14. reclaimPolicy: Delete  

總結

本文通過介紹并圖解K8s中各個存儲方案實現方式以及可選擇的開源項目,為讀者呈現更全面的K8s存儲方案選擇。在我們實際的使用場景中,亦需要根據特定的需求來制定符合項目要求的存儲方案,從而達到最好的實現效果。也希望有更多的朋友能夠加入到kubernetes的隊伍中來,讓kubernetes真正深入到眾多的用戶和企業中去。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2019-01-24 09:04:50

Kubernetes存儲容器

2023-12-26 07:33:45

Redis持久化COW

2021-06-28 10:03:44

分布式數據庫架構

2023-10-17 08:01:46

MQ消息重試

2019-12-13 18:03:11

騰訊

2023-05-26 00:00:00

Redis持久化方式

2021-01-21 15:48:56

物聯網智慧城市5G

2022-11-29 08:05:48

KubernetesPVCSI

2019-02-13 15:38:09

存儲虛擬化云計算

2022-05-30 10:37:35

分布式事務反向補償

2017-05-16 15:00:25

存儲云端解決方案

2022-05-12 08:01:18

KubernetesDocker容器

2024-05-22 09:45:49

2022-08-09 09:10:43

Kubernetes容器

2024-01-03 08:54:17

Kubernetes策略工具

2009-01-20 14:53:55

存儲數據管理網絡存儲

2025-03-14 10:22:26

2021-04-29 16:11:14

以太坊共識鏈驗證者

2020-12-11 11:40:37

RDBAOFRedis
點贊
收藏

51CTO技術棧公眾號

亚洲www在线观看| 日韩va亚洲va欧洲va国产| 中国一级黄色录像| 亚洲国产精品欧美久久| 国产精品久久久久9999高清| 亚洲天堂成人在线| 欧美体内she精高潮| 超碰在线视屏| 国产精品福利影院| 国产欧美韩日| 亚洲综合精品国产一区二区三区| 欧美日本久久| 在线观看国产精品日韩av| 中文字幕第10页| 欧美日韩大片| 一区二区三区美女| 日本一区高清不卡| 性猛交xxxx乱大交孕妇印度| 日韩精品一二区| 久久夜色精品亚洲噜噜国产mv| 国产吞精囗交久久久| 国产一精品一av一免费爽爽| 欧美日韩另类在线| 国产成人艳妇aa视频在线| 成年人视频在线免费观看| 成人av电影在线观看| 国产一区二中文字幕在线看| 日产精品高清视频免费| 一区二区三区中文字幕在线观看| 欧美99在线视频观看| 一区二区在线观看免费视频播放| 欧美一区二区三区在线播放| 亚洲精品久久久久久久久久| 久久91精品久久久久久秒播| 秋霞成人午夜鲁丝一区二区三区| 免费网站观看www在线观| 日韩精品诱惑一区?区三区| 日韩电视剧免费观看网站| 国产精品一级无码| 国产精品色婷婷在线观看| 欧美日韩午夜在线| 丰满少妇在线观看| 二吊插入一穴一区二区| 精品久久久久久久久久久久久| 91精品国产吴梦梦| 国产高清一区二区三区视频| 中文成人综合网| 日韩三级电影免费观看| 黄色国产在线| 国产欧美一区视频| 欧美一区二区三区四区在线观看地址 | 一级片免费观看视频| 日韩av一区二区在线影视| 日韩美女在线观看一区| 国产精品一区无码| 国产模特精品视频久久久久| 欧美亚洲国产视频小说| 久久国产视频精品| 久久精品人人| 国产精品久久久久久久久久新婚| 无码人妻熟妇av又粗又大| 久久国产一二区| 国产成人在线精品| 亚洲特级黄色片| 久久福利资源站| 亚洲精品欧美日韩| 亚洲毛片欧洲毛片国产一品色| 国产成都精品91一区二区三 | 亚洲丝袜美腿一区| 日韩成人中文字幕在线观看| 亚洲人成人无码网www国产| 视频一区中文| y97精品国产97久久久久久| www.超碰在线观看| 激情久久中文字幕| 欧美有码在线视频| 中文字幕在线观看第二页| 韩国av一区二区三区在线观看| 91av免费看| 五月婷婷六月丁香| 欧美国产亚洲另类动漫| 国产日韩第一页| 超碰成人av| 欧美影视一区二区三区| 美女被艹视频网站| 日韩精品丝袜美腿| 色婷婷综合久久久久中文字幕1| 日本一二三区在线观看| 一本色道久久综合亚洲精品高清| 热久久美女精品天天吊色| 91tv国产成人福利| 成人免费看的视频| 亚洲7777| 丁香花视频在线观看| 日本精品一区二区三区高清| 激情久久综合网| 亚洲婷婷影院| 久久亚洲私人国产精品va| 日韩精品在线不卡| 麻豆91在线播放免费| 国产精品自拍首页| 在线国产91| 精品久久久香蕉免费精品视频| 男女男精品视频站| 国产美女撒尿一区二区| 日日摸夜夜添一区| 91在线看视频| 国产在线视频一区二区三区| 久久精品国产精品青草色艺| 国产传媒在线播放| 色噜噜久久综合| 黄色国产在线视频| 国产韩日影视精品| 国产精品白丝jk喷水视频一区| 国产福利免费视频| 欧美国产在线观看| 116极品美女午夜一级| 久久久久久亚洲精品美女| 亚洲人成自拍网站| 日韩欧美一区二区一幕| 国产毛片一区二区| 伊人av成人| sese综合| 亚洲精品成人免费| 久久精品视频免费在线观看| 青青草91视频| 欧美三级电影在线播放| 91福利在线尤物| 日韩一级免费观看| 日本中文在线视频| 久久国产精品免费| 五码日韩精品一区二区三区视频| 香蕉伊大人中文在线观看| 精品99999| 久久久久久久福利| 国产麻豆日韩欧美久久| 特级黄色录像片| 久久青草免费| 在线看欧美日韩| 老熟妇一区二区三区啪啪| ww亚洲ww在线观看国产| 国产在线精品91| 黄色免费大全亚洲| 久久久久久九九九| 亚洲免费一级片| 亚洲图片一区二区| 95视频在线观看| 影音先锋久久久| 国产伦精品一区二区三区在线| 97caopor国产在线视频| 欧美一三区三区四区免费在线看| 久久嫩草捆绑紧缚| 精品一区二区三区蜜桃| 久久视频免费在线| 国产精品xxxav免费视频| 久久久久久久成人| 视频福利在线| 色婷婷av一区二区| 亚洲一区二区自偷自拍 | 国产精九九网站漫画| 欧美日本免费| 精品国产一区二区三区麻豆小说 | 日韩免费看网站| 精品无码一区二区三区电影桃花| 不卡一卡二卡三乱码免费网站| www.99热这里只有精品| 欧美美女在线观看| 国产精品免费小视频| 免费大片黄在线观看视频网站| 91精品国产一区二区三区| 久久久综合久久久| 91视频免费看| av免费一区二区| 欧美黄免费看| 欧美日韩精品免费在线观看视频| 姬川优奈av一区二区在线电影| 色偷偷av一区二区三区乱| 99久久久久久久| 欧美日韩激情视频8区| 91在线无精精品白丝| 国产一区在线不卡| 久草热视频在线观看| 成人精品视频| 91视频99| 91精品影视| 欧美多人爱爱视频网站| 国外av在线| 日韩一区和二区| 久久国产黄色片| 国产精品国产馆在线真实露脸| 精品人妻二区中文字幕| 日韩精彩视频在线观看| 操bbb操bbb| 美日韩中文字幕| 成人在线国产精品| 亚洲精品88| 久久福利视频网| 青春有你2免费观看完整版在线播放高清 | 国产免费一区二区视频| 超碰成人久久| 国产一区二区三区四区hd| 丁香六月综合| 久久精品亚洲94久久精品| 五月婷婷六月色| 日韩一区二区在线观看视频播放| 99超碰在线观看| 一区二区三区在线观看视频 | 99精品视频在线| 欧美xxxx黑人又粗又长密月| 欧美午夜网站| 国产精品久久久久久久久久| av日韩中文| 欧美精品一区二区免费| 99免在线观看免费视频高清| 日韩成人高清在线| 黄色a在线观看| 欧美日本国产视频| 久久国产黄色片| 亚洲成a人v欧美综合天堂下载| 91大神福利视频| 国产欧美日韩三区| 黄色工厂在线观看| 成人av在线播放网站| 北条麻妃亚洲一区| 九色|91porny| 欧美婷婷精品激情| 久久精品欧洲| 久久人妻精品白浆国产| 亚洲最黄网站| 国产v片免费观看| 亚洲夜间福利| 日韩专区第三页| 国产精品99一区二区| 黄色一级片av| 女主播福利一区| 99视频精品全部免费看| 亚洲国产一区二区三区在线播放| 亚洲精品成人久久久998| 欧美伦理在线视频| 日韩欧美一区二区三区四区 | 99久久伊人精品| 潘金莲一级淫片aaaaa| 无码人妻精品一区二区三区99v| 在线免费看黄视频| 欧美亚洲三级| 欧美丰满熟妇bbbbbb百度| 亚洲激情婷婷| 国产精品国产亚洲精品看不卡| 亚洲国产裸拍裸体视频在线观看乱了中文| 91精品国产毛片武则天| 综合激情在线| 免费在线黄网站| 精品动漫一区| 波多野结衣之无限发射| 国产欧美一区二区色老头 | 黄色动漫在线| 久久色在线播放| 黄网站视频在线观看| 久久综合久久88| 日本在线视频中文有码| 色综合五月天导航| mm视频在线视频| 91po在线观看91精品国产性色| 狠狠操一区二区三区| 日av在线播放中文不卡| 新片速递亚洲合集欧美合集| 国产成人精彩在线视频九色| 国模一区二区| 成人精品一区二区三区电影免费 | 日韩免费av片| 色偷偷成人一区二区三区91| 姑娘第5集在线观看免费好剧| 51精品国自产在线| wwwav在线播放| 亚洲精品国产欧美| 国产黄在线观看免费观看不卡| www.亚洲人.com| 久久亚洲资源| 亚洲免费色视频| 亚洲人成77777在线观看网| 丝袜熟女一区二区三区| 99久久久久久| 欧美老熟妇乱大交xxxxx| 国产欧美视频一区二区| 日韩精品123区| 亚洲一二三区不卡| 国产精品va无码一区二区三区| 精品视频999| 亚洲AV无码一区二区三区少妇| 亚洲精品二三区| wwwww在线观看免费视频| 欧美精品一区三区| 午夜欧美激情| 亚洲自拍高清视频网站| 亚洲自拍电影| 黄频视频在线观看| 在线亚洲激情| 亚洲一区二区中文字幕在线观看| eeuss国产一区二区三区| 正在播放国产对白害羞| 亚洲va欧美va天堂v国产综合| 中文字幕69页| 日韩免费视频一区二区| 国产精品久久久久久免费播放| 精精国产xxxx视频在线播放| 国产精品嫩草影院com| 三级黄色录像视频| 精品久久久久久久久久久久久| 国产精品久久婷婷| 日韩精品一二三四区| 2024最新电影在线免费观看| 青青草原一区二区| 亚洲无线观看| 一区二区三区在线观看www| 西西裸体人体做爰大胆久久久| 国产中文字幕日韩| 国产一级18片视频| 一本久久精品一区二区| aaa一区二区三区| 国产亚洲精品一区二555| 黑森林国产精品av| 不卡一区二区三区四区五区| 久久高清精品| 中文字幕在线观看第三页| a在线欧美一区| 精品午夜福利视频| 日韩一级大片在线观看| 色的视频在线免费看| 国产成人高潮免费观看精品| 日韩av网站在线免费观看| 韩日视频在线观看| 国产精品99久久久久久久vr| 亚洲熟女少妇一区二区| 欧美自拍偷拍一区| 你懂的在线看| 日本在线精品视频| 免费黄色成人| 草草久久久无码国产专区| 国产91精品久久久久久久网曝门| 人妻人人澡人人添人人爽| 欧美日韩亚洲综合| 午夜在线小视频| 国产精品一区二区三| 欧美日韩一二| 久久久精品三级| 中文字幕乱码久久午夜不卡| 波多野结衣视频在线观看| 亚洲一区二区黄| 黄色成人小视频| 亚洲精品中文字幕在线| 麻豆精品在线播放| 成人高潮免费视频| 欧美一区二区三区精品| 亚洲91av| 国产精品夜夜夜一区二区三区尤| 欧美激情aⅴ一区二区三区| 国产精品99精品无码视亚| 亚洲午夜精品在线| 人妻va精品va欧美va| 91国产高清在线| 欧洲亚洲一区二区三区| 日韩视频在线免费看| 国产午夜精品在线观看| 在线视频你懂得| 久久久91精品国产| 91精品久久久久久综合五月天| 丝袜人妻一区二区三区| www.欧美亚洲| 欧美超碰在线观看| www.亚洲男人天堂| jazzjazz国产精品麻豆| 欧美极品欧美精品欧美图片| 国产欧美精品一区二区三区四区 | 欧美亚洲国产bt| 尤物在线视频| 99porn视频在线| 欧美亚洲一级| 国产麻豆a毛片| 精品免费国产一区二区三区四区| 深夜福利视频一区二区| 国产成人久久久| 九九热国产精品视频| 午夜久久一区| 情侣黄网站免费看| 亚洲国产精品传媒在线观看| 国产又粗又长又大视频| 国语自产精品视频在线看一大j8 | 美乳视频一区二区| 成人污版视频| 日本午夜激情视频| 中文字幕精品三区| 国产夫妻自拍av| 日韩女优人人人人射在线视频| 日韩精品不卡一区二区| 特黄特色免费视频| 欧美自拍丝袜亚洲| 91在线超碰| 99精品一区二区三区的区别| 99久久777色| 91精品国自产|