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

Kubernetes 漫游:Kube-Scheduler

云計算 云原生
LimitRange 是資源描述對象,主要用于限制命名空間內資源的使用。它可以設置默認的資源請求和限制,以及資源使用的最大和最小值。它可以確保每個 Pod 或容器在資源使用上遵循特定的策略,從而避免單個 Pod 或容器占用過多資源。

概述

什么是 kube-scheduler ?

Kubernetes 集群的核心組件之一,它負責為新創建的 Pods 分配節點。它根據多種因素進行決策,包括:

1. 資源需求和限制:考慮每個 Pod 請求的資源量(如 CPU 和內存)以及節點上可用的資源。

2. 親和性和反親和性規則:根據 Pod 的親和性設置選擇最適合的節點。

3. 健康檢查:確保選擇的節點健康且能夠運行 Pod。

4. 負載均衡:盡量平衡集群中各個節點的負載。

使用

limits 和 reuqests

在部署對象中的 spec 中常常會見到關于 limits 和 requests 的聲明 ,例如:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          resources:
            limits:
              memory: 1Gi
              cpu: 1
            requests:
              memory: 256Mi
              cpu: 100m

這里的 limits 和 requests 是與 Pod 容器資源管理相關的兩個關鍵概念:

? Limits:指定容器運行時能夠使用的最大資源量

? Requests:指定容器啟動時最低需要的資源量

limits 和 requests 跟 scheduler 有什么關系 ?

在集群中 kube-scheduler 一直是默默無聞的幕后工作者,它主要工作內容如下:

1. 當你創建一個 Deployment,如這個 nginx,是由 kube-scheduler 決策將其調度到哪個 Node 上運行的

2. kube-scheduler 會監聽 apiserver 獲取集群全局視圖,然后根據 Pod 的資源請求(requests 和 limits)分析

3. 最終 kube-scheduler 會結合資源請求和集群的實際情況來調度 Pod

總之,kube-scheduler 會保證 Pod 會調度到滿足其運行資源需求的 Node 節點上。

LimitRange

描述

LimitRange 是資源描述對象,主要用于限制命名空間內資源的使用。它可以設置默認的資源請求和限制,以及資源使用的最大和最小值。它可以確保每個 Pod 或容器在資源使用上遵循特定的策略,從而避免單個 Pod 或容器占用過多資源。使用示例如下:

創建一個 YAML 文件保存 LimitRange 內容,例如:mem-limit-range.yaml:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
    - default:
        memory: 512Mi
      defaultRequest:
        memory: 256Mi
      type: Container

應用到集群:

$ kubectl apply -f mem-limit-range.yaml

查看創建的 LimitRange 對象:

$ kubectl describe limitrange mem-limit-range

輸出:

Name:       mem-limit-range
Namespace:  default
Type        Resource  Min  Max  Default Request  Default Limit  Max Limit/Request Ratio
----        --------  ---  ---  ---------------  -------------  -----------------------
Container   memory    -    -    256Mi            512Mi          -

說明:

? Kind:設置為 LimitRange,用于限制命名空間內資源的使用。

? Metadata:設置資源的名稱

? Spec:

Limits:

default:指定沒有明確資源限制的容器的默認內存限制為 512Mi

defaultRequest:指定沒有明確資源請求的容器的默認內存請求。這里設置為 256Mi

type:應用這些限制的資源類型,在這里是 Container

驗證

定義一個沒有聲明資源請求的部署對象,文件命名為: nginx-without-resource.yaml ,如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx

應用部署到集群:

$ kubectl apply -f nginx-without-resource.yaml

等 Pod 創建后,可以通過檢查它們的配置來確認 LimitRange 是否生效。

$ kubectl describe pod [POD_NAME]

輸出:

Containers:
    #.. ignore
        Limits:
      memory:  512Mi
    Requests:
      memory:     256Mi

initContainers

initContainers 用于在主應用容器啟動之前執行一些預備任務。常見于以下場景:

  1. 1. 準備工作:設置需要的配置文件、數據庫遷移、等待其他服務就緒等。
  2. 2. 安全性:權限提升操作,如改變文件權限或者執行特定的安全檢查。
  3. 3. 服務依賴性:等待其他服務或數據庫可用。

initContainers 在執行完其任務后會停止,且必須成功完成才能啟動主容器。非常適合用于啟動前的初始化任務。

