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

使用 Kubernetes 檢查點 API 進行容器的備份和恢復

云計算 云原生
在我們開始對任何容器進行檢查點處理之前,我們需要一個 playgroud,在這個 playgroud 上我們可以操作 kubelet 和它的工作負載。為此,我們將需要一個支持容器檢查點處理的 v1.25+ 版本的 Kubernetes集 群和容器運行時環境。

Kubernetes v1.25 引入了容器檢查點 API 作為 alpha 特性。這提供了一種在不停止容器的情況下備份和恢復運行在 Pod 中的容器的方式。此功能主要用于調試分析,但任何 Kubernetes 用戶都可以利用常規備份和恢復功能。

接下來,讓我們來看看這個特性,并了解如何在我們的集群中啟用它,并利用它進行備份和恢復或調試分析。

安裝

在我們開始對任何容器進行檢查點處理之前,我們需要一個 playgroud,在這個 playgroud 上我們可以操作 kubelet 和它的工作負載。為此,我們將需要一個支持容器檢查點處理的 v1.25+ 版本的 Kubernetes集 群和容器運行時環境。

這里我們將使用在 Vagrant 中構建的虛擬機內使用 kubeadm 創建一個集群,我們將相關配置文件放到了 GitHub 倉庫:https://github.com/MartinHeinz/kubeadm-vagrant-playground/tree/container-checkpoint-api 中,只需執行 vagrant up  即可快速啟動該集群。

如果你想搭建自己的集群,請確保集群必須啟用 ContainerCheckpoint 功能標志。對于 kubeadm 使用以下配置:

# kubeadm-config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
  ContainerCheckpoint: true
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: v1.25.0
apiServer:
  extraArgs:
    feature-gates: "Cnotallow=true"
controllerManager:
  extraArgs:
    feature-gates: "Cnotallow=true"
scheduler:
  extraArgs:
    feature-gates: "Cnotallow=true"
networking:
  podSubnet: 10.244.0.0/16

這將向集群組件傳遞 --feature-gates 標志。此外,我們還需要使用支持檢查點的容器運行時。撰寫本文時,僅 CRI-O 支持它,而 Containerd 可能很快也會支持(https://github.com/containerd/containerd/pull/6965),最新版本的 crictl 已經支持通過 crictl checkpoint 創建檢查點。

要使用 CRI-O 配置集群,請按照文檔中的說明安裝它,或者使用上述存儲庫中的腳本(你應該在虛擬機而不是本地運行此腳本)。

另外,我們還需要為 CRI-O 啟用 CRIU,這是在后臺執行實際檢查點的工具。要啟用它,我們需要設置 --enable-criu-support=true 標志。上面的腳本可以為你做到這一點。

另外,如果你打算將其恢復到 Pod 中,還需要將 --drop-infra-ctr 設置為 false,否則您將收到 CreateContainerError 并顯示如下消息:

kubelet  Error: pod level PID namespace requested for the container, ...
... but pod sandbox was not similarly configured, and does not have an infra container

在安裝了 CRI-O 之后,我們還需要告訴 kubeadm 使用它的 sock 文件,下面的配置將會處理這個問題:

apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.56.2
  bindPort: 6443
nodeRegistration:
  criSocket: "unix:///var/run/crio/crio.sock"
---

然后我們就可以使用以下命令快速啟動集群:

kubeadm init --cnotallow=.../kubeadm-config.yaml --upload-certs | tee kubeadm-init.out

這將給我們提供一個單節點集群,如下(注意容器運行時版本):

$ kubectl get nodes -o wide
NAME         STATUS   ROLES           AGE   VERSION  ...  OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
kubemaster   Ready    control-plane   82s   v1.25.4  ...  Ubuntu 20.04.5 LTS   5.4.0-125-generic   cri-o://1.25.0

Checkpointing

集群安裝完成后,我們可以嘗試創建一個檢查點。在 Kubernetes 上通常可以使用 kubectl 或者運行 curl 命令來執行常規操作,訪問集群 APIServer。然而,在這里這樣做是行不通的,因為檢查點 API 只暴露在每個集群節點上的 kubelet 上。因此,我們必須前往節點上并直接與 kubelet 交互:

$ vagrant ssh kubemaster
$ sudo su -

# Check if it's running...
$ systemctl status kubelet

kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Sat 2022-11-12 10:25:29 UTC; 30s ago
     Docs: https://kubernetes.io/docs/home/
 Main PID: 29501 (kubelet)
    Tasks: 14 (limit: 2339)
   Memory: 34.7M
   CGroup: /system.slice/kubelet.service
           └─29501 /usr/bin/kubelet --bootstrap-kubecnotallow=... --kubecnotallow=...

為了創建檢查點,我們還需要一個正在運行的 Pod。讓我們在 default 命名空間中創建一個 Nginx Pod:

$ kubectl taint nodes --all node-role.kubernetes.io/control-plane-
$ kubectl run webserver --image=nginx -n default
$ kubectl get pods -o wide
NAME        READY   STATUS    RESTARTS   AGE   IP          NODE
webserver   1/1     Running   0          27s   10.85.0.4   kubemaster

這里我們從節點中刪除了污點,這樣即使它是控制平面,我們也可以在節點上調度工作負載。

接下來,讓我們向 kubelet 發出一個示例 API 請求,來查看是否正常:

$ curl -skv -X GET  "https://localhost:10250/pods" \
  --key /etc/kubernetes/pki/apiserver-kubelet-client.key \
  --cacert /etc/kubernetes/pki/ca.crt \
  --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt

{
  "kind": "PodList",
  "apiVersion": "v1",
  "metadata": {},
  "items": [
    {
      "metadata": {
        "name": "webserver",
        "namespace": "default",
        ...
        }
    }
    ...
}

kubelet 默認運行在端口 10250 上,因此我們使用 curl 命令并請求其所有的 Pod。我們還需要指定 CA 證書、客戶端證書和密鑰進行身份驗證。

接下來就可以創建一個檢查點了:

$ curl -sk -X POST  "https://localhost:10250/checkpoint/default/webserver/webserver" \
  --key /etc/kubernetes/pki/apiserver-kubelet-client.key \
  --cacert /etc/kubernetes/pki/ca.crt \
  --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt

# Response:
# {"items":["/var/lib/kubelet/checkpoints/checkpoint-webserver_default-webserver-2022-11-12T10:28:13Z.tar"]}

# Check the directory:
$ ls -l /var/lib/kubelet/checkpoints/

total 3840
-rw------- 1 root root 3931136 Nov 12 10:28 checkpoint-webserver_default-webserver-2022-11-12T10:28:13Z.tar

# Verify that original container is still running:
$ crictl ps --name webserver
CONTAINER      IMAGE                               CREATED         STATE    NAME       ATTEMPT  POD ID         POD
880ee7ddff7f3  docker.io/library/nginx@sha256:...  48 seconds ago  Running  webserver  0        d584446dd8d5e  webserver

檢查點 API 位于 .../checkpoint/${NAMESPACE}/${POD}/${CONTAINER},這里我們使用之前創建的 Pod,此請求在 /var/lib/kubelet/checkpoints/checkpoint-<pod>_<namespace>-<container>-<timestamp>.tar 中創建了一個存檔。

運行上述 curl 后,您可能會收到如下錯誤:

checkpointing of default/webserver/webserver failed (CheckpointContainer is only supported in the CRI v1 runtime API)
# or
checkpointing of default/webserver/webserver failed (rpc error: code = Unknown desc = checkpoint/restore support not available)

這意味著您的容器運行時尚不支持檢查點功能,或者未正確啟用。

分析

我們現在有了一個檢查點容器存檔,所以讓我們看看里面有什么:

$ cd /var/lib/kubelet/checkpoints/
# Rename because "tar" doesn't like ":" in names
$ mv "checkpoint-webserver_default-webserver-2022-11-12T10:28:13Z.tar" webserver.tar
# View contents:
$ tar --exclude="*/*" -tf webserver.tar

dump.log
checkpoint/
config.dump
spec.dump
rootfs-diff.tar
io.kubernetes.cri-o.LogPath

# Extract:
$ tar -xf checkpoint-webserver_default-webserver-2022-09-04T10:15:37Z.tar
$ ls checkpoint/
cgroup.img        fdinfo-4.img  ids-31.img        mountpoints-13.img       pages-2.img               tmpfs-dev-139.tar.gz.img
core-1.img        files.img     inventory.img     netns-10.img             pages-3.img               tmpfs-dev-140.tar.gz.img
core-30.img       fs-1.img      ipcns-var-11.img  pagemap-1.img            pages-4.img               tmpfs-dev-141.tar.gz.img
core-31.img       fs-30.img     memfd.img         pagemap-30.img           pstree.img                tmpfs-dev-142.tar.gz.img
descriptors.json  fs-31.img     mm-1.img          pagemap-31.img           seccomp.img               utsns-12.img
fdinfo-2.img      ids-1.img     mm-30.img         pagemap-shmem-94060.img  timens-0.img
fdinfo-3.img      ids-30.img    mm-31.img         pages-1.img              tmpfs-dev-136.tar.gz.img


$ cat config.dump
{
  "id": "880ee7ddff7f3ce11ee891bd89f8a7356c97b23eb44e0f4fbb51cb7b94ead540",
  "name": "k8s_webserver_webserver_default_91ad1757-424e-4195-9f73-349b332cbb7a_0",
  "rootfsImageName": "docker.io/library/nginx:latest",
  "runtime": "runc",
  "createdTime": "2022-11-12T10:27:56.460946241Z"
}

$ tar -tf rootfs-diff.tar
var/cache/nginx/proxy_temp/
var/cache/nginx/scgi_temp/
var/cache/nginx/uwsgi_temp/
var/cache/nginx/client_temp/
var/cache/nginx/fastcgi_temp/
etc/mtab
run/nginx.pid
run/secrets/kubernetes.io/
run/secrets/kubernetes.io/serviceaccount/

如果您不需要一個正在運行的 Pod/容器進行分析,那么提取并閱讀上面顯示的一些文件可能會為您提供必要的信息。

恢復

雖然 Checkpointing API 目前更加注重于調試分析,但它仍然可以用于從存檔中恢復 Pod/容器。最簡單的方法是從檢查點存檔創建一個鏡像:

FROM scratch
# Need to use ADD because it extracts archives
ADD webserver.tar .

這里我們使用一個空(scratch)鏡像,然后向其添加歸檔文件。這里需要使用 ADD 命令,因為它會自動解壓縮歸檔文件。接下來,我們使用 docker 或 buildah 構建它。

$ cd /var/lib/kubelet/checkpoints/
# Or docker build ...
$ buildah bud \
  --annotatinotallow=io.kubernetes.cri-o.annotations.checkpoint.name=webserver \
  -t restore-webserver:latest \
  Dockerfile .

$ buildah push localhost/restore-webserver:latest docker.io/martinheinz/restore-webserver:latest

在上面,我們還添加了一個注解,描述了容器的原始可讀名稱,然后我們將其推送到一些倉庫,以便 Kubernetes 可以拉取它。最后,我們創建一個Pod,指定之前推送的鏡像。

# pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: restore-webserver
  labels:
    app: nginx
spec:
  containers:
  - name: webserver
    image: docker.io/martinheinz/restore-webserver:latest
  nodeName: kubemaster

為了測試是否成功,我們可以通過 Service 將 Pod 暴露出來,并使用 curl 命令訪問其IP地址。

$ kubectl expose pod restore-webserver --port=80 --target-port=80
$ kubectl get svc

NAME                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes          ClusterIP   10.96.0.1      <none>        443/TCP   14m
restore-webserver   ClusterIP   10.104.30.90   <none>        80/TCP    17s

$ curl http://10.104.30.90

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>

可以看到生效了,我們成功地在不停止它的情況下備份了并恢復一個正在運行的 Pod。

總結

Kubernetes 的檢查點功能是增強容器化應用程序容錯性和彈性的強大工具。通過實施良好規劃的檢查點策略,你可以將停機時間降至最低,改善資源利用情況,并簡化應用程序遷移。

優點

  • 增強的容錯性——檢查點功能使應用程序能夠在故障發生時從最后一個已知檢查點恢復,減少停機時間,并確保應用程序保持高可用性。
  • 簡化遷移——檢查點功能使將正在運行的應用程序移動到不同主機變得更加容易。通過保存應用程序的狀態,您可以將其遷移到不同的節點,而不會丟失進度或造成中斷。如果您的應用程序需要很長時間的預熱,您可以利用這個功能。這將大大減少應用程序的啟動時間。
  • 改進的擴展性——通過檢查點功能,您可以輕松地擴展應用程序以滿足波動的需求。如果一個節點過載了,您可以將應用程序遷移到擁有更多資源的另一個節點,確保最佳性能。
  • 高效的資源使用——檢查點功能允許您暫停長時間運行的應用程序,釋放資源給其他任務使用。當再次需要應用程序時,可以從檢查點恢復。

Kubernetes 檢查點的最佳實踐

  • 定期創建檢查點——根據應用程序的要求,定期創建檢查點,以最小化在故障發生時的數據丟失。
  • 監控和管理資源——檢查點功能可能消耗大量系統資源,尤其是內存。監控集群的資源使用情況,并根據需要調整檢查點策略,以避免性能問題。
  • 測試您的檢查點策略——定期測試您的檢查點過程,確保其按預期工作,并能在故障發生時恢復應用程序。
  • 自動化檢查點管理——使用像 cron 作業或 Kubernetes Operator 這樣的自動化工具,在預定的時間表上創建和管理檢查點,確保您的應用程序始終受到保護。

參考文檔

  • https://martinheinz.dev/blog/85。
  • https://faun.pub/kubernetes-checkpointing-a-definitive-guide-33dd1a0310f6。
  • https://github.com/containerd/containerd/pull/6965。
  • https://github.com/MartinHeinz/kubeadm-vagrant-playground/tree/container-checkpoint-api。
責任編輯:姜華 來源: k8s技術圈
相關推薦

2024-11-13 09:29:41

SpringCRaCCRIU

2017-02-23 09:30:27

Windows SerHyper-V虛擬機

2024-08-05 13:30:00

2022-08-05 08:48:33

KubernetesEtcd數據

2017-03-07 16:41:03

LXD 2.0Linux實時遷移

2013-05-16 15:12:47

在線備份快照備份

2022-03-25 08:00:00

Kubernetes備份集群

2021-11-26 11:10:40

Kubernetes容器存儲命令

2015-08-26 15:11:41

Docker容器備份Docker容器遷移

2011-08-24 10:21:39

CHECKPOINT中文man

2024-12-02 08:20:00

2022-03-18 08:48:35

Kubernetes臨時容器運維

2022-01-14 07:56:38

Checkpoint機制Flink

2024-07-12 12:47:39

2015-08-07 10:10:18

LinuxDocker容器

2011-08-15 09:19:22

2022-06-10 18:59:53

容器Kubernetes

2025-09-03 09:05:00

AI模型框架

2025-05-26 09:05:00

2015-10-21 14:07:17

Oracle備份Oracle恢復
點贊
收藏

51CTO技術棧公眾號

青青草华人在线视频| 国产九九在线视频| 亚洲精品国产精| 奶水喷射视频一区| 伊人久久综合97精品| 日韩爱爱小视频| 七七成人影院| 久久精品欧美一区二区三区麻豆| 成人xxxx视频| 91视频免费网址| 91亚洲国产高清| 亚洲韩国日本中文字幕| 一级黄色特级片| yellow在线观看网址| 欧美国产激情一区二区三区蜜月| 2022国产精品| 中文在线免费观看| 亚洲国产专区| 久久久久www| 免费的av网站| 日韩一区二区三区色| 欧美视频中文在线看| 在线日韩av永久免费观看| 日韩专区一区二区| 国产成人免费xxxxxxxx| 98精品国产自产在线观看| 精品视频第一页| 免费欧美视频| 亚洲成人av片| 麻豆传媒在线看| www欧美在线观看| 色婷婷亚洲精品| 久久精品视频16| av中文字幕在线播放| 中文字幕精品一区二区精品绿巨人| 韩国成人动漫在线观看| www.com在线观看| 九九精品视频在线看| 国产精品成人在线| 中文字幕在线欧美| 国产精品一卡| 97国产在线观看| 精品小视频在线观看| 欧美一区二区三区久久精品茉莉花| 自拍偷拍亚洲一区| av黄色在线免费观看| 伊人久久大香线蕉av不卡| 亚洲缚视频在线观看| 韩国av中国字幕| 亚洲精品aⅴ| 欧美va亚洲va香蕉在线| 又大又长粗又爽又黄少妇视频| 精品国产乱码久久久久久樱花| 欧美日韩精品一区二区在线播放 | 东京热无码av男人的天堂| 女人av一区| 亚洲欧美国产精品专区久久| 欧美性xxxx图片| 九九综合在线| 中文字幕亚洲欧美在线 | 一区二区三区四区亚洲| 青青草免费在线视频观看| 在线观看wwwxxxx| 一区二区三区精品久久久| 97碰在线视频| 综合日韩av| 欧美丝袜丝nylons| 久久久久久久久久一区二区| 在线不卡一区| 欧美v亚洲v综合ⅴ国产v| 日本一卡二卡在线| 欧美男男gaytwinkfreevideos| 亚洲午夜精品久久久久久性色 | 男插女视频网站| 日韩在线观看中文字幕| 日韩av一区在线| 亚洲一区二区自偷自拍| 91精品国产91久久久久久黑人| 欧美成人久久久| 国产香蕉在线视频| 久久蜜桃精品| 成人亚洲激情网| 手机在线精品视频| 中文一区二区在线观看| 国产人妻互换一区二区| 欧美另类老肥妇| 欧美三级中文字| 亚洲av无码成人精品区| 小嫩嫩12欧美| 久久精品视频亚洲| 欧美日韩综合在线观看| 看片的网站亚洲| 国产美女精品久久久| 国产女人在线视频| 亚洲精品中文在线观看| 麻豆av免费在线| 国产专区精品| 亚洲免费视频在线观看| 极品颜值美女露脸啪啪| 欧美亚洲在线| 97碰碰视频| а天堂8中文最新版在线官网| 亚洲最色的网站| 午夜视频你懂的| 极品一区美女高清| 久久精品国产亚洲精品| 亚洲婷婷综合网| 国产999精品久久| 亚洲看片网站| 在线视频cao| 精品精品国产高清a毛片牛牛| jizz18女人高潮| 99pao成人国产永久免费视频| 成人黄色生活片| 国产免费视频在线| 亚洲成人在线免费| 超碰91在线播放| 手机在线一区二区三区| 日韩av电影院| 四虎在线视频免费观看| 亚洲免费av高清| 欧美大尺度做爰床戏| 亚洲区小说区图片区qvod| 欧美二区在线播放| 国产超碰人人模人人爽人人添| 国产情人综合久久777777| 男人插女人视频在线观看| 精品一区91| 久久天天躁狠狠躁夜夜躁2014| 久久精品五月天| 久久久亚洲国产美女国产盗摄| 国产一区二区三区小说| 国产精品xnxxcom| 尤物yw午夜国产精品视频| 欧美 日韩 精品| 91蝌蚪porny九色| 欧美精品久久久久久久免费| 狠狠久久伊人| 午夜精品久久久久久久男人的天堂| 国产深喉视频一区二区| 亚洲人成伊人成综合网小说| 午夜激情av在线| av影片在线一区| 国产精品日日做人人爱| 无码精品黑人一区二区三区 | www.久久色.com| 一级aaaa毛片| 亚洲婷婷综合久久一本伊一区| 三上悠亚av一区二区三区| 色婷婷综合网| 亚洲自拍av在线| 日韩激情av| 亚洲电影免费观看高清完整版在线观看 | 天天综合色天天综合| 国产a级片视频| 在线日本成人| 噜噜噜噜噜久久久久久91| 色8久久影院午夜场| 国产一区二区动漫| 91好色先生tv| 一区二区免费视频| 香蕉在线观看视频| 国产精品久久777777毛茸茸| 欧美成人蜜桃| 欧美黑粗硬大| 久久久久久久国产精品| 五月婷中文字幕| 在线中文字幕一区二区| 三级黄色片在线观看| 国产精品一区二区不卡| 久久久久久久久久久99| 奇米狠狠一区二区三区| 国产日韩在线一区| 午夜dj在线观看高清视频完整版| 精品对白一区国产伦| 亚洲s码欧洲m码国产av| 综合久久久久综合| 97精品人妻一区二区三区蜜桃| 国产亚洲毛片在线| 亚洲开发第一视频在线播放| 午夜日韩影院| 日本国产一区二区三区| 日本成人在线播放| 亚洲成人网av| 在线播放精品视频| 五月天欧美精品| 国产小视频你懂的| 99久久久国产精品免费蜜臀| 在线观看av网页| 亚洲国产裸拍裸体视频在线观看乱了中文| 美女主播视频一区| 精品国产不卡一区二区| 日本一本a高清免费不卡| 成人福利网站| 在线观看中文字幕亚洲| 国产综合在线播放| 欧美午夜片在线观看| 黄色小视频在线免费看| 国产精品美女视频| 精品夜夜澡人妻无码av| 国产综合一区二区| 黄色动漫网站入口| 亚洲国产老妈| 日韩精品不卡| 乱亲女h秽乱长久久久| 亚洲a级在线播放观看| 搜成人激情视频| 国语自产在线不卡| 69xxx在线| 在线日韩第一页| 丝袜视频国产在线播放| 日韩精品一区二区三区在线播放| 懂色av中文字幕| 婷婷亚洲久悠悠色悠在线播放| 卡通动漫亚洲综合| 国产精品九色蝌蚪自拍| wwwwww日本| 国产激情一区二区三区| 在线观看免费视频高清游戏推荐| 99精品国产福利在线观看免费| 欧美与动交zoz0z| 91亚洲国产高清| 亚洲不卡1区| 你懂的在线观看一区二区| ts人妖另类在线| 97久久中文字幕| 国产精品嫩草视频| 国产精品亚洲一区二区三区在线观看 | 91精品国产乱码| 91极品身材尤物theporn| 欧洲另类一二三四区| 国产精品777777| 色综合色综合色综合| 国产午夜福利片| 午夜不卡在线视频| 国产精品6666| 亚洲国产综合人成综合网站| 久久成人国产精品入口| 亚洲免费观看在线观看| 国产精品视频一区二区在线观看| 亚洲国产精品高清| 日本在线观看网址| 国产精品久久久久影院老司| 欧美激情 一区| 中文欧美字幕免费| 在线视频这里只有精品| 一区在线观看视频| 青青草原在线免费观看| 亚洲一区在线观看免费| 国产一级二级毛片| 亚洲444eee在线观看| 日韩欧美a级片| 岛国视频午夜一区免费在线观看| 毛片视频网站在线观看| 色av一区二区| 亚洲一级在线播放| 91精品久久久久久久99蜜桃 | 91免费国产精品| 亚洲看片一区| 国产日韩成人内射视频| 狠狠色丁香九九婷婷综合五月| 999久久久精品视频| 福利一区二区在线| 国产国语性生话播放| 久久久久久一级片| 性色国产成人久久久精品| 亚洲免费观看高清完整版在线观看| 国产亚洲精品女人久久久久久| 五月激情综合婷婷| 成人小视频在线播放| 555www色欧美视频| 无码国产精品高潮久久99| 亚洲免费福利视频| 黄网页免费在线观看| 欧美激情精品在线| 欧美电影免费观看| 91久久久精品| 日本国产精品| 亚洲一一在线| 在线成人亚洲| 日日躁夜夜躁aaaabbbb| 国产99久久精品| 国产在线综合视频| 夜夜揉揉日日人人青青一国产精品| 国产精品人人人人| 欧美电影一区二区| 男女视频在线观看免费| 久久天天躁日日躁| gogo亚洲高清大胆美女人体| 91在线观看网站| 精品日本12videosex| 国产成人三级视频| 天堂一区二区在线| 日韩av自拍偷拍| 97久久精品人人做人人爽50路| 最新日韩免费视频| 亚洲第一成年网| 国产又粗又长又大视频| 亚洲精品综合精品自拍| 在线观看wwwxxxx| 国产精品视频区| 色婷婷精品视频| 日韩专区第三页| 七七婷婷婷婷精品国产| 精品少妇人妻av一区二区三区| 欧美国产日本视频| 麻豆成人免费视频| 精品福利在线导航| 在线中文字幕电影| 国产精品欧美久久久| 奇米影视777在线欧美电影观看| 麻豆映画在线观看| 麻豆国产欧美日韩综合精品二区| 成人免费av片| 亚洲成a人v欧美综合天堂| 国产福利视频导航| 日韩在线精品视频| 成人做爰视频www网站小优视频| 国产高清一区视频| 综合天天久久| 亚洲天堂网2018| 中文字幕乱码久久午夜不卡| 在线永久看片免费的视频| 亚洲国产欧美精品| 福利在线导航136| 91沈先生播放一区二区| **女人18毛片一区二区| 国产又大又黄又猛| 日本一区二区成人在线| 国产伦精品一区二区三区视频网站| 精品国产亚洲在线| 丁香花在线观看完整版电影| 亚洲综合精品伊人久久| 欧美成人69av| 三级网站免费看| 亚洲精品第1页| www.亚洲欧美| 欧美精品www| 国产成人精品亚洲线观看| 丰满少妇大力进入| av日韩在线网站| 亚洲 欧美 视频| 日韩黄色高清视频| 亚洲黄色中文字幕| 欧洲国产精品| 免费av网站大全久久| 韩国一级黄色录像| 欧美一激情一区二区三区| 1stkiss在线漫画| 成人av男人的天堂| 1024成人| 中文字幕在线1| 欧美日韩一区二区三区高清| 米奇精品一区二区三区| 亚洲999一在线观看www| 亚洲视频高清| 日本xxxx裸体xxxx| 在线视频亚洲一区| 欧美尤物美女在线| 91精品久久久久久蜜桃| 激情久久婷婷| 受虐m奴xxx在线观看| 欧美日韩美少妇 | 奇门遁甲1982国语版免费观看高清 | gogo亚洲高清大胆美女人体| 亚洲精品久久久久久一区二区| 九色综合狠狠综合久久| 久久久久亚洲av成人片| 日韩精品在线电影| 99亚洲男女激情在线观看| 国产一区二区三区播放| 97se亚洲国产综合在线| 波多野结衣不卡| 久久综合色影院| 日韩深夜福利| www.这里只有精品| 亚洲国产精品一区二区www| 日本福利午夜视频在线| 91精品久久久久久久久久久久久久 | 亚洲视频香蕉人妖| 午夜福利一区二区三区| 国产日产欧美a一级在线| 黄色亚洲在线| 人妻av无码一区二区三区| 欧美一区三区四区| 三上悠亚亚洲一区| 亚洲精品少妇一区二区| 久久婷婷国产综合国色天香| 国产又粗又大又爽视频| 91成人在线视频| 欧美1区2区视频| 日韩精品卡通动漫网站| 欧美一卡在线观看| 欧美精品日日操| 久久99中文字幕| 亚洲欧美在线另类| 人成在线免费视频| 97影院在线午夜| 久久精品国产网站| 中文字幕视频网站|