国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Kubernetes 中跨 StorageClass 遷移存儲完全指南

共 24962字,需瀏覽 50分鐘

 ·

2022-06-24 11:49

大家好,我是米開朗基楊。

KubeSphere 3.3.0 (不出意外的話~)下周就要 GA 了,作為一名 KubeSphere 腦殘粉,我迫不及待地先安裝 RC 版[1]嘗嘗鮮,一頓操作猛如虎開啟所有組件,裝完之后發(fā)現(xiàn)有點尷尬:我用錯了持久化存儲。

我的 K8s 集群中有兩個存儲類(StorageClass),一個是 OpenEBS 提供的本地存儲,另一個是 QingCloud CSI[2] 提供的分布式存儲,而且默認(rèn)的 StorageClass 是 OpenEBS 提供的 local-hostpath,所以 KubeSphere 的有狀態(tài)組件默認(rèn)便使用本地存儲來保存數(shù)據(jù)。

失誤失誤,我本來是想用分布式存儲作為默認(rèn)存儲的,但是我忘記將 csi-qingcloud 設(shè)置為默認(rèn)的 StorageClass 了,反正不管怎樣,就這么稀里糊涂地搞錯了。雖然重裝可以解決 99% 的問題,但作為一名成熟的 YAML 工程師,重裝是不可能的,必須在不重裝的情況下解決這個問題,才能體現(xiàn)出我的氣質(zhì)!

事實上不止我一個人遇到過這種情況,很多人都會稀里糊涂地裝完一整套產(chǎn)品之后發(fā)現(xiàn) StorageClass 用錯了,這時候再想改回去恐怕就沒那么容易了。這不巧了么這不是,本文就是來幫助大家解決這個問題的。

思路

我們先來思考一下?lián)Q StorageClass 需要做哪幾件事情。首先需要將應(yīng)用的副本數(shù)縮減為 0,然后創(chuàng)建一個新的 PVC,將舊 PV 的數(shù)據(jù)復(fù)制到新 PV,然后讓應(yīng)用使用新的 PV,并將副本擴展到原來的數(shù)量,最后再將舊 PV 刪除。在這整個過程中還要防止刪除 PVC 時 Kubernetes 將 PV 也刪除了。

當(dāng)然,有些 CSI 驅(qū)動或者存儲后端可能會有更便利的數(shù)據(jù)遷移技巧,但是本文提供的是一種更加通用的方案,不管后端是什么存儲都可以。

KubeSphere 3.3.0 開啟所有組件之后使用的持久卷聲明(PVC)如下:

本文就以 Elasticsearch 為例,演示如何將 Elasticsearch 的存儲從本地存儲替換為分布式存儲。

備份 PVC 和 PV

首先第一步就是備份 PVC 和 PV,萬一后面操作失敗了,還有反悔的余地。

$ kubectl -n kubesphere-logging-system get pvc
NAME                                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
data-elasticsearch-logging-data-0        Bound    pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9   20Gi       RWO            local-hostpath   28h
data-elasticsearch-logging-data-1        Bound    pvc-0851350a-270e-4d4d-af8d-081132c1775b   20Gi       RWO            local-hostpath   28h
data-elasticsearch-logging-discovery-0   Bound    pvc-8f32fc97-3d6e-471a-8121-655991d945a8   4Gi        RWO            local-hostpath   28h

$ kubectl -n kubesphere-logging-system get pv pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9 -o yaml > pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9.yaml
$ kubectl -n kubesphere-logging-system get pv pvc-0851350a-270e-4d4d-af8d-081132c1775b -o yaml > pvc-0851350a-270e-4d4d-af8d-081132c1775b.yaml

$ kubectl -n kubesphere-logging-system get pvc data-elasticsearch-logging-data-0 -o yaml > data-elasticsearch-logging-data-0.yaml
$ kubectl -n kubesphere-logging-system get pvc data-elasticsearch-logging-data-1 -o yaml > data-elasticsearch-logging-data-1.yaml

復(fù)制數(shù)據(jù)

不管 PV 的 accessModes 是 ReadWriteOnce[3] 還是 ReadWriteMany[4],在復(fù)制數(shù)據(jù)之前都要將應(yīng)用的副本數(shù)量縮減為 0,因為 ReadWriteOne 模式同時只允許掛載一個 Pod,新 Pod 無法掛載,而 ReadWriteMany 模式如果不將副本數(shù)量縮減為 0,在復(fù)制數(shù)據(jù)時可能會有新的數(shù)據(jù)寫入。所以無論如何,都要將副本數(shù)量縮為 0 。

$ kubectl -n kubesphere-logging-system get sts
NAME                              READY   AGE
elasticsearch-logging-data        2/2     28h
elasticsearch-logging-discovery   1/1     28h

$ kubectl -n kubesphere-logging-system scale sts elasticsearch-logging-data --replicas=0

$ kubectl -n kubesphere-logging-system get sts
NAME                              READY   AGE
elasticsearch-logging-data        0/0     28h
elasticsearch-logging-discovery   1/1     28h

創(chuàng)建一個新的 PVC 叫 new-data-elasticsearch-logging-data-0,容量和 data-elasticsearch-logging-data-0 一樣,并將 storageClassName 指定為新的 StorageClass。

創(chuàng)建一個 Deployment,將新 PV 和舊 PV 都掛載進(jìn)去,然后再將舊 PV 的數(shù)據(jù)拷貝到新 PV。

在『工作負(fù)載』界面點擊『創(chuàng)建』,將下面的 YAML 粘貼進(jìn)去即可。

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: kubesphere-logging-system
  labels:
    app: datacopy
  name: datacopy
