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

K8s使用新版NFS Provisioner配置Subdir

存儲
NFS在k8s中作為volume存儲已經沒有什么新奇的了,這個是最簡單也是最容易上手的一種文件存儲。最近有一個需求需要在k8s中使用NFS存儲,于是記錄如下,并且還存在一些騷操作和過程中遇到的坑點,同時記錄如下。

[[415487]]

本文轉載自微信公眾號「運維開發故事」,作者小姜。轉載本文請聯系運維開發故事公眾號。

背景

NFS在k8s中作為volume存儲已經沒有什么新奇的了,這個是最簡單也是最容易上手的一種文件存儲。最近有一個需求需要在k8s中使用NFS存儲,于是記錄如下,并且還存在一些騷操作和過程中遇到的坑點,同時記錄如下。

訪問nfs provisioner的GitHub倉庫會發現他提示你該倉庫已經被個人歸檔并且狀態已經是只讀了。

老的NFS倉庫地址:https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client

下面Deprecated表示倉庫已經移動到了另外一個GitHub地址了,也就是說他這個倉庫已經不在更新了,持續更新的倉庫是Moved to 后面指定的倉庫了。

新倉庫地址:https://github.com/lorenzofaresin/nfs-subdir-external-provisioner

發現更新的倉庫中相比老倉庫多了一個功能:添加了一個參數pathPattern,實際上也就是通過設置這個參數可以配置PV的子目錄。

nfs-client-provisioner部署

帶著好奇心我們來部署一下新的NFS,以下yaml配置文件可以在項目中的deploy目錄中找到。我這里的配置根據我的環境稍微做了更改,比如NFS的服務的IP地址。你們根據實際情況修改成自己的nfs服務器地址和path路徑。

「本次實踐在k8s 1.19.0上」

class.yaml

  1. $ cat class.yaml 
  2. apiVersion: storage.k8s.io/v1 
  3. kind: StorageClass 
  4. metadata: 
  5.   name: managed-nfs-storage 
  6. provisioner: k8s-sigs.io/nfs-subdir-external-provisioner # or choose another name, must match deployment's env PROVISIONER_NAME' 
  7. parameters: 
  8.   archiveOnDelete: "false" 

deployment.yaml

  1. apiVersion: apps/v1 
  2. kind: Deployment 
  3. metadata: 
  4.   name: nfs-client-provisioner 
  5.   labels: 
  6.     app: nfs-client-provisioner 
  7.   # replace with namespace where provisioner is deployed 
  8.   namespace: kube-system 
  9. spec: 
  10.   replicas: 1 
  11.   strategy: 
  12.     type: Recreate 
  13.   selector: 
  14.     matchLabels: 
  15.       app: nfs-client-provisioner 
  16.   template: 
  17.     metadata: 
  18.       labels: 
  19.         app: nfs-client-provisioner 
  20.     spec: 
  21.       serviceAccountName: nfs-client-provisioner 
  22.       containers: 
  23.         - name: nfs-client-provisioner 
  24.           image: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2 
  25.           volumeMounts: 
  26.             - name: nfs-client-root 
  27.               mountPath: /persistentvolumes 
  28.           env: 
  29.             - name: PROVISIONER_NAME 
  30.               value: k8s-sigs.io/nfs-subdir-external-provisioner 
  31.             - name: NFS_SERVER 
  32.               value: 172.16.33.4 
  33.             - name: NFS_PATH 
  34.               value: / 
  35.       volumes: 
  36.         - name: nfs-client-root 
  37.           nfs: 
  38.             server: 172.16.33.4 
  39.             path: / 