示例:

在部署對象中聲明 initContainers 屬性:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      initContainers:
        - name: init-myservice
          image: busybox:1.28
          command: ['sh', '-c', 'echo The app is running! && sleep 10']
      containers:
        - name: nginx
          image: nginx

將部署對象應用到集群:

$ kubectl apply -f init-container.yaml

當 Pod 啟動后,可以通過查看事件日志驗證容器的加載順序:

Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  2m20s  default-scheduler  Successfully assigned default/nginx-deployment-6445f86ddc-fmmzw to docker-desktop
  Normal  Pulling    2m20s  kubelet            Pulling image "busybox:1.28"
  Normal  Pulled     116s   kubelet            Successfully pulled image "busybox:1.28" in 23.099396719s (23.099404677s including waiting)
  Normal  Created    116s   kubelet            Created container init-myservice
  Normal  Started    116s   kubelet            Started container init-myservice
  Normal  Pulling    106s   kubelet            Pulling image "nginx"
  Normal  Pulled     88s    kubelet            Successfully pulled image "nginx" in 18.382000675s (18.382006008s including waiting)
  Normal  Created    88s    kubelet            Created container nginx
  Normal  Started    88s    kubelet            Started container nginx

可以看到 initContainers 聲明的容器已經加載,然后查看特定的日志,來檢查 Pod 日志輸出:

$ kubectl logs [POD_NAME] -c init-myservice

輸出:

The app is running!

驗證完成。

initContainers 和 kube-scheduler 的關系 ?

如果 initContainers 沒有聲明資源需求,默認也會使用 LimitRange 聲明的默認資源,這也意味著,initContainers 也是由 kube-scheduler 來調度創建的。所以在 initContainers 中加上資源需求也會影響著 kube-scheduler 的調度決策。

nodeSelector

在部署對象中,nodeSelector 屬性的作用是用于把指定 Pod 調度到具有特定標簽的節點上。如果沒有滿足要求的 Node 節點,則 Pod 會持續等待,示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
      nodeSelector:
        disktype: ssd

在這個例子中 nodeSelector 屬性值為:disktype: ssd 。這表明這個 Pod 應該被調度到標簽為 disktype=ssd 的 Node 節點上。kube-scheduler 在調度時,會選擇合適的節點以運行這個 Pod 時。

先將部署對象應用到集群中:

$ kubectl apply -f node-selector.yaml

然后查看 Pod 狀態:

$ kubectl get pod

輸出:

NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-f5bc98d57-pmq9v    0/1     Pending   0          2m17s

可以看到創建的 Pod 一直保持在 "Pending" 狀態。通過事件日志查看具體原因:

$ kubectl describe pod [POD_NAME]

輸出:

Events:
  Type     Reason            Age    From               Message
  ----     ------            ----   ----               -------
  Warning  FailedScheduling  4m38s  default-scheduler  0/1 nodes are available: 1 node(s) didn't match Pod's node affinity/selector. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling..

從事件日志可以看出,這個 Pod 不能被調度,因為沒有節點滿足其設定的節點選擇條件。因為我的集群中確實沒有任何標記為 disktype: ssd 的節點在運行。

Affinity 親和性

NodeSelector 的演進版本,提供了更復雜的選擇規則。除了簡單的匹配,它們還支持更豐富的條件表達式,如 "存在"、"不等于"、"在集合中" 等,并且支持對 Pod 之間(Pod Affinity/Anti-Affinity)以及 Pod 與節點之間(Node Affinity)的親和性/反親和性設置。在 Kubernetes 后續版本中 Affinity 也逐漸替代了 NodeSelector。

podAffinity

podAffinity 用于定義 Pods 之間的親和性。使得某個 Pod 被調度到與其他特定標簽的 Pod 相同的節點上。

使用場景:當希望一組服務緊密地協同工作時,比如一個應用的不同組件需要低延遲通訊。

示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-anti
spec:
  replicas: 2
  selector:
    matchLabels:
      app: anti-nginx
  template:
    metadata:
      labels:
        app: anti-nginx
    spec:
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
                - key: a
                  operator: In
                  values:
                    - b
            topologyKey: kubernetes.io/hostname
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
                - key: app
                  operator: In
                  values:
                    - anti-nginx
            topologyKey: kubernetes.io/hostname
      containers:
        - name: with-pod-affinity
          image: nginx