spec:
  replicas: 1
  selector:
    matchLabels:
      app: datacopy
  template:
    metadata:
      labels:
        app: datacopy
    spec:
      containers:
        - name: datacopy
          image: ubuntu
          command:
            - 'sleep'
          args:
            - infinity
          volumeMounts:
            - name: old-pv
              readOnly: false
              mountPath: /mnt/old
            - name: new-pv
              readOnly: false
              mountPath: /mnt/new
      volumes:
        - name: old-pv
          persistentVolumeClaim:
            claimName: data-elasticsearch-logging-data-0
        - name: new-pv
          persistentVolumeClaim:
            claimName: new-data-elasticsearch-logging-data-0

這個 Deployment 將新 PV 和舊 PV 都掛載進(jìn)去了,稍后我們會將舊 PV 的數(shù)據(jù)拷貝到新 PV。

Pod 啟動成功后,點擊容器的終端圖標(biāo)進(jìn)入容器的終端。

在容器中先驗證舊 PV 的掛載點是否包含應(yīng)用數(shù)據(jù),新 PV 的掛載點是否是空的,之后再執(zhí)行命令 (cd /mnt/old; tar -cf - .) | (cd /mnt/new; tar -xpf -),以確保所有數(shù)據(jù)的所有權(quán)和權(quán)限被繼承。

執(zhí)行完成后,驗證新 PV 的掛載點是否包含舊 PV 的數(shù)據(jù),以及所有權(quán)和權(quán)限是否被正確繼承。

到這里復(fù)制數(shù)據(jù)的任務(wù)就完成了,現(xiàn)在我們需要將 datacopy 的副本數(shù)量縮為 0。

遷移 PVC

遷移存儲的理想狀態(tài)是使用舊的 PVC,并將其指向新的 PV,這樣工作負(fù)載的 YAML 配置清單就不需要做任何改變。但 PVC 和 PV 之間的綁定關(guān)系是不可更改的,要想讓它們解綁,必須先刪除舊的 PVC,再創(chuàng)建同名的 PVC,并將舊的 PV 與它綁定。

需要注意的是,默認(rèn)情況下 PV 的回收策略是 Delete,一旦刪除 PVC,與之綁定的 PV 和 PV 里的數(shù)據(jù)都會被刪除。這是我們不希望看到的,所以我們需要修改回收策略,以便刪除 PVC 時 PV 能夠保留下來。

事實上可以通過 StorageClass 來設(shè)置全局的回收策略(reclaimPolicy)[5],如果不設(shè)置,默認(rèn)就是 Delete??梢酝ㄟ^命令 kubectl describe pv <pv-name> 來查看 PV 的回收策略(reclaimPolicy):

$ kubectl describe pv pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9
Name:              pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9
Labels:            openebs.io/cas-type=local-hostpath
Annotations:       pv.kubernetes.io/provisioned-by: openebs.io/local
Finalizers:        [kubernetes.io/pv-protection]
StorageClass:      local-hostpath
Status:            Bound
Claim:             kubesphere-logging-system/data-elasticsearch-logging-data-0
Reclaim Policy:    Delete
...

$ kubectl describe pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
Name:              pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
Labels:            <none>
Annotations:       pv.kubernetes.io/provisioned-by: disk.csi.qingcloud.com
Finalizers:        [kubernetes.io/pv-protection external-attacher/disk-csi-qingcloud-com]
StorageClass:      csi-qingcloud
Status:            Bound
Claim:             kubesphere-logging-system/new-data-elasticsearch-logging-data-0
Reclaim Policy:    Delete
...

我們可以通過 patch 命令將新舊 PV 的回收策略設(shè)置為 Retain。

$ kubectl patch pv pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9 -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
persistentvolume/pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9 patched

$ kubectl patch pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
persistentvolume/pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9 patched
?

??注意:該命令對 PV 的穩(wěn)定性和可用性沒有任何影響,可以隨時執(zhí)行。

現(xiàn)在可以將新舊 PVC 全部刪除,PV 不會受到任何影響。

$ kubectl -n kubesphere-logging-system delete pvc data-elasticsearch-logging-data-0 new-data-elasticsearch-logging-data-0
persistentvolumeclaim "data-elasticsearch-logging-data-0" deleted
persistentvolumeclaim "new-data-elasticsearch-logging-data-0" deleted

在創(chuàng)建最終的 PVC 之前,我們必須要確保新創(chuàng)建的 PVC 能夠被綁定到新的 PV 上。通過以下命令可以看到新 PV 目前處于釋放狀態(tài),不能被新 PVC 綁定:

$ kubectl describe pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
Name:              pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
Labels:            <none>
Annotations:       pv.kubernetes.io/provisioned-by: disk.csi.qingcloud.com
Finalizers:        [kubernetes.io/pv-protection external-attacher/disk-csi-qingcloud-com]
StorageClass:      csi-qingcloud
Status:            Released
Claim:             kubesphere-logging-system/new-data-elasticsearch-logging-data-0
Reclaim Policy:    Retain
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          20Gi
...

這是因為 PV 在 spec.claimRef 中仍然引用了已經(jīng)被刪除的 PVC:

$ kubectl get pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e -o yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  ...
  name: pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
  ...
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: new-data-elasticsearch-logging-data-0
    namespace: kubesphere-logging-system
    resourceVersion: "657019"
    uid: f4e96f69-b3be-4afe-bb52-1e8e728ca55e
  ...
  persistentVolumeReclaimPolicy: Retain
  storageClassName: csi-qingcloud
  volumeMode: Filesystem

為了解決這個問題,可以直接通過命令 kubectl edit pv <pv-name> 編輯 PV,將 claimRef 的內(nèi)容全部刪除。然后再查看 PV 已經(jīng)處于可用狀態(tài)(Available):