rbac.yaml

  1. apiVersion: v1 
  2. kind: ServiceAccount 
  3. metadata: 
  4.   name: nfs-client-provisioner 
  5.   # replace with namespace where provisioner is deployed 
  6.   namespace: kube-system 
  7. --- 
  8. kind: ClusterRole 
  9. apiVersion: rbac.authorization.k8s.io/v1 
  10. metadata: 
  11.   name: nfs-client-provisioner-runner 
  12. rules: 
  13.   - apiGroups: [""
  14.     resources: ["nodes"
  15.     verbs: ["get""list""watch"
  16.   - apiGroups: [""
  17.     resources: ["persistentvolumes"
  18.     verbs: ["get""list""watch""create""delete"
  19.   - apiGroups: [""
  20.     resources: ["persistentvolumeclaims"
  21.     verbs: ["get""list""watch""update"
  22.   - apiGroups: ["storage.k8s.io"
  23.     resources: ["storageclasses"
  24.     verbs: ["get""list""watch"
  25.   - apiGroups: [""
  26.     resources: ["events"
  27.     verbs: ["create""update""patch"
  28. --- 
  29. kind: ClusterRoleBinding 
  30. apiVersion: rbac.authorization.k8s.io/v1 
  31. metadata: 
  32.   name: run-nfs-client-provisioner 
  33. subjects: 
  34.   - kind: ServiceAccount 
  35.     name: nfs-client-provisioner 
  36.     # replace with namespace where provisioner is deployed 
  37.     namespace: kube-system 
  38. roleRef: 
  39.   kind: ClusterRole 
  40.   name: nfs-client-provisioner-runner 
  41.   apiGroup: rbac.authorization.k8s.io 
  42. --- 
  43. kind: Role 
  44. apiVersion: rbac.authorization.k8s.io/v1 
  45. metadata: 
  46.   name: leader-locking-nfs-client-provisioner 
  47.   # replace with namespace where provisioner is deployed 
  48.   namespace: kube-system 
  49. rules: 
  50.   - apiGroups: [""
  51.     resources: ["endpoints"
  52.     verbs: ["get""list""watch""create""update""patch"
  53. --- 
  54. kind: RoleBinding 
  55. apiVersion: rbac.authorization.k8s.io/v1 
  56. metadata: 
  57.   name: leader-locking-nfs-client-provisioner 
  58.   # replace with namespace where provisioner is deployed 
  59.   namespace: kube-system 
  60. subjects: 
  61.   - kind: ServiceAccount 
  62.     name: nfs-client-provisioner 
  63.     # replace with namespace where provisioner is deployed 
  64.     namespace: kube-system 
  65. roleRef: 
  66.   kind: Role 
  67.   name: leader-locking-nfs-client-provisioner 
  68.   apiGroup: rbac.authorization.k8s.io 

注意:

  • 鏡像無法拉取的話可以從國外機器拉取鏡像然后再導入
  • rbac基本無需更改,配置子目錄的時候需要更改class.yaml文件,后面會說

創建所有資源文件

  1. kubectl apply -f class.yaml -f deployment.yaml -f rbac.yaml 

通過一個簡單的例子來創建pvc

  1. $ cat test-pvc-2.yaml 
  2. kind: PersistentVolumeClaim 
  3. apiVersion: v1 
  4. metadata: 
  5.   name: test-pvc-2 
  6.   namespace: nacos 
  7. spec: 
  8.   storageClassName: "managed-nfs-storage" 
  9.   accessModes: 
  10.     - ReadWriteMany 
  11.   resources: 
  12.     requests: 
  13.       storage: 10Gi 
  14.  
  15. $ cat test-nacos-pod-2.yaml 
  16. apiVersion: apps/v1 
  17. kind: StatefulSet 
  18. metadata: 
  19.   name: nacos-c1-sit-tmp-1 
  20.   labels: 
  21.     appEnv: sit 
  22.     appName: nacos-c1-sit-tmp-1 
  23.   namespace: nacos 
  24. spec: 
  25.   serviceName: nacos-c1-sit-tmp-1 
  26.   replicas: 3 
  27.   selector: 
  28.     matchLabels: 
  29.       appEnv: sit 
  30.       appName: nacos-c1-sit-tmp-1 
  31.   template: 
  32.     metadata: 
  33.       labels: 
  34.         appEnv: sit 
  35.         appName: nacos-c1-sit-tmp-1 
  36.     spec: 
  37.       dnsPolicy: ClusterFirst 
  38.       containers: 
  39.       - name: nacos 
  40.         image: www.ayunw.cn/library/nacos/nacos-server:1.4.1 
  41.         ports: 
  42.         - containerPort: 8848 
  43.         env: 
  44.         - name: NACOS_REPLICAS 
  45.           value: "1" 
  46.         - name: MYSQL_SERVICE_HOST 
  47.           value: mysql.ayunw.cn 
  48.         - name: MYSQL_SERVICE_DB_NAME 
  49.           value: nacos_c1_sit 
  50.         - name: MYSQL_SERVICE_PORT 
  51.           value: "3306" 
  52.         - name: MYSQL_SERVICE_USER 
  53.           value: nacos 
  54.         - name: MYSQL_SERVICE_PASSWORD 
  55.           value: xxxxxxxxx 
  56.         - name: MODE 
  57.           value: cluster 
  58.         - name: NACOS_SERVER_PORT 
  59.           value: "8848" 
  60.         - name: PREFER_HOST_MODE 
  61.           value: hostname 
  62.         - name: SPRING_DATASOURCE_PLATFORM 
  63.           value: mysql 
  64.         - name: TOMCAT_ACCESSLOG_ENABLED 
  65.           value: "true" 
  66.         - name: NACOS_AUTH_ENABLE 
  67.           value: "true" 
  68.         - name: NACOS_SERVERS 
  69.           value: nacos-c1-sit-0.nacos-c1-sit-tmp-1.nacos.svc.cluster.local:8848 nacos-c1-sit-1.nacos-c1-sit-tmp-1.nacos.svc.cluster.local:8848 nacos-c1-sit-2.nacos-c1-sit-tmp-1.nacos.svc.cluster.local:8848 
  70.         imagePullPolicy: IfNotPresent 
  71.         resources: 
  72.           limits: 
  73.             cpu: 500m 
  74.             memory: 5Gi 
  75.           requests: 
  76.             cpu: 100m 
  77.             memory: 512Mi 
  78.         volumeMounts: 
  79.         - name: data 
  80.           mountPath: /home/nacos/plugins/peer-finder 
  81.           subPath: peer-finder 
  82.         - name: data 
  83.           mountPath: /home/nacos/data 
  84.           subPath: data 
  85.   volumeClaimTemplates: 
  86.     - metadata: 
  87.         name: data 
  88.       spec: 
  89.         storageClassName: "managed-nfs-storage" 
  90.         accessModes: 
  91.           - "ReadWriteMany" 
  92.         resources: 
  93.           requests: 
  94.             storage: 10Gi 

查看pvc以及nfs存儲中的數據

  1. # ll 
  2. total 12 
  3. drwxr-xr-x 4 root root 4096 Aug  3 13:30 nacos-data-nacos-c1-sit-tmp-1-0-pvc-90d74547-0c71-4799-9b1c-58d80da51973 
  4. drwxr-xr-x 4 root root 4096 Aug  3 13:30 nacos-data-nacos-c1-sit-tmp-1-1-pvc-18b3e220-d7e5-4129-89c4-159d9d9f243b 
  5. drwxr-xr-x 4 root root 4096 Aug  3 13:31 nacos-data-nacos-c1-sit-tmp-1-2-pvc-26737f88-35cd-42dc-87b6-3b3c78d823da 
  6.  
  7. # ll nacos-data-nacos-c1-sit-tmp-1-0-pvc-90d74547-0c71-4799-9b1c-58d80da51973 
  8. total 8 
  9. drwxr-xr-x 2 root root 4096 Aug  3 13:30 data 
  10. drwxr-xr-x 2 root root 4096 Aug  3 13:30 peer-finder 

可以發現手動創建了一個PVC,并且創建一個nacos的deployment使用這個PVC后已經自動創建出相應的PV并且與之綁定,且掛載了數據。

配置子目錄

刪除之前創建的class.yaml,添加pathPattern參數,然后重新生成sc

  1. $ kubectl delete -f class.yaml 
  2.  
  3. $ vi class.yaml 
  4. apiVersion: storage.k8s.io/v1 
  5. kind: StorageClass 
  6. metadata: 
  7.   name: managed-nfs-storage 
  8. provisioner: k8s-sigs.io/nfs-subdir-external-provisioner # or choose another name, must match deployment's env PROVISIONER_NAME' 
  9. parameters: 
  10.   archiveOnDelete: "false" 
  11.   # 添加以下參數 
  12.   pathPattern: "${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}" 

創建pvc來測試生成的PV目錄是否生成了子目錄

  1. $ cat test-pvc.yaml 
  2. kind: PersistentVolumeClaim 
  3. apiVersion: v1 
  4. metadata: 
  5.   name: test-pvc-2 
  6.   namespace: nacos 
  7.   annotations: 
  8.     nfs.io/storage-path: "test-path-two" # not required, depending on whether this annotation was shown in the storage class description 
  9. spec: 
  10.   storageClassName: "managed-nfs-storage" 
  11.   accessModes: 
  12.     - ReadWriteMany 
  13.   resources: 
  14.     requests: 
  15.       storage: 100Mi 

創建資源

  1. kubectl apply -f class.yaml -f test-pvc.yaml 

查看結果

  1. # pwd 
  2. /data/nfs# ll nacos/ 
  3. total 4 
  4. drwxr-xr-x 2 root root 4096 Aug  3 10:21 nacos-pvc-c1-pro 
  5.  
  6. # tree -L 2 . 
  7. └── nacos 
  8.     └── nacos-pvc-c1-pro 
  9. 2 directories, 0 files 

在mount了nfs的機器上查看生成的目錄,發現子目錄的確已經生成,并且子目錄的層級是以"命名空間/注解名稱"為規則的。剛好符合了上面StorageClass中定義的pathPattern規則。

provisioner高可用

生產環境中應該盡可能的避免單點故障,因此此處考慮provisioner的高可用架構 更新后的provisioner配置如下:

  1. $ cat nfs-deployment.yaml 
  2. apiVersion: apps/v1 
  3. kind: Deployment 
  4. metadata: 
  5.   name: nfs-client-provisioner 
  6.   labels: 
  7.     app: nfs-client-provisioner 
  8.   # replace with namespace where provisioner is deployed 
  9.   namespace: kube-system 
  10. spec: 
  11.   # 因為要實現高可用,所以配置3個pod副本 
  12.   replicas: 3 
  13.   strategy: 
  14.     type: Recreate 
  15.   selector: 
  16.     matchLabels: 
  17.       app: nfs-client-provisioner 
  18.   template: 
  19.     metadata: 
  20.       labels: 
  21.         app: nfs-client-provisioner 
  22.     spec: 
  23.       serviceAccountName: nfs-client-provisioner 
  24.       imagePullSecrets: 
  25.         - name: registry-auth-paas 
  26.       containers: 
  27.         - name: nfs-client-provisioner 
  28.           image: www.ayunw.cn/nfs-subdir-external-provisioner:v4.0.2-31-gcb203b4 
  29.           imagePullPolicy: IfNotPresent 
  30.           volumeMounts: 
  31.             - name: nfs-client-root 
  32.               mountPath: /persistentvolumes 
  33.           env: 
  34.             - name: PROVISIONER_NAME 
  35.               value: k8s-sigs.io/nfs-subdir-external-provisioner 
  36.               # 設置高可用允許選舉 
  37.             - name: ENABLE_LEADER_ELECTION 
  38.               value: "True" 
  39.             - name: NFS_SERVER 
  40.               value: 172.16.33.4 
  41.             - name: NFS_PATH 
  42.               value: / 
  43.       volumes: 
  44.         - name: nfs-client-root 
  45.           nfs: 
  46.             server: 172.16.33.4 
  47.             path: / 

重建資源

  1. kubectl delete -f nfs-class.yaml -f nfs-deployment.yaml 
  2. kubectl apply -f nfs-class.yaml -f nfs-deployment.yaml 

查看provisioner高可用是否生效

  1. # kubectl get po -n kube-system | grep nfs 
  2. nfs-client-provisioner-666df4d979-fdl8l    1/1     Running   0          20s 
  3. nfs-client-provisioner-666df4d979-n54ps    1/1     Running   0          20s 
  4. nfs-client-provisioner-666df4d979-s4cql    1/1     Running   0          20s 
  5. # kubectl logs -f --tail=20 nfs-client-provisioner-666df4d979-fdl8l -n kube-system 
  6. I0803 06:04:41.406441       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/nfs-provisioner-baiducfs... 
  7. ^C 
  8. # kubectl logs -f --tail=20  -n kube-system nfs-client-provisioner-666df4d979-n54ps 
  9. I0803 06:04:41.961617       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/nfs-provisioner-baiducfs... 
  10. ^C 
  11. [root@qing-core-kube-master-srv1 nfs-storage]# kubectl logs -f --tail=20  -n kube-system nfs-client-provisioner-666df4d979-s4cql 
  12. I0803 06:04:39.574258       1 leaderelection.go:242] attempting to acquire leader lease  kube-system/nfs-provisioner-baiducfs... 
  13. I0803 06:04:39.593388       1 leaderelection.go:252] successfully acquired lease kube-system/nfs-provisioner-baiducfs 
  14. I0803 06:04:39.593519       1 event.go:278] Event(v1.ObjectReference{Kind:"Endpoints", Namespace:"kube-system"Name:"nfs-provisioner-baiducfs", UID:"3d5cdef6-57da-445e-bcd4-b82d0181fee4", APIVersion:"v1", ResourceVersion:"1471379708", FieldPath:""}): type: 'Normal' reason: 'LeaderElection' nfs-client-provisioner-666df4d979-s4cql_590ac6eb-ccfd-4653-9de5-57015f820b84 became leader 
  15. I0803 06:04:39.593559       1 controller.go:820] Starting provisioner controller nfs-provisioner-baiducfs_nfs-client-provisioner-666df4d979-s4cql_590ac6eb-ccfd-4653-9de5-57015f820b84! 
  16. I0803 06:04:39.694505       1 controller.go:869] Started provisioner controller nfs-provisioner-baiducfs_nfs-client-provisioner-666df4d979-s4cql_590ac6eb-ccfd-4653-9de5-57015f820b84! 

通過successfully acquired lease kube-system/nfs-provisioner-baiducfs可以看到第三個pod成功被選舉為leader節點了,高可用生效。

報錯

在操作過程中遇到describe pod發現報錯如下:

  1. Mounting arguments: --description=Kubernetes transient mount for /data/kubernetes/kubelet/pods/2ca70aa9-433c-4d10-8f87-154ec9569504/volumes/kubernetes.io~nfs/nfs-client-root --scope -- mount -t nfs 172.16.41.7:/data/nfs_storage /data/kubernetes/kubelet/pods/2ca70aa9-433c-4d10-8f87-154ec9569504/volumes/kubernetes.io~nfs/nfs-client-root 
  2. Output: Running scope as unit: run-rdcc7cfa6560845969628fc551606e69d.scope 
  3. mount: /data/kubernetes/kubelet/pods/2ca70aa9-433c-4d10-8f87-154ec9569504/volumes/kubernetes.io~nfs/nfs-client-root: bad optionfor several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program. 
  4.   Warning  FailedMount  10s  kubelet, node1.ayunw.cn  MountVolume.SetUp failed for volume "nfs-client-root" : mount failed: exit status 32 
  5. Mounting command: systemd-run 

解決方式:經排查原因是pod被調度到的節點上沒有安裝nfs客戶端,只需要安裝一下nfs客戶端nfs-utils即可。

 

責任編輯:武曉燕 來源: 運維開發故事
相關推薦

2023-08-04 08:19:02

2022-04-22 13:32:01

K8s容器引擎架構

2023-11-06 07:16:22

WasmK8s模塊

2022-06-14 07:56:15

Kubernetes存儲架構K8S

2023-09-06 08:12:04

k8s云原生

2021-07-14 14:20:22

root命令Linux

2025-05-22 08:05:00

K8SNFS 存儲存儲

2025-04-09 07:58:15

2020-05-12 10:20:39

K8s kubernetes中間件

2022-09-05 08:26:29

Kubernetes標簽

2023-08-03 08:36:30

Service服務架構

2023-05-25 21:38:30

2019-09-25 07:17:42

KubernetesIstio測試

2023-09-15 08:00:20

Ingress網關Istio

2025-09-05 01:22:00

2023-03-05 21:50:46

K8s集群容量

2022-12-06 07:30:12

K8s云原生生態系統

2021-12-03 06:29:56

K8sDubboSpring

2021-04-12 20:42:50

K8S端口內存

2024-01-26 14:35:03

鑒權K8sNode
點贊
收藏

51CTO技術棧公眾號

亚洲国产高清不卡| 最新成人av网站| 欧美久久高跟鞋激| 青草全福视在线| 熟妇高潮一区二区三区| 日本午夜一本久久久综合| 久久最新资源网| 久久人人爽人人爽人人片| 国产精品久久久久77777丨| 亚洲精品国产一区二区精华液 | 国产精品欧美在线观看| 9191精品国产综合久久久久久| av日韩一区二区三区| 成人激情电影在线看| 狠狠色狠狠色综合系列| 欧美一级大片在线观看| 18岁成人毛片| 日韩一区电影| 日韩电视剧免费观看网站| 国产免费中文字幕| 不卡福利视频| 午夜国产精品一区| 在线不卡日本| 男女污污视频在线观看| 成人免费精品视频| 91免费在线视频| 欧美一区二区三区久久久| 激情久久五月| 美女啪啪无遮挡免费久久网站| 日本乱子伦xxxx| 久久午夜影院| 精品久久人人做人人爽| 亚洲黄色片免费| 成人一级视频| 在线观看日韩一区| 国产三区在线视频| 国产在线精彩视频| 亚洲一级二级三级| 欧美日韩午夜爽爽| 免费在线看a| 国产精品理伦片| 日韩电影免费观看在| 日韩大胆视频| 91首页免费视频| 国产欧美在线一区二区| 性做久久久久久久| 国产福利不卡视频| 成人精品视频在线| 国产精品久久777777换脸| 日本不卡中文字幕| 日本久久久a级免费| 久久青青草视频| 99视频在线精品国自产拍免费观看| 欧美国产亚洲视频| 精品无码久久久久久久| 亚洲午夜伦理| 91精品国产高清| 国产精品一区二区三区四| 亚洲人www| 欧美一级片久久久久久久| 亚洲另类欧美日韩| 久色成人在线| 日产精品久久久一区二区福利| 日本中文字幕久久| 秋霞成人午夜伦在线观看| 国产精品日韩欧美综合| 一道本在线视频| 国产精品99久久久久久有的能看| 亚洲中国色老太| 蜜桃在线一区二区| 91亚洲精品乱码久久久久久蜜桃| 免费中文日韩| 日本韩国在线视频爽| 亚洲精品国产视频| 国产v片免费观看| 成人黄色免费短视频| 欧美猛男男办公室激情| 国产精久久久久| 欧美变态挠脚心| 亚洲人成毛片在线播放| 毛片视频免费播放| 欧美日一区二区三区在线观看国产免| 国模私拍一区二区三区| www.久久精品视频| 精品一区在线看| 国语精品中文字幕| 国产福利片在线| 亚洲欧美经典视频| 波多野结衣家庭教师视频| 国产情侣一区二区三区| 欧美成人a在线| 国产小视频自拍| 欧美一区不卡| 欧美自拍视频在线| 国产特级aaaaaa大片| 91亚洲国产成人精品一区二区三| 亚洲乱码一区二区三区| 丰满的护士2在线观看高清| 色一区在线观看| 99精品视频国产| 丝袜美腿综合| 久久久精品一区| 天堂网一区二区| 国产成人精品免费一区二区| 欧美一区少妇| 欧美hdxxx| 欧美麻豆精品久久久久久| 老熟妇精品一区二区三区| 欧美疯狂party性派对| 91av视频在线观看| av高清一区二区| 国产女人18水真多18精品一级做 | 国产精品免费一区二区三区四区| 成人性生交大片免费看午夜| 午夜天堂影视香蕉久久| 久久久久久久久久久久久久久国产| 色爱av综合网| 色综合色综合久久综合频道88| 免费精品一区二区| 91在线看国产| 国产制服91一区二区三区制服| 欧洲精品一区二区三区| 亚洲国产一区二区三区四区| 日本精品人妻无码77777| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品一区二区日本| 美女网站视频在线| 欧美巨大另类极品videosbest | 国产伦精品一区二区三区视频 | 99er在线视频| 性欧美video另类hd尤物| 亚洲色图在线观看| 亚洲另类欧美日韩| www..com久久爱| av无码久久久久久不卡网站| 日韩成人视屏| 毛片精品免费在线观看| 国产精品一区二区人人爽| 国产精品乱码妇女bbbb| 天天干天天爽天天射| 国产探花一区在线观看| 欧洲亚洲免费视频| 欧美日韩在线中文字幕| 欧美性猛交99久久久久99按摩| 精品无码国产一区二区三区51安| 黄色欧美成人| 国产午夜精品在线| caoporn-草棚在线视频最| 欧美精品一区二区三区四区| 久久精品这里有| 成人黄色大片在线观看 | 欧美xx视频| 国产一区二区av| 中文字幕免费播放| 国产精品美女久久久久久久网站| 亚欧激情乱码久久久久久久久| 成人一区二区| 成人性生交大片免费观看嘿嘿视频| 国产鲁鲁视频在线观看特色| 欧美一区二区三区白人| 免费视频一二三区| 成人激情小说网站| 黄色片一级视频| 欧美一区二区三| 成人黄色午夜影院| 青青草原av在线| 亚洲第一福利网站| 国产精品视频123| 国产精品欧美经典| 日韩精品在线播放视频| 亚洲一级特黄| 欧美日韩在线一区二区三区| 97精品国产综合久久久动漫日韩| www日韩中文字幕在线看| 精品人妻少妇嫩草av无码专区| 亚洲午夜av在线| 老鸭窝一区二区| 麻豆91在线看| 分分操这里只有精品| 亚洲国产最新| 91丝袜美腿美女视频网站| 久久久123| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 国产黄色激情视频| 亚欧日韩另类中文欧美| 国产日韩视频在线观看| 6699嫩草久久久精品影院| 国产一区二区三区免费视频| 91 中文字幕| 亚洲高清不卡在线观看| 黄色av免费播放| 国产91对白在线观看九色| 不要播放器的av网站| 一区二区在线影院| 欧美日韩大片一区二区三区 | 奇米影视在线99精品| 激情五月六月婷婷| 欧洲福利电影| 国产精品一国产精品最新章节| 日韩一区二区三区免费视频| 欧美国产乱视频| www免费网站在线观看| 日韩欧美的一区二区| 成人黄色片在线观看| 亚洲国产综合91精品麻豆| 精品伦精品一区二区三区视频密桃| 成人黄色大片在线观看| 天天做天天干天天操| 性一交一乱一区二区洋洋av| 99re6这里有精品热视频| 国内精品视频在线观看| 国产欧美日韩在线播放| 国内精品视频| 国产精品一区二区电影| 香蕉久久免费电影| 97久久超碰福利国产精品…| av中文字幕在线播放| 日日骚久久av| а天堂8中文最新版在线官网| 亚洲精品一区二区三区四区高清| 国产精品乱码一区二区| 欧美性欧美巨大黑白大战| 国产微拍精品一区| 亚洲午夜免费视频| 永久久久久久久| 亚洲欧美日本韩国| 久久久久久久久久97| 国产欧美日韩在线看| 国产精品无码一区二区三区免费| 成人午夜激情在线| 无码人妻丰满熟妇区毛片蜜桃精品| 久久国产欧美日韩精品| 黑森林精品导航| 日本在线不卡一区| 少妇高清精品毛片在线视频| 国产精品入口66mio| 日韩一级性生活片| 伊人久久婷婷| 国产一二三在线视频| 在线日韩视频| 夜夜添无码一区二区三区| 亚洲高清av| 国产精品成人久久电影| 亚洲视频狠狠| 日韩小视频网站| 亚洲国产激情| 日日橹狠狠爱欧美超碰| 国产欧美日韩一级| 久久久久人妻精品一区三寸| 久久欧美肥婆一二区| 毛葺葺老太做受视频| 日本不卡的三区四区五区| 91蝌蚪视频在线观看| 日本午夜精品一区二区三区电影| 欧美日韩亚洲自拍| 日韩电影在线观看电影| 少妇网站在线观看| 国产在线播精品第三| 五月天六月丁香| 成人黄色网址在线观看| 黄色国产在线观看| 国产欧美在线观看一区| 国精产品视频一二二区| 亚洲欧美日韩国产另类专区| 强行糟蹋人妻hd中文| 香蕉久久一区二区不卡无毒影院| 在线观看亚洲欧美| 欧美制服丝袜第一页| 97成人在线观看| 亚洲第一区第一页| 美女做暖暖视频免费在线观看全部网址91 | 亚洲国产日韩a在线播放| 日韩欧美a级片| 日本精品免费观看高清观看| 91中文字幕在线视频| 欧美成人女星排行榜| 深夜福利在线观看直播| 中文字幕亚洲综合| 丁香高清在线观看完整电影视频| 5566日本婷婷色中文字幕97| 日本一区二区三区中文字幕| 国产精品美女久久久久av福利| 久久爱www成人| 四虎影院一区二区| 亚洲美女网站| 午夜啪啪小视频| youjizz久久| 99热在线观看精品| 欧美日韩裸体免费视频| 97超碰人人草| 亚洲精品永久免费精品| 国产网站在线免费观看| 欧美性在线观看| 日韩中文字幕一区二区高清99| 蜜桃传媒视频麻豆第一区免费观看 | 久久综合色综合| 欧美午夜精品理论片a级按摩| 亚洲第一视频在线| 中文字幕av一区二区三区谷原希美 | 国产午夜精品福利| 国产在线视频二区| 欧美日韩精品三区| 午夜影院免费体验区| 久久精品91久久香蕉加勒比| 在线免费看h| 波多野结衣久草一区| 热久久天天拍国产| 黄色免费视频大全| 国产超碰在线一区| 久草福利资源在线| 日本韩国欧美一区二区三区| 日本激情一区二区| 欧美精品一二区| 日韩国产大片| 日韩久久在线| 午夜亚洲视频| 漂亮人妻被黑人久久精品| 中文字幕字幕中文在线中不卡视频| 少妇高潮av久久久久久| 亚洲国产精品高清久久久| 丝袜国产在线| 成人国产精品久久久| 成人久久综合| 成年人小视频网站| 久久夜色精品国产欧美乱极品| 久草精品视频在线观看| 日韩欧美美女一区二区三区| 久久黄色美女电影| 国产在线视频欧美| 久久看人人摘| 欧美成人黄色网址| 久久噜噜亚洲综合| 久久久久亚洲av成人毛片韩| 亚洲国产成人精品久久| 国产啊啊啊视频在线观看| 91超碰在线电影| 欧美aa国产视频| 香蕉视频在线观看黄| 亚洲女同一区二区| 国产99999| 欧美精品免费看| 亚洲国产视频二区| 无码人妻精品一区二区蜜桃百度| 国产美女av一区二区三区| av成人免费网站| 欧美一区二区三区电影| 欧美亚洲系列| 国产欧美日韩综合精品二区| 国产欧美一区二区色老头| 国产xxxx视频| 欧美性猛交xxxx富婆弯腰| 青梅竹马是消防员在线| 国产精品www色诱视频| 日韩激情在线| 91蝌蚪视频在线| 洋洋av久久久久久久一区| 亚洲欧美国产高清va在线播放| 国模gogo一区二区大胆私拍| 婷婷精品在线| www.天天射.com| 亚洲欧美日韩在线播放| 性中国xxx极品hd| 7777精品视频| 精品国产一区二区三区| 五月婷婷之婷婷| 亚洲最大色网站| 日色在线视频| 国产噜噜噜噜噜久久久久久久久| 久久久久久久久丰满| 亚洲精品成人无码毛片| 一本色道久久综合亚洲91| www亚洲人| 国产成人免费电影| 美女尤物久久精品| 娇小11一12╳yⅹ╳毛片| 日韩精品中文字幕在线不卡尤物 | 国产精品久久久久久亚洲色| 精品成人乱色一区二区| www.av在线| 成人永久免费| 三级欧美在线一区| 手机在线免费看毛片| 精品播放一区二区| 青青热久免费精品视频在线18| avove在线观看| 97se狠狠狠综合亚洲狠狠| 一二三区中文字幕| 久久久久久网站| 色狮一区二区三区四区视频| 欧美日韩一区二区三区四区五区六区| 91激情五月电影| 污污影院在线观看| 日本一区二区三区四区高清视频| 国产精品综合一区二区三区| 国产精品视频免费播放| 久久久精品久久久| 经典一区二区| 麻豆精品国产传媒av| 欧美日韩国产区一| 中文不卡1区2区3区|