部署文件展示親和性(Affinity)設置:

  • ? PodAffinity:要求調度的 Pod 必須與具有特定標簽(鍵 a,值 b)的 Pod 在相同的節點上。
  • ? PodAntiAffinity:要求調度的 Pod 不能與具有相同標簽(鍵 app,值 anti-nginx)的 Pod 在相同的節點上。

將上面部署文件應用到集群后,查看 Pods 的分布情況:

NAME                          READY   STATUS    RESTARTS   AGE   IP       NODE     NOMINATED NODE   READINESS GATES
nginx-anti-5656fcbb98-62mds   0/1     Pending   0          5s    <none>   <none>   <none>           <none>
nginx-anti-5656fcbb98-wxphs   0/1     Pending   0          5s    <none>   <none>   <none>           <none>

可以 Pod 因為親和性規則無法調度一直處于等待狀態,查看特定 Pod 的事件日志可以驗證:

Events:
  Type     Reason            Age   From               Message
  ----     ------            ----  ----               -------
  Warning  FailedScheduling  27s   default-scheduler  0/1 nodes are available: 1 node(s) didn't match pod affinity rules. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling..

利用 Pod 親和性和反親和性規則來控制 Pod 的調度位置,以實現特定的調度需求和負載分布。

nodeAffinity

用于定義 Pod 與節點之間的親和性。控制 Pod 被調度到具有特定標簽或屬性的節點上。

適用場景:當您需要根據硬件特性(如 GPU、高性能存儲)或其他自定義標簽(如環境標簽)調度 Pod 時。

示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: disktype
                    operator: In
                    values:
                      - ssd
      containers:
        - name: nginx
          image: nginx

部署文件的親和性(Affinity)設置:

? nodeAffinity 被設置為要求 Pod 被調度到具有 disktype: ssd 標簽的節點上。

將上面部署文件應用到集群后,查看 Pod 的運行情況:

NAME                                READY   STATUS    RESTARTS   AGE   IP       NODE     NOMINATED NODE   READINESS GATES
nginx-deployment-565d7797dc-jf5nk   0/1     Pending   0          14s   <none>   <none>   <none>           <none>

可以 Pod 因為親和性規則無法調度一直處于等待狀態,查看特定 Pod 的事件日志可以驗證:

Events:
  Type     Reason            Age   From               Message
  ----     ------            ----  ----               -------
  Warning  FailedScheduling  89s   default-scheduler  0/1 nodes are available: 1 node(s) didn't match Pod's node affinity/selector. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling..

preferredDuringSchedulingIgnoredDuringExecution

和之前的 requiredDuringScheduling 調度類型不同,preferredDuringScheduling 表明其是一個偏好性的調度,調度器會根據偏好優先選擇滿足對應規則的節點來調度Pod。但如果找不到滿足規則的節點,調度器則會選擇其他節點來調度Pod。

示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
                - key: disktype
                  operator: In
                  values:
                    - ssd
      containers:
        - name: nginx
          image: nginx

配置說明:這里使用的是 preferredDuringSchedulingIgnoredDuringExecution 類型,這意味著調度器會盡量但不強制將 Pod 調度到具有 disktype: ssd 標簽的節點上。

將上面部署文件應用到集群后,查看 Pod 的運行情況:

NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-69c654d896-7qh8t   1/1     Running   0          28s

可以看到雖然我本地沒有滿足親和性規則的 Node 節點,但是 Pod 依然可以調度起來了。

總結:

? podAffinity 關注的是 Pod 之間的關系不同

? nodeAffinity 更關注 Pod 與節點特性之間的關系

requiredDuringScheduling:硬親和,強制型調度規則,必須滿足親和性設置,否則不能調度

preferredDuringScheduling:軟親和,偏好型調度規則,首先找到滿足設置的節點,沒有則會調度到其他節點

Taints 污點

Taints 和 Tolerations 是 Kubernetes 中用于控制 Pod 調度到特定節點的一種機制,相比 Affinity 親和性 **相似性 **的機制,Taints 的規則是屬于 排斥性 的機制,用來“排斥”不滿足特定條件的 Pod。

Taints 有三種效果:

? NoSchedule(不會調度新 Pod)

? PreferNoSchedule(盡量避免調度新 Pod)

? NoExecute(新 Pod 不會調度且已存在 Pod 可能會被遷移)

Taints 常見的應用場景:

? 對于集群中不想共享的 Node,可以加上 Taints 標簽表示獨享

? 用于多租戶 Kubernetes 計算資源隔離

? Kubernetes 本身使用 Taints 機制驅除不可用的 Node

使用示例:

給節點添加 Taint,防止所有 Pod 自動調度到該節點,除非它們具有匹配的 Tolerations:

$ kubectl taint nodes docker-desktop for-special-user=cadmin:NoSchedule

先定義一個沒有任何 Tolerations 的 Pod 來驗證:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx

將它應用到集群,查看 Pod 狀態會一直處于 Pending:

NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-77b4fdf86c-wm5f9   0/1     Pending   0          23s

從事件日志可以看到是 Taints 在發揮作用:

Events:
  Type     Reason            Age   From               Message
  ----     ------            ----  ----               -------
  Warning  FailedScheduling  56s   default-scheduler  0/1 nodes are available: 1 node(s) had untolerated taint {for-special-user: cadmin}. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling..

然后再 Pod 定義中添加 Tolerations,允許它被調度到帶有特定 Taint 的節點上:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
      tolerations:
        - key: "for-special-user"
          operator: "Equal"
          value: "docker-desktop"
          effect: "NoSchedule"

這個部署文件設置了一個 容忍度 (Tolerations) 規則:允許 Pod 被調度到標記為 for-special-user=docker-desktop 并且具有 NoSchedule 效果的節點上。

將它應用到集群,查看 Pod 狀態:

NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-dd7d69c9c-77qlf   1/1     Running   0          31s

Pod 已經正常調度,這也是 Taints 發揮作用。

如果節點不在需要 Tanints 作為排除,可以移除 :

$ kubectl taint nodes docker-desktop for-special-user=cadmin:NoSchedule-

輸出:

node/docker-desktop untainted

PriorityClass

PriorityClass 用于定義 Pod 的調度優先級。常見的場景包括:

1. 確保關鍵服務優先調度:對于關鍵組件,如數據庫、核心應用服務,可以設置更高的優先級。

2. 管理資源爭用:在資源有限的環境中,通過設置不同的優先級,管理不同 Pod 的調度順序。

使用 PriorityClass 的步驟:

1. 創建 PriorityClass:apiVersion: scheduling.k8s.io/v1kind: PriorityClassmetadata:  name: high-priorityvalue: 1000000globalDefault: falsedescription: "This priority class should be used for XYZ service pods only."

說明:

? value:這是一個整數,表示該 PriorityClass 的優先級。較高的數值表示更高的優先級。

? globalDefault:表示為集群中所有沒有指定優先級的 Pod 的默認優先級。

1. 在 Pod 中指定 PriorityClass:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  priorityClassName: high-priority
  containers:
  - name: mycontainer
    image: myimage

通過 priorityClassName 應用剛才創建的 PriorityClass,從而確保該 Pod 具有更高的調度優先級。

自定義 scheduler

默認的調度器是面向通用的使用場景設計的,如果默認的 Kubernetes 調度器無法滿足需求,也可以通過自定義的調度器來滿足更加個性化的需求,示例:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  schedulerName: my-custom-scheduler
  containers:
  - name: mycontainer
    image: myimage

社區也有很多成熟開源的自定義調度器,例如:

? 騰訊 TKE 的調度器

? 華為 volcano 調度器

另外也可以參考 kube-scheduler 源碼實現一個自己的調度器。

責任編輯:武曉燕 來源: 小二十七
相關推薦

2021-12-31 08:43:45

插件KubeScheduler

2023-11-26 13:36:20

協議Raft

2021-08-17 07:15:15

ciliumKubernetes集群

2023-03-06 00:27:02

Kubernetesscheduler系統

2023-10-27 08:03:29

Kubernetes開源工具

2017-08-23 11:10:44

Kubernetes 調度詳解

2022-08-27 22:36:18

Kubernetes調度器

2021-06-17 06:29:16

kube-vip Kubernetes開源項目

2022-03-24 07:44:41

OPA安全策略Rego

2021-09-09 07:45:25

kube-vip Kuberneteshostname

2021-04-02 14:23:12

WiFi網絡技術

2021-03-31 21:20:15

WiFi網絡漫游

2018-07-02 06:33:25

物聯網手機漫游網絡

2011-08-09 09:48:20

JavaScript

2023-10-30 22:23:12

Cacherkube版本

2023-03-03 15:37:32

GMP 模型goroutine

2022-12-06 08:30:06

SchedulerReact

2021-01-29 08:22:03

調度器Yarn架構

2017-12-28 16:57:42

智慧中心

2013-09-25 09:52:16

wifi 2.0無線網絡
點贊
收藏

51CTO技術棧公眾號

亚洲**2019国产| 精品久久久久久久一区二区蜜臀| 欧美三日本三级少妇三99| 波多野结衣日韩| 欧美在线黄色| 亚洲精品视频免费| 91精品999| 亚洲少妇视频| 亚洲人成小说网站色在线| 精品久久久三级| 91麻豆一区二区| 午夜在线播放视频欧美| 日韩在线观看av| 免费a级黄色片| 精品国产一区二| 欧美午夜女人视频在线| 一本—道久久a久久精品蜜桃| 少妇精品视频一区二区| 韩日av一区二区| 国产成人精品视频在线| 精品成人久久久| 中文字幕乱码亚洲无线精品一区| 国产亚洲精品久久久优势| 国产在线观看免费播放| 久久国内精品| 色婷婷狠狠综合| 国产免费黄色一级片| 黄在线免费观看| 国产精品三级av| 欧美精品中文字幕一区二区| 亚洲精品国产一区二| 蜜臂av日日欢夜夜爽一区| 欧美壮男野外gaytube| 九九热这里有精品视频| 我不卡神马影院| 最近更新的2019中文字幕| 扒开jk护士狂揉免费| 日韩av中文字幕一区| 精品久久久久久久一区二区蜜臀| 91精品国产三级| 在线高清欧美| 欧美日韩午夜影院| 国产一二三四在线视频| av有声小说一区二区三区| 婷婷久久综合九色综合伊人色| 欧美日韩午夜爽爽| 直接在线观看的三级网址| 日韩久久一区二区| 五月天综合婷婷| 国产丝袜在线| 一区二区三区视频在线看| 国产精品h视频| 国产在线激情视频| 亚洲欧美日韩在线不卡| 国产一二三四五| a篇片在线观看网站| 亚洲激情在线播放| 国产色一区二区三区| 男人天堂视频在线观看| 欧美日韩亚洲视频一区| 日韩毛片在线免费看| 电影亚洲精品噜噜在线观看| 欧美色图在线观看| 爽爽爽在线观看| 天堂av一区| 精品国产一区二区三区av性色| 亚洲av无码专区在线播放中文| 麻豆精品99| 一个色综合导航| 女人18毛片毛片毛片毛片区二| 国产高清久久| 欧美激情视频播放| 亚洲婷婷综合网| 免费高清在线一区| 92看片淫黄大片欧美看国产片| 国产黄色片网站| 99久久久久久| 亚洲最大免费| 欧洲中文在线| 色呦呦日韩精品| 蜜臀一区二区三区精品免费视频| 日韩精品一区二区三区中文字幕| 欧美精品一区男女天堂| 久久成人激情视频| 欧美三级在线| 性欧美长视频免费观看不卡| 久久久久久久久久一级| 激情五月婷婷综合| 久久精品久久精品国产大片| 日本视频在线观看| 亚洲一本大道在线| 亚洲少妇久久久| 亚洲国产一区二区三区网站| 亚洲精品一区二区在线| 中文字幕另类日韩欧美亚洲嫩草| aⅴ色国产欧美| 成人午夜高潮视频| 日本成人一区| 一级精品视频在线观看宜春院| 国产午夜伦鲁鲁| 久久9999免费视频| 亚洲视频axxx| 日韩av在线天堂| 久久福利资源站| 高h放荡受浪受bl| 亚州av一区| 久久精品欧美视频| 日本高清不卡码| 国产在线精品一区在线观看麻豆| 国产尤物99| 综合久久2019| 精品视频色一区| www.色多多| 欧美精品三级| 国产精品视频在线播放| 天天操天天干天天插| ...xxx性欧美| 亚洲成人福利在线观看| 精品国产乱子伦一区二区| 久久精品视频在线播放| 亚洲精品91天天久久人人| 99国产麻豆精品| wwwjizzjizzcom| 国产美女久久| 国产亚洲精品va在线观看| 狠狠躁夜夜躁人人爽天天高潮| 激情图片小说一区| 亚洲国产激情一区二区三区| 忘忧草在线日韩www影院| 日韩精品一区二区三区在线播放| 五月婷婷六月香| 日韩精品成人一区二区在线| 欧美国产综合视频| 国产夫妻在线播放| 亚洲第一中文字幕在线观看| 国产精品久久久久久久精| 六月婷婷色综合| 亚洲精品久久区二区三区蜜桃臀| 欧美xxx视频| 亚洲欧美日韩国产中文专区| 久久精品视频1| 久久综合久久久久88| 欧美亚洲一二三区| 日韩av三区| 日本国产精品视频| 日韩一二三四| 日本高清不卡视频| 久久久久久国产免费a片| 日韩avvvv在线播放| 日韩欧美三级一区二区| av亚洲一区二区三区| 亚洲深夜福利在线| 中文字幕av久久爽| 国产精品蜜臀在线观看| 五月婷婷六月合| 亚洲一级毛片| 国产欧美日韩伦理| 97成人资源| 中文字幕日韩有码| 99在线无码精品入口| 亚洲综合激情网| 亚洲av网址在线| 久久精品人人| 一区二区三区在线视频看| 国产精品成人3p一区二区三区 | 欧美有码在线视频| 成人影视在线播放| 这里只有精品视频在线观看| 免费视频一二三区| 91视频一区二区| 在线观看av日韩| 91精品综合| 国产一区二区三区高清| 自拍在线观看| www.亚洲成人| 成人毛片视频免费看| 色综合天天天天做夜夜夜夜做| 色撸撸在线视频| 国产v日产∨综合v精品视频| 欧美 日韩 激情| 日韩国产在线| 国产在线一区二| 欧洲精品久久久久毛片完整版| 欧美大码xxxx| 免费福利在线视频| 欧美一级片在线| 337p粉嫩色噜噜噜大肥臀| 亚洲色图20p| 熟女少妇一区二区三区| 国内成人精品2018免费看| 可以在线看的av网站| 成人在线丰满少妇av| 国产厕所精品在线观看| 制服丝袜专区在线| 久久精品国产v日韩v亚洲| 天天干视频在线| 337p亚洲精品色噜噜| 丁香六月婷婷综合| 樱桃视频在线观看一区| 天天摸日日摸狠狠添| 成人av网站在线观看免费| 免费看黄色一级大片| 1024精品一区二区三区| 综合久久国产| 国产成人ay| 狠狠久久综合婷婷不卡| 韩国三级成人在线| 国产精品久久久久久久久久久不卡 | xx视频.9999.com| 视频一区二区在线播放| 日韩女优电影在线观看| 国产又粗又猛又黄| 一本久久综合亚洲鲁鲁五月天| 免费在线一区二区三区| 一区视频在线播放| xxxx日本免费| 99久久国产综合色|国产精品| 久久无码人妻一区二区三区| 理论电影国产精品| 91极品尤物在线播放国产| 免费在线欧美黄色| 精品国产一区三区| 在线精品一区二区| 大西瓜av在线| 国语对白精品一区二区| 欧美日韩亚洲国产成人| 日韩欧美高清| 色大师av一区二区三区| 亚洲美女久久| 久久亚洲综合网| 丝袜连裤袜欧美激情日韩| 国产伦精品一区二区三| 99re91这里只有精品| 不卡视频一区二区| 亚洲精品一区二区三区在线| 91麻豆国产语对白在线观看| 日韩城人网站| 成人高清视频观看www| 成人四虎影院| 国产精品一区二区久久精品| 久久精品97| 91色中文字幕| 秋霞午夜一区二区三区视频| 97久久天天综合色天天综合色hd| 免费欧美网站| 成人蜜桃视频| 三级精品视频| 日韩成人av电影在线| 精品国产一区二区三区小蝌蚪| 欧美一级爽aaaaa大片| 国产影视一区| 亚洲三区四区| 亚洲精品成人无限看| 精品视频在线观看一区二区| 亚洲图片在线| 116极品美女午夜一级| 日日夜夜免费精品| 欧美日韩一区二区三区69堂| 久久精品99国产国产精| 日本女人黄色片| 成年人国产精品| 久久久久久久久久久国产精品| 久久久亚洲综合| 中文字幕乱码av| 一区二区三区国产精品| 97人人澡人人爽人人模亚洲 | 一级全黄裸体免费视频| 日韩一级高清毛片| 日韩电影网址| 日韩色av导航| 美女尤物在线视频| 国产精品第2页| 视频在线观看免费影院欧美meiju| 国产欧美日韩视频一区二区三区| 久久99久久人婷婷精品综合| 一区二区三区我不卡| 一区视频在线看| 孩娇小videos精品| 高清国产一区二区| 国产精品一二三区在线观看| |精品福利一区二区三区| 亚洲一区 视频| 欧美视频精品在线| 老牛影视av牛牛影视av| 国产午夜精品视频| 欧美精品videossex少妇| 国产第一区电影| 1313精品午夜理伦电影| 日韩欧美精品一区二区| 韩国av一区| 日本超碰在线观看| 91小视频免费看| 久久久精品视频免费观看| 日韩欧美在线免费| www香蕉视频| 中文字幕亚洲欧美日韩高清| 欧美v亚洲v| 国产主播在线一区| 国产一区二区三区四区五区| 免费网站在线观看视频| 久久免费黄色| 亚洲午夜久久久久久久久| 最新热久久免费视频| www毛片com| 亚洲国产99精品国自产| 97超碰资源站在线观看| 国产精品久久视频| 蜜桃成人av| 国产免费黄色一级片| 国产一区二区在线影院| 国产午夜精品福利视频| 狠狠久久五月精品中文字幕| 亚洲AV午夜精品| xvideos亚洲人网站| 羞羞影院欧美| 精品一区二区三区视频日产| 欧美色图麻豆| 亚洲成人av免费观看| 亚洲欧洲av一区二区三区久久| 69国产精品视频免费观看| 亚洲福利精品在线| 高清电影在线观看免费| 91网站在线看| 91亚洲国产| 天天视频天天爽| 中文字幕成人av| 亚洲色成人www永久网站| 亚洲精选一区二区| 欧美男人天堂| 精品视频第一区| 国产一区导航| 国产熟女高潮一区二区三区 | 精品无码一区二区三区的天堂| 亚洲精品国产综合久久| 欧美人与性动交α欧美精品图片| 91免费在线视频| 在线成人超碰| 国产精品久久久久野外| 亚洲欧美另类图片小说| 国产情侣av在线| 久久国产精品久久精品| 国产日韩欧美中文在线| 7777在线视频| 国产传媒一区在线| 九九九久久久久| 亚洲成av人乱码色午夜| 538视频在线| 久久久人人爽| 日本大胆欧美人术艺术动态| 亚洲无人区码一码二码三码的含义| 在线欧美日韩精品| 夜级特黄日本大片_在线| 成人午夜激情网| 欧美日韩一区二区高清| 国产视频精品视频| 色综合色狠狠综合色| 国产一二在线观看| 国产日韩在线亚洲字幕中文| 亚洲91中文字幕无线码三区| 小早川怜子一区二区三区| 亚洲尤物视频在线| 亚洲 美腿 欧美 偷拍| 青青精品视频播放| 久久影院一区| 亚洲 自拍 另类 欧美 丝袜| 亚洲成人一区二区| 国产中文字幕91| 中文字幕伦理免费在线视频| 成人免费福利视频| 国产精品豆花视频| 国产精品福利导航| 天海翼精品一区二区三区| 国产天堂视频在线观看| 99re这里只有精品6| 无码人妻av一区二区三区波多野| 在线电影欧美日韩一区二区私密| 在线观看亚洲精品福利片| 成人在线免费观看视频网站| 99久久99久久久精品齐齐| 国产美女www| 久久久久久伊人| 日韩精品丝袜美腿| 制服丝袜综合网| 亚洲黄一区二区三区| 欧美在线一卡| 亚洲伊人一本大道中文字幕| 日韩午夜高潮| 日韩在线观看免| 亚洲精品黄网在线观看| 本网站久久精品| 精品无码一区二区三区在线| 国产精品色在线观看| 欧美一级淫片免费视频魅影视频| 亚洲一区亚洲| 亚洲国产精品一区二区久久hs| 精品国产乱码久久久久久免费| gogo亚洲高清大胆美女人体| 亚洲啊啊啊啊啊| 国产精品视频第一区| 五月婷中文字幕|