$ kubectl describe pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
Name:              pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
Labels:            <none>
Annotations:       pv.kubernetes.io/provisioned-by: disk.csi.qingcloud.com
Finalizers:        [kubernetes.io/pv-protection external-attacher/disk-csi-qingcloud-com]
StorageClass:      csi-qingcloud
Status:            Available
Claim:
Reclaim Policy:    Retain
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          20Gi

最終我們需要創(chuàng)建與舊 PVC 同名的新 PVC,而且要盡可能保證與舊 PVC 的參數(shù)相同:

  • 新 PVC 的名字和舊 PVC 的名字相同;
  • spec.volumeName 指向新 PV;
  • 新 PVC 的 metadata.annotationsmetadata.labels 和舊 PVC 保存相同,因為這些值可能會影響到應(yīng)用部署(比如 Helm chart 等)。

最終 PVC 內(nèi)容如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    app: elasticsearch
    component: data
    release: elasticsearch-logging
    role: data
  name: data-elasticsearch-logging-data-0
  namespace: kubesphere-logging-system
spec:
  storageClassName: csi-qingcloud
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  volumeMode: Filesystem
  volumeName: pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e

在『存儲卷聲明』頁面點擊『創(chuàng)建』:

選擇『編輯 YAML』,將上面的 YAML 內(nèi)容復(fù)制粘貼進(jìn)去,然后點擊『創(chuàng)建』:

最終可以看到新的 PVC 和 PV 全部都是 Bound 狀態(tài):

$ kubectl -n kubesphere-logging-system get pvc data-elasticsearch-logging-data-0
NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS    AGE
data-elasticsearch-logging-data-0   Bound    pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e   20Gi       RWO            csi-qingcloud   64s

$ kubectl get pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                                         STORAGECLASS    REASON   AGE
pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e   20Gi       RWO            Retain           Bound    kubesphere-logging-system/data-elasticsearch-logging-data-0   csi-qingcloud            11h

再來一遍

到目前為止,我們只遷移了 data-elasticsearch-logging-data-0 的數(shù)據(jù),對于 data-elasticsearch-logging-data-1,按照上面的步驟再重復(fù)一遍就行了,記得將 datacopy 中的 PVC 改為 data-elasticsearch-logging-data-1new-data-elasticsearch-logging-data-0,其他地方的配置內(nèi)容也要修改為新的。

恢復(fù)工作負(fù)載

現(xiàn)在所有的存儲都遷移完成,PVC 名稱保持不變,PV 使用的是新的存儲。

$ kubectl get pv -A|grep elasticsearch-logging-data
pvc-0851350a-270e-4d4d-af8d-081132c1775b   20Gi       RWO            Retain           Released   kubesphere-logging-system/data-elasticsearch-logging-data-1        local-hostpath            40h
pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9   20Gi       RWO            Retain           Released   kubesphere-logging-system/data-elasticsearch-logging-data-0        local-hostpath            40h
pvc-d0acd2e7-ee1d-47cf-8506-69147fe25563   20Gi       RWO            Retain           Bound      kubesphere-logging-system/data-elasticsearch-logging-data-1        csi-qingcloud             9m53s
pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e   20Gi       RWO            Retain           Bound      kubesphere-logging-system/data-elasticsearch-logging-data-0        csi-qingcloud             11h

$ kubectl -n kubesphere-logging-system get pvc|grep elasticsearch-logging-data
data-elasticsearch-logging-data-0        Bound    pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e   20Gi       RWO            csi-qingcloud    27m
data-elasticsearch-logging-data-1        Bound    pvc-d0acd2e7-ee1d-47cf-8506-69147fe25563   20Gi       RWO            csi-qingcloud    3m49s

將工作負(fù)載的副本恢復(fù)到之前的數(shù)量:

$ kubectl -n kubesphere-logging-system scale sts elasticsearch-logging-data --replicas=2
statefulset.apps/elasticsearch-logging-data scaled

$ kubectl -n kubesphere-logging-system get pod -l app=elasticsearch,component=data
NAME                           READY   STATUS    RESTARTS   AGE
elasticsearch-logging-data-0   1/1     Running   0          4m12s
elasticsearch-logging-data-1   1/1     Running   0          3m42s

完美!

最后還有一點收尾工作,我們需要將所有新 PV 的回收策略重新設(shè)置為 Delete

$ kubectl patch pv pvc-d0acd2e7-ee1d-47cf-8506-69147fe25563 -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}'
persistentvolume/pvc-d0acd2e7-ee1d-47cf-8506-69147fe25563 patched

$ kubectl patch pv pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}'
persistentvolume/pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e patched

$ kubectl get pv -A|grep elasticsearch-logging-data
pvc-0851350a-270e-4d4d-af8d-081132c1775b   20Gi       RWO            Retain           Released   kubesphere-logging-system/data-elasticsearch-logging-data-1        local-hostpath            40h
pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9   20Gi       RWO            Retain           Released   kubesphere-logging-system/data-elasticsearch-logging-data-0        local-hostpath            40h
pvc-d0acd2e7-ee1d-47cf-8506-69147fe25563   20Gi       RWO            Delete           Bound      kubesphere-logging-system/data-elasticsearch-logging-data-1        csi-qingcloud             15m
pvc-f4e96f69-b3be-4afe-bb52-1e8e728ca55e   20Gi       RWO            Delete           Bound      kubesphere-logging-system/data-elasticsearch-logging-data-0        csi-qingcloud             11h

最后的最后,就可以將舊 PV 全部刪除了:

$ kubectl delete pv pvc-0851350a-270e-4d4d-af8d-081132c1775b
persistentvolume "pvc-0851350a-270e-4d4d-af8d-081132c1775b" deleted

$ kubectl delete pv pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9
persistentvolume "pvc-9aed3d1b-09a6-4fe3-8adc-9195a2bbb2b9" deleted

更簡單的方案

上面的方案雖然完美解決了問題,但步驟比較繁瑣,有沒有更簡潔的方法呢?

可以試試青云推出的云原生備份容災(zāi) SaaS 服務(wù)[6],無需部署、維護(hù)本地備份基礎(chǔ)架構(gòu),即可輕松完成多云異構(gòu)環(huán)境下數(shù)據(jù)的自由遷移,從而實現(xiàn)多地、按需的數(shù)據(jù)保護(hù)與應(yīng)用的高可用。而且價格比較親民,對白嫖黨友好,提供了 100GB 的免費存儲,遷移幾個 PV 完全夠用了。

使用起來非常簡單,先注冊賬戶[7],然后導(dǎo)入 Kubernetes 集群。如果選擇通過代理連接 Kubernetes 集群,需要執(zhí)行紅色方框內(nèi)命令在 Kubernetes 集群中安裝代理。

然后新建托管倉庫。

接下來直接創(chuàng)建備份計劃,選擇直接復(fù)制。

備份成功之后,將集群中的 PVC 和 PV 刪除,并將工作負(fù)載的副本數(shù)縮減為 0。最后創(chuàng)建恢復(fù)計劃,注意將源存儲類型名稱為 local-hostpath 的目標(biāo)存儲類型名稱設(shè)置為你想遷移的存儲,這樣恢復(fù)后的 PV 使用的就是新的 StorageClass。

完了。

總結(jié)

本文介紹了如何將 Kubernetes 集群中現(xiàn)有 PV 的數(shù)據(jù)遷移到新的 PV,并創(chuàng)建同名的 PVC 來指向新的 PV,這樣就完成了應(yīng)用的數(shù)據(jù)遷移而不需要對應(yīng)用的配置清單做任何更改。最后還介紹了如何通過云原生備份容災(zāi) SaaS 服務(wù)來簡化遷移過程。

引用鏈接

[1]

RC 版: https://github.com/kubesphere/kubesphere/releases/tag/v3.3.0-rc.2

[2]

QingCloud CSI: https://github.com/yunify/qingcloud-csi

[3]

ReadWriteOnce: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes

[4]

ReadWriteMany: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes

[5]

通過 StorageClass 來設(shè)置全局的回收策略(reclaimPolicy): https://kubernetes.io/docs/concepts/storage/storage-classes/#reclaim-policy

[6]

云原生備份容災(zāi) SaaS 服務(wù): https://kubesphere.cloud/self-service/disaster-recovery/

[7]

注冊賬戶: https://kubesphere.cloud/sign-up/




你可能還喜歡

點擊下方圖片即可閱讀

系統(tǒng)的過載(Overload)以及處理思路

2022-06-14

Kubernetes 容器和鏡像 GC 原理解析

2022-06-13

構(gòu)建我的第一個 22TB 容量的家庭存儲服務(wù)器

2022-06-11

如何在 Mac 上愉快地使用 Docker

2022-06-10


云原生是一種信仰 ??

關(guān)注公眾號

后臺回復(fù)?k8s?獲取史上最方便快捷的 Kubernetes 高可用部署工具,只需一條命令,連 ssh 都不需要!



點擊 "閱讀原文" 獲取更好的閱讀體驗!


發(fā)現(xiàn)朋友圈變“安靜”了嗎?

瀏覽 60
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产无码性爱| 欧美色图狠狠操| 少妇探花| 亚洲高清在线观看视频| 国产精品特级毛片| 谁有毛片网址| 欧美激情综合| 天天日AV| 免费的毛片| 这里只有精品91| 天天天天操| 日本不卡一区二区三区| 老女人操屄| 天天艹| 国产日韩欧美在线| 91无码人妻精品1国产四虎 | 日韩中文字幕无码中字字幕| 一区二区三区无码视频| 99热国品| 欧美三级片网址| 六月婷婷七月丁香| 俺去久久| 免费的一级A片| 青青草成人网站| 欧美三级网站| 四虎成人电影| 成人三区| 国产做爰XXXⅩ久久久骚妇| 亚洲v视频| 亚洲天堂高清无码| 人人做人人做人人做,人人做全句下一| 超碰乱伦| 欧美日韩国产免费观看成人片 | r四虎18| 亚洲无码18禁| 做爱的网站| 狼人综合在线| 一本到在线观看午夜剧场| 成人午夜精品无码区| 麻豆成人91精品二区三区| 少妇中文字幕| 亚洲第一视频| 国产视频h| 亚洲中文字幕AV| 欧美不卡一区二区| 久久久精品电影| 伊人大香在线| 亚洲av免费在线观看| 翔田千里无码AV在线观看| 很很撸| 被黑人猛躁10次高潮视频| 强奸乱伦制服丝袜| 自拍偷拍视频网| 透逼视频| 男女无套在线观看免费| 亚洲天天干| 久久播视频| 黄色毛片,男人天堂| 国产毛片777777| 丝袜诱惑AV| 欧美伦妇AAAAAA片| 麻豆视频在线看| 亚洲成人性爱网站| 亚洲人人爱| 精品无码免费| 亚洲AV女人18毛片水真多| 激情视频网| 在线视频久| 操逼的视频| AV小说在线观看| 九九九九AV| 国产人妻精品| 丁香婷婷社区| www.欧美日韩| 刘玥一区二区三区| 日本无码视频在线观看毒| 91人人草| 艹美女视频| 青娱乐精品| 国产91精品久久久天天| 五月天无码av| 日本无码视频在线观看| 丁香五月天天| 国产熟女一区二区视频网站| 日韩激情毛片| 国产精品香蕉国产| 日韩A级片| 亚洲人妻在线播放| 欧美爱爱免费看| 五月丁香999| 欧美日韩免费在线视频| 亚洲综合日韩在线| 91人妻人人澡人人爽人妻| 中文字幕在线观看一区二区三区| 亚洲中文字幕免费| 一区二区三区日本| 国产欧美在线不卡| 26∪u∪成人网站| 在线色| 欧美不卡在线播放| 色九| 成人一区在线观看| 午夜视频99| 午夜无码AV| 黄页av| 午夜精品久久久久久久久无码99热| 国产高清一区二区三区| 先锋成人av| 大香蕉免费中文| 天天爽天天爽| 日韩不卡视频在线| AV大全在线免费观看| 亚洲热热| 国产精品99久久久久久成人| 亚洲无码三级视频| 免费v片在线| 一区二区三区四区免费| 精品无码人妻一区二区媚黑| 大香蕉久久久久久久| 中文字幕AV在线播放| 国产美女全裸网站| 西西WWW888大胆无码| 亚洲国产精品成人va在线观看| av水果派| 欧美人妻日韩精品| 蜜桃精品一区二区| 无码人妻日本| 久久天堂网| 精品久久电影| 国产A片大全| 色色色999| 日韩人妻无码一区二区三区99 | 日韩欧美高清视频| 青春草免费视频| 7x7x7x人成免费观学生视频| 日日干天天日| 日韩AV免费在线观看| 久久这里只有精品99| 老太色HD色老太HD-百度| 91一区在线观看| 日韩性爱视频| 亚洲精品福利视频| 日日拍夜夜拍| 免费观看在线无码视频| 无码在线播放视频| 少妇性视频| 中文字幕综合| 久久黄色网址| 久久综合伊人777777| 欧美久久一区| 无码成人网| 亚洲任你操超碰在线| 亚洲AV无码成人精品区国产| 男人天堂视频在线观看| 日韩专区在线观看| 特一级黄色| 青青草免费福利视频| 色老板免费视频| 久操中文| 黄色AV免费在线观看| 大香蕉免费网| 久久久久久久艹| AV在线播放中文字幕| 国产高清av| 中文字幕永久免费| 狠狠天天| 青草青在线视频| 日韩AV高清无码| 精品一区二区三区四区五区六区七区八区九区 | 在线播放91灌醉迷J高跟美女| 欧美男人天堂网| 亚洲草片| 免费看无码网站成人A片| 日本黄色大片| 91禁樱桃在线| 九九碰九九爱97超碰| 嫩BBB| 国产剧情一区二区三区| 最近最火中文字幕mv歌词| 五月丁香天堂| 福利黄色片:片| 最新va在线观看| 亚洲第一视频| www黄色视频| 99久久婷婷国产综合精品hsex,亚 91小宝寻花一区二区三区三级 | 在线中文字幕av| 国产精品久久精品| 国产一区二区成人久久919色| 强伦轩人妻一区二区三区四区| 自拍亚洲欧美| 五月停亭六月,六月停亭的英语 | 香蕉婷婷| 黄网在线免费观看| 日韩综合久久| 中文字幕高清在线| 91丨PORNY丨丰满人妻网站 | www.18av| 又黄又湿的视频| 久草视频在线免费看| 91高潮久久久久久久| 性爱xxxxx| 夜夜躁狠狠躁| 一级日韩一级欧美| 能看的操逼网站| 国产精品女人精品久久久天天 | 在线观看内射视频| 日本狠狠干| 国产乱伦免费视频| 九九九欧美| 免费看操逼逼| 中文字幕乱码中文乱码91| 欧美成人高清无码| 成人图片小说| 九九小视频| 在线观看国产小视频| 国产成人无码Av片在线公司| 精品人妻一区二区三区阅读全文| 一本无码中文字幕| 欧美操b视频| 人人干天天干| 伊人精品A片一区二区三区| av第一页| 91AV成人| 亚洲精品无码视频在线观看| 国产黄色免费乱伦片| 亚洲AV电影网| 九色精品| 东方成人AV| 青青青在线视频| 九九色综合| 招土一级黄色片| 国产欧美一区二区人妻喷水| 无码伦理电影| 欧美成人A片AAA片在线播放| 广西少妇BBwBBwBBw| 韩国三级无码| 中文字幕乱在线| 九九r在线精品观看视频| 激情六月| 一纹A片免费观看| brazzers疯狂作爱| 高清免费无码| 久久精品禁一区二区三区四区五区 | 黄片www.| 激情视频在线播放| 五月天婷婷成人| 在线观看老湿视频福利| 99精品热视频| 国产精品久久久久久久久久久久久久 | 国产精品福利在线观看| 天天躁狠狠躁夜躁2024| 噜噜噜噜射| 欧一美一婬一伦一区?| 欧美性爱成人| 97无码精品人妻一区二区三区| 不卡视频一区二区| www.国产视频| 国内精品国产成人国产三级| aaa少妇| 五月婷婷色色网| 在线观看三级网址| 久久久久成人视频| 国产ts| 黄片在线免费播放| 91精品网站| 另类一区| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | A片观看视频| 大香蕉在线视频观看| 丁香一区二区| 日韩无码成人片| 免费视频一二三区| 黄色三级片网站| 麻豆91免费视频| 欧美wwwww| 99日韩精品| 午夜99| 人人妻人人澡人人爽人人| 成人电影亚洲天堂| 久草电影网站| 成人在线毛片| 国产黄A片免费网站免费| 制服.丝袜.亚洲.中文豆花| 欧美3P视频| 99久久网站| 玖玖爱免费视频| 欧美视频在线一区| 91老熟女| 日本精品视频在线| 日逼高清无码| 91叉叉叉| 婷婷五月在线视频| 91精品国产闺蜜国产在线闺蜜| 亚洲中出| 不卡不在线中文| 福利国产在线| 成人三级片在线播放| 色婷婷一级A片AAA毛片| 亚洲天堂影院| 艹逼逼视频| 成人网站无码| 色色欧美| 国产成人一级| 夸克看成人片一级A片| av资源免费观看| 奇米影视亚洲春色| 毛片性爱视屏| 熟女AV888| 先锋成人在线| 日逼视频免费看| aV无码av天天aV天天爽第一| AV2014天堂网| 成人午夜免费视频| 中文无码高清在线| 亚洲日韩三级片| 99er热精品视频| 中文字幕高清无码在线播放| 免费观看高清无码| 尤物AV| 日本四级片| 日韩无码AV一区二区三区| 中文字幕永久| 日韩美女毛片| 国产成人自拍偷拍视频| 三级a片| 丁香四月婷婷| 男女av免费| 久操AV| 欧美熟女内射| 91成人看片| 欧美三级片在线| 欧美三级欧美一级| 999一区二区三区| 婷婷五月天在线观看| 中文字幕乱码视频| 四虎影院在线| 韩国AV在线| 国产一级婬乱片免费| 久操人妻| 亚洲av性爱| 国产在线高清| 内射少妇18| 影音先锋aV成人无码电影| 一区二区三区av| 日本的黄色视频| 黄色片久久| 天天撸天天干| 丁香五香天堂| 日韩久久精品视频| www.国产精品| 国产潮吹| 亚洲成a| 大香蕉手机在线视频| 中文字幕高清AⅤ| 影音先锋久久久久AV综合网成人| 精品久久久无码| 久久综合17p| Av一区二区三区| 欧美乱伦视频| 欧美污视频在线观看| 中文字幕第6页| 亚洲成人高清| 一级黄A片| 中文字幕五月久久| 欧美成人一区二区三区片| 日本九九视频| 亚洲中文字幕人妻。| 国产精品久久久久精| 五月丁香欧美性爱| 久草手机视频在线观看| 私人玩物』黑絲OL尤物| 老熟女导航| 色色色成人视频| 大香蕉中文网| 人人爽亚洲AV人人爽AV人人片 | 成人黄色视频网| 日韩无码动漫| 精品爆乳| 99久久婷婷国产综合精品hsex,亚| 亚洲黄色在线播放| 日韩一级网站| 91妻人人澡人人爽人人精品 | 日韩成人在线免费观看| 五月丁香人妻| 婷婷五月综合网| 婷婷五月综合中文字幕| 青青国产视频| 老太婆擦BBBB撩BBBB| 黄片网站在线观看| 日韩乱伦中文字幕| 九九九在线观看视频| 黄色AV免费在线观看| 国产精品夜夜爽3000| 欧美亚洲日本| 夜夜嗨av一区二区三区| 久久视频免费看| 国产亚洲99久久精品熟女| 人妻大香蕉| 丁香激情五月少妇| 日韩A人人| 久久精品国产精品| 男女抽插视频| 欧美一级一级| 51精品日本| 精品人妻一区二区三区在| 露脸老熟女91集合| 91久久久裸身美女| 日韩免费黄色电影| 色老久久| 亚洲成人三区| 一级a看片在线观看| 五月天婷婷操逼视频| 无码人妻精品一区二区三区蜜臀百度 | 豆花成人网站在线看| 日韩第一页| 国内精品久久久久久久久98| AV在线观看黄| 亚洲电影无码| 手机看片1024久久| 亚洲精品在线视频| aaa成人| 午夜精品18视频国产17c| 久久丁香五月| 黄色视频免费| 射久久| 少妇喷水视频| 夜夜爽日日爽| 91精品导航| 亚洲AV无码乱码国产| 精品熟女| 日韩精品一区二区在线观看| 亚洲欧美日韩不卡| 麻豆mdapp01.tⅴ| 东京热一区二区三区四区| 国产乱伦不卡| 午夜福利10000| 午夜爱爱免费视频| 日本在线免费观看| 99久久婷婷国产综合精品hsex | 人妻性爱| 久久99久久99久久99人受| 97伊人大香蕉| 大香蕉电影网| 中文字幕+乱码+中文字幕电视剧 | 大地影院在线资源观看| 蜜臀av在线免费观看| 亚洲综合免费观看高清完整| www.17c嫩嫩草色蜜桃网站| 国产精品小电影| 免费av网站| 日韩特级毛片| 欧美一区二区三区系列电影| 免费看无码网站成人A片| 国产精品成人在线观看| 国产免费AV片在线无码| 日逼无码| 九九九九色| 中文字幕无码综合| 黄色小电影在线观看| 极品一线天小嫩嫩真紧| 精品多人P群无码视频| 激情五月综合网| 露脸老熟女91集合| 91视频免费在线看| 亚洲操B| 亚洲日韩欧美一区二区| 五十路熟妇| 国产美女被操| 亚洲高清无码在线视频| 天天爽夜夜操| 婷婷五月天激情俺来也| 无码一道本一区二区无码| 91久久无码一区人妻A片蜜桃 | 亚洲av影院| 欧美性受XXXX黑人XYX性爽冫| 99国产高清| 欧美在线观看视频| 国产欧美成人| 欧美v亚洲| 老湿机91| 日本三级网| 亚洲免费观看高清完整版在va线观看 | 毛片视频免费观看| 国产欧美日韩在线视频| v天堂在线观看| 日韩欧美国产高清91| 亚洲自拍网站| 无码AV电影在线观看| 国产激倩都市一区二区三区欧美| 中文字幕人妻一区| 激情爱爱网| 91视频熟女| 成人三级电影| 欧美一级大香蕉| 影音先锋av成人电影| 国产成人无码毛片| 亚洲va国产va天堂va久久| 成人无码久久| 肏屄综合网| 性感成人在线| 亚洲在线无码视频| 大香蕉免费在线观看| 国产a片视频| 亚洲天堂视频在线观看| 国产AV不卡| jizz日韩| 亚洲中文字幕免费观看视频| 91水蜜桃| 不卡视频在线观看| 日中文字幕| 国产婬片一级A片AAA毛片AⅤ| 亚洲成人黄色电影| 极品久久久| 91艹逼| 制服.丝袜.亚洲.中文.豆花| 人人操人人爽| 17c精品麻豆一区二区免费| 午夜AV在线免费观看| 国产精品无码不卡| 午夜艹| 欧美一级婬片免费视频黄| 欧美一区二区三区成人片在线 | 日韩72页| 久久成人123| 岛国无码在线观看| 国产99久久九九精品无码免费| 香蕉视频成人在线观看| 91亚洲国产成人| 午夜激情av| 亚洲欧美日韩电影| 俺去俺来也| 免费欧美成人网站| 国产精品色情A级片| 免费一级a片| 夜夜撸网站| 日韩一区二区三区精品| 一级a黄色片| gogogo视频在线观看黑人| 国产福利91精品| 中文字幕av一区二区| 亚洲无码av在线观看| 欧美日韩免费在线视频| 国产Av婬乱麻豆| 国产伦精品一区二区三区妓女 | 东京热av一区二区| 国产成人一级| 国产69精品久久久久久久久久久久| 国产午夜精品电影| 中国国产乱子伦| 一区二区三区四区| 91精品国产一区| 免费视频一区二区| 国产一区在线视频| 强伦轩一区二区三区四区| 色片无码| 成人精品一区日本无码网站suv/| 欧美一级AAA大片免费观看 | a级网站| 成人在线中文| 操美女的网站| 国产麻豆精品ThePorn| 欧美黄色片| 中文在线字幕电视剧免费平台| 狠狠躁18三区二区一区免费人| 亚洲AV成人无码一区二区三区| 亚洲一级一级黄色| 国产成人精品视频免费看| 中文字幕综合网| 午夜看片| 97人妻人人揉人人躁人人| 久久久久久久久久成人永久免费视频 | 99er这里只有精品| 日韩精品一区二区三区四区蜜桃视频 | 日本操逼网站| 蜜桃Av噜噜一区二区三| 河南乱子伦视频国产| 蜜臀AV一区二区| 国产日韩欧美成人| 国产人与禽zoz0性伦| 日韩成人精品| 激情视频网址| 国产午夜在线| 第九色| 成人AV片导航| 日韩免费精品视频| 国产精品一| 国产小毛片| 无码日韩av| 91就要爱爱视频| 久久国产精品波多野结衣AV| 人妻日韩| 国产最新视频| 欧美成人视屏| 人妻福利导航| 国产一区在线看| 久久青青操| 九九re| 色老师综合| 亚洲AV无码乱码AV| 日韩成人片| 69毛片| 亚洲毛片在线观看| 丝袜美腿亚洲综合| 日韩精品久久久久久久酒店| 欧美在线日韩| 特黄AAAAAAAA片免费直播| 91妻人人澡人人爽人人精品| 91官网在线观看| 久久综合加勒比| 欧美自拍视频| 亚洲精品乱码久久久久久按摩观| 影音先锋久久| 香蕉久久久| 五月精品| 亚洲视频中文| 国产乱子伦视频国产印度| 91在线成人| 精品无码一区二区三区免费| av影片在线播放| 亚洲精品国产精品国自产| 91视频在线观看免费大全| 高潮91PORN蝌蚪九色| 影音先锋女人资源| 国产美女18毛片水真多| 欧美日韩A片欧美日| 狼友初视频在线观看| 操逼毛片| 中文字幕视频2023| 影音先锋aV成人无码电影| 亚洲天堂无码视频| 国产靠逼| 欧美成人h| 黄色一级片免费看| 免费看一区二区三区| 亚洲无码成人视频| 看黄色一级片| 999一区二区三区| 99人妻在线| 国产精品啪啪视频| 伊人69| 国产伦子伦一级A片在线| 台湾毛片| 熟妇槡BBBB槡BBBB图| 中字无码制服| 人人操美女| 亚洲一区二区成人| 豆花视频久久| 国产成人av在线观看| 澳门午夜| 国产在线高清| 黄色片a片| 久久精品秘一区二区三免费| 一级a免一级a做片免费| 麻豆精品秘国产| 国产成人黄色电影| 高潮喷水视频| 91人妻无码精品一区二区三区| 亚洲大片在线观看| 欧美一本在线| 国产亚洲色婷婷久久99精品| av影片在线播放| 青娱乐精品在线| 中文字幕在线中文| 美女福利视频| 在线播放内射| 岛国无码av| 再深点好爽灬轻点久久国产| 一区二区无码免费| 国产成人ab| 草B视频| 99这里有精品| 天天综合网久久综合网| 最近中文字幕mv第三季歌词| 国产午夜福利在线| 国产一级片在线播放| 婷婷五月天黄色| 免费毛片网址| 中韩无码| 日韩av免费| 国产av福利| 天天日天天爽| 俺去也| 玖玖爱AV| 污视频在线观看免费| 日本久久精品| 午夜成人国产| AV高清无码在线观看| 天堂网中文字幕| 91久久无码一区人妻A片蜜桃 | 大香蕉偷拍视频| 国产91在线一区| 五月婷婷精品| 2019国产精品| 日韩不卡一区| 婷婷色AV| 日本A级毛片| 一区二区三区四区无码视频| 久久爆乳一区二区三区| 91人人妻| 亚洲第一成人网站| 不卡无码中文字幕一区| 久久久999精品视频| 一级黄A片| 国产丝袜久久| 久久精品女同亚洲女同13| 国产欧美成人在线| 国产视频激情| 日韩乱伦AV| 91亚洲欧美| 免费亲子乱婬一级A片| 特一级黄色片| 五月婷婷色| 天天射夜夜骑| 国产午夜福利免费视频在线观看| 中文字幕在线视频无码| 免费在线观看视频a| 国产A级视频| 777.av| 丰满岳乱妇一区二区三区| 黄色伊人网| 人妻视频网站| 操逼在线观看| 免费精品黄色网页| 国产三级偷拍| 精品无码免费视频| 日韩在线三级片| 围内精品久久久久久久久久‘变脸| 青青青国产| 在线观看视频91| 天天日天天操天天射| 五月婷婷中文字幕| 狼人香蕉在线视频| 97爱爱视频| 先锋影音AV资源站| 欧一美一婬一伦一区二区三区黑人-亚 | 日韩视频一区二区三区| 国产一级a| 激情av在线观看| 91福利院| 三级在线网| 天天夜夜操操| 中文字幕av久久爽Av| 爱搞在线观看| 无码视频免费| 青吴乐大香蕉| 日韩性爱网址| 美女特黄视频| 在线观看中文字幕AV| 色婷婷一级A片AAA毛片| 18禁www| 欧美视频操逼| 大地资源第三页在线观看免费播放最新| 麻豆熟妇乱妇熟色A片在线看| www444www| 欧美日韩一级电影| 91精品国产综合久久蜜臀使用方法| 香蕉视频色| 五月天青青草超碰免费公开在线观看| 91人妻一区二区三区无不码超满| 久草视频在线免费播放| 国产成人av在线观看| 蜜桃视频在线入口www| 在线免费观看黄| 三级视频在线观看| 天天夜夜爽| 人人操人人妻人人爽| 国产A级片| 国产真实乱婬A片三区高清蜜臀 | 青青草综合网| AV毛片| 欧美肏屄网| 日批视频免费观看| 黄色一级视频网站| 西西人体大胆ww4444多少集| 老鸭窝毛片| 亚洲精品性爱| 99re88| 久草视频免费看| 福利导航在线| 日韩一区二区视频| 国外亚洲成AV人片在线观看| 黄色视频大全在线观看| 狠狠狠狠狠操| 日韩a电影| 无码一区二区三| 欧美九九九九| 亚洲手机在线播放| 久久国际精品| 黄片视频网站| 脓肿是什么原因引起的,该怎么治疗 | 精品女同一区二区三区四区外站在线| 三级在线网站| 亚洲特级毛片| 久久久精品国产| 日本视频网| 操B国产| 国产做受91电影| 白嫩外女BBWBBWBBW| 亚洲免费视频在线观看| 中文字幕无码精品三级在线欧美| 可以看的毛片| 亚欧洲精品在线视频免费观看| 亚洲a在线观看| 国产精品久久久久久久免牛肉蒲 | 免费看A片视频| 青青草精品在线视频| 麻豆视频一区二区| 国产av一区二区三区| 中文字幕成人网站中文字幕| 波多野结衣一二三区| 五月天欧美性爱| www.91av| 黄色网址在线观看视频| 丁香激情五月少妇| 亚洲青青草| 日韩综合网| 日韩AV资源网| 成人免费视频国产在线观看| 操屄免费视频| 加勒比DVD手机在线播放观看视频 日韩精品一区二区三区四区蜜桃视频 | 中文字幕高清免费看| 五月婷婷视频在线观看| 亚洲成人AV无码| 青青草在线视频免费观看| 激情aaa| 日韩久久精品视频| 人人爽人人爱| 久久青青| 丁香操逼| 伦理被部长侵犯HD中字| 国产精品一二区| 国产久久免费视频| 久久国产精品99久久人人澡| 日本二区三区| 色婷婷亚洲| 热久久久久久| 亚久久| 欧美色图第一页| AV第一页| 操逼激情网| 午夜看片| 国产粉嫩小泬白浆18p| 色婷婷老师| 99精品免费| 亚洲精品一区二区二区的游戏情况 | 99久久国产视频| 乱子伦毛片国产| 欧美日韩高清在线| 日韩黄色A级片| 国产乱子伦无码视频免费| 色xxxx| 日韩中字无码黄片| 国产一区二区三区免费观看| 人人操人人干人人爽| 亚洲在线观看| av亚洲波多野结衣白嫩水多波| 成人无遮挡| 91综合网| 91精品国产乱码久久| 毛片毛片毛片毛片毛片| 无码三级片在线观看| 有免费的欧美操逼视频吗| 97无码精品人妻一区二区三区| 在线观看免费无码视频| 国产乱婬AV片免费| 国产人妻精品一二三区| 日韩免费A片| 麻豆国产成人AV一区二区三区 | 美女综合网| 中文字幕日韩一| 精品国产女人| 一区二区三区四区无码视频| 夜色321| 日本成人A片| 国产精品扒开腿做爽爽爽A片唱戏 中文字幕一区二区三区精华液 | 婷婷五月天在线观看| 中文字幕免费av| www.91国产| 韩国午夜电影| 无码免费在线观看视频| 国产黄A片免费网站免费| 亚洲中文自拍| 蜜桃成人无码区免费视频网站| 亚洲人妻在线视频| 亚洲AV片一区二区三区| 色婷婷国产精品| 久久在线视频| 一级片网址| 大鸡吧视频在线观看| 免费精品黄色网页| 老太婆擦BBBB撩BBBB| 日本色色| 免费高清无码在线| 免费播放婬乱男女婬视频国产| 影音先锋成人电影| 吃奶做爱视频| 日韩成人高清无码| 亚洲精品一区中文字幕乱码| 69av在线观看视频| 伊人大香蕉在线视频|