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

Karmada 如何跨集群實現(xiàn)完整的自定義資源分發(fā)能力?

共 13288字,需瀏覽 27分鐘

 ·

2022-11-24 22:07

?

本文轉(zhuǎn)自徐信釗的博客,原文:https://xinzhao.me/posts/guide-to-karmada-resource-interpreter-webhook/,版權(quán)歸原作者所有。歡迎投稿,投稿請?zhí)砑游⑿藕糜眩?strong style="color: rgb(50, 108, 229);">cloud-native-yang

Karmada 介紹

在開始講 Resource Interpreter Webhook 之前需要對 Karmada 的基礎(chǔ)架構(gòu)以及如何分發(fā)應(yīng)用等有一定的了解,但那一部分在之前的博客中已經(jīng)提到過了,所以這篇文章就不再贅述了,如果需要的話可以移步到 Kubernetes 多集群項目介紹[1]了解。

一個例子:創(chuàng)建一個 nginx 應(yīng)用

讓我們先從一個最簡單的例子開始,在 Karmada 中創(chuàng)建并分發(fā)一個 nginx 應(yīng)用;首先是準(zhǔn)備 nginx 的資源模板,這個就是原生的 K8s Deployment,不需要任何改變:

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

再準(zhǔn)備一個 PropagationPolicy,用來控制 nginx 分發(fā)到哪些集群:

apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
  name: nginx-propagation
spec:
  resourceSelectors:
    - apiVersion: apps/v1
      kind: Deployment
      name: nginx
  placement:
    clusterAffinity:
      clusterNames:
        - member1
        - member2

這里我們就直接將它分發(fā)到 member1member2 集群。

member1member2 集群分別有一個副本數(shù)為 2 的 nginx Deployment,所以該資源一共存在 4 個 Pod。

上面的例子非常簡單,直接在 member 集群根據(jù)模板原封不動創(chuàng)建 Deployment 就行了,但是大家知道 Karmada 是支持一些更高級的副本數(shù)調(diào)度策略的,比如下面這個例子:

replicaScheduling:
  replicaDivisionPreference: Weighted
  replicaSchedulingType: Divided
  weightPreference:
    staticWeightList:
      - targetCluster:
          clusterNames:
            - member1
        weight: 1
      - targetCluster:
          clusterNames:
            - member2
        weight: 1

應(yīng)用了該規(guī)則之后,會涉及到針對每個集群上資源副本數(shù)的動態(tài)調(diào)整,之后 Karmada 在 member 集群創(chuàng)建 Deployment 的時候就需要增加一個修改副本數(shù)的步驟。

針對 Deployment 這類 K8s 核心資源,因為其結(jié)構(gòu)是確定的,我們可以直接編寫修改其副本數(shù)的代碼,但是如果我有一個功能類似 Deployment 的 CRD 呢?我也需要副本數(shù)調(diào)度,Karmada 能正確地修改它的副本數(shù)嗎?答案是否定的,也正因此,Karmada 引入了一個新的特性來使其能深度支持自定義資源(CRD)。

Resource Interpreter Webhook

為了解決上面提到的問題,Karmada 引入了 Resource Interpreter Webhook,通過干預(yù)從 ResourceTemplateResourceBindingWorkResource 的這幾個階段來實現(xiàn)完整的自定義資源分發(fā)能力:

從一個階段到另一個都會經(jīng)過我們預(yù)定義的一個或多個接口,我們會在這些步驟中實現(xiàn)修改副本數(shù)等操作;用戶需要增加一個單獨(dú)的實現(xiàn)了對應(yīng)接口的 webhook server,Karmada 會在執(zhí)行到相應(yīng)步驟時通過配置去調(diào)用該 server 來完成操作。

下面我們將選四個具有代表性的 hook 點(diǎn)來逐一介紹,接下來都使用以下 CRD 作為示例:

// Workload is a simple Deployment.
type Workload struct {
 metav1.TypeMeta   `json:",inline"`
 metav1.ObjectMeta `json:"metadata,omitempty"`

 // Spec represents the specification of the desired behavior.
 // +required
 Spec WorkloadSpec `json:"spec"`

 // Status represents most recently observed status of the Workload.
 // +optional
 Status WorkloadStatus `json:"status,omitempty"`
}

// WorkloadSpec is the specification of the desired behavior of the Workload.
type WorkloadSpec struct {
 // Number of desired pods. This is a pointer to distinguish between explicit
 // zero and not specified. Defaults to 1.
 // +optional
 Replicas *int32 `json:"replicas,omitempty"`

 // Template describes the pods that will be created.
 Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"`

 // Paused indicates that the deployment is paused.
 // Note: both user and controllers might set this field.
 // +optional
 Paused bool `json:"paused,omitempty"`
}

// WorkloadStatus represents most recently observed status of the Workload.
type WorkloadStatus struct {
 // ReadyReplicas represents the total number of ready pods targeted by this Workload.
 // +optional
 ReadyReplicas int32 `json:"readyReplicas,omitempty"`
}

它和 Deployment 很像,我們用來演示 Karmada 如何支持這類資源來進(jìn)行副本數(shù)調(diào)度等高級特性。

InterpretReplica

該 hook 點(diǎn)發(fā)生在從 ResourceTemplateResourceBinding 這個過程中,針對有 replica 功能的資源對象,比如類似 Deployment 的自定義資源,實現(xiàn)該接口來告訴 Karmada 對應(yīng)資源的副本數(shù)。

apiVersion: workload.example.io/v1alpha1
kind: Workload
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - image: nginx
          name: nginx

針對我們示例的 Workload 資源,實現(xiàn)方式也非常簡單,直接在 webhook server 中返回副本數(shù)的值即可:

func (e *workloadInterpreter) responseWithExploreReplica(workload *workloadv1alpha1.Workload) interpreter.Response {
 res := interpreter.Succeeded("")
 res.Replicas = workload.Spec.Replicas
 return res
}
?

注:所有的示例均來自 Karmada 官方文檔,可以通過文章最后的 參考鏈接[2] 來查看完整的示例和代碼。

ReviseReplica

該 hook 點(diǎn)發(fā)生在從 ResourceBindingWork 這個過程中,針對有 replica 功能的資源對象,需要按照 Karmada 發(fā)送的 request 來修改對象的副本數(shù)。Karmada  會通過調(diào)度策略把每個集群需要的副本數(shù)計算好,你需要做的只是把最后計算好的值賦給你的 CR 對象(因為 Karmada 并不知道該 CRD  的結(jié)構(gòu)):

func (e *workloadInterpreter) responseWithExploreReviseReplica(workload *workloadv1alpha1.Workload, req interpreter.Request) interpreter.Response {
 wantedWorkload := workload.DeepCopy()
 wantedWorkload.Spec.Replicas = req.DesiredReplicas
 marshaledBytes, err := json.Marshal(wantedWorkload)
 if err != nil {
  return interpreter.Errored(http.StatusInternalServerError, err)
 }
 return interpreter.PatchResponseFromRaw(req.Object.Raw, marshaledBytes)
}

核心代碼也只有賦值那一行。

Workload 實現(xiàn)副本數(shù)調(diào)度

回到我們最初的那個問題,在了解了 InterpretReplicaReviseReplica 兩個 hook 點(diǎn)之后,就能夠?qū)崿F(xiàn)自定義資源按副本數(shù)調(diào)度了,實現(xiàn) InterpretReplica hook 點(diǎn)以告知 Karmada 該資源的副本總數(shù),實現(xiàn) ReviseReplica hook 點(diǎn)來修改對象的副本數(shù),再配置一個 PropagationPolicy 就可以了,配置方法和 Deployment 等資源一樣:

apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
  name: nginx-workload-propagation
spec:
  resourceSelectors:
    - apiVersion: workload.example.io/v1alpha1
      kind: Workload
      name: nginx
  placement:
    clusterAffinity:
      clusterNames:
        - member1
        - member2
    replicaScheduling:
      replicaDivisionPreference: Weighted
      replicaSchedulingType: Divided
      weightPreference:
        staticWeightList:
          - targetCluster:
              clusterNames:
                - member1
            weight: 2
          - targetCluster:
              clusterNames:
                - member2
            weight: 1

效果如下:

Retain

該 hook 點(diǎn)發(fā)生在從 WorkResource 這個過程中,針對 spec 內(nèi)容會在 member 集群單獨(dú)更新的情況,可以通過該 hook 告知 Karmada 保留某些字段的內(nèi)容。

apiVersion: workload.example.io/v1alpha1
kind: Workload
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 3
  paused: false

paused 為例,該字段的功能是暫停 workload,member 集群的 controller 會單獨(dú)更新該字段,Retain hook 就是為了能更好地和 member 集群的 controller 協(xié)作,可以通過該 hook 來告知 Karmada 哪些字段是需要不用更新、需要保留的。

func (e *workloadInterpreter) responseWithExploreRetaining(desiredWorkload *workloadv1alpha1.Workload, req interpreter.Request) interpreter.Response {
 if req.ObservedObject == nil {
  err := fmt.Errorf("nil observedObject in exploreReview with operation type: %s", req.Operation)
  return interpreter.Errored(http.StatusBadRequest, err)
 }
 observerWorkload := &workloadv1alpha1.Workload{}
 err := e.decoder.DecodeRaw(*req.ObservedObject, observerWorkload)
 if err != nil {
  return interpreter.Errored(http.StatusBadRequest, err)
 }

 // Suppose we want to retain the `.spec.paused` field of the actual observed workload object in member cluster,
 // and prevent from being overwritten by karmada controller-plane.
 wantedWorkload := desiredWorkload.DeepCopy()
 wantedWorkload.Spec.Paused = observerWorkload.Spec.Paused
 marshaledBytes, err := json.Marshal(wantedWorkload)
 if err != nil {
  return interpreter.Errored(http.StatusInternalServerError, err)
 }
 return interpreter.PatchResponseFromRaw(req.Object.Raw, marshaledBytes)
}

核心代碼只有一行,更新 wantedWorkloadPaused 字段為之前版本的內(nèi)容。

AggregateStatus

該 hook 點(diǎn)發(fā)生在從 ResourceBindingResourceTemplate 這個過程中,針對需要將 status 信息聚合到 Resource Template 的資源類型,可通過實現(xiàn)該接口來更新 Resource Template 的 status 信息。

Karmada 會將各個集群 Resouce 的狀態(tài)信息統(tǒng)一收集到 ResourceBinding 中:

AggregateStatus hook 需要做的事情就是將 ResourceBindingstatus 信息更新到 Resource Template 中:

func (e *workloadInterpreter) responseWithExploreAggregateStatus(workload *workloadv1alpha1.Workload, req interpreter.Request) interpreter.Response {
 wantedWorkload := workload.DeepCopy()
 var readyReplicas int32
 for _, item := range req.AggregatedStatus {
  if item.Status == nil {
   continue
  }
  status := &workloadv1alpha1.WorkloadStatus{}
  if err := json.Unmarshal(item.Status.Raw, status); err != nil {
   return interpreter.Errored(http.StatusInternalServerError, err)
  }
  readyReplicas += status.ReadyReplicas
 }
 wantedWorkload.Status.ReadyReplicas = readyReplicas
 marshaledBytes, err := json.Marshal(wantedWorkload)
 if err != nil {
  return interpreter.Errored(http.StatusInternalServerError, err)
 }
 return interpreter.PatchResponseFromRaw(req.Object.Raw, marshaledBytes)
}

邏輯也非常簡單,根據(jù) ResourceBinding 中的 status 信息來計算(聚合)出該資源總的 status 信息再更新到 Resource Template 中;效果和 Deployment 類似,可以直接查詢到該資源在所有集群匯總后的狀態(tài)信息:

參考鏈接

  • Resource Interpreter Webhook[3]
  • custom resource interpreter example[4]

引用鏈接

[1]

Kubernetes 多集群項目介紹: https://xinzhao.me/posts/kubernetes-multi-cluster-projects/#karmada

[2]

參考鏈接: https://xinzhao.me/posts/guide-to-karmada-resource-interpreter-webhook/#參考鏈接

[3]

Resource Interpreter Webhook: https://github.com/karmada-io/karmada/tree/master/docs/proposals/resource-interpreter-webhook

[4]

custom resource interpreter example: https://github.com/karmada-io/karmada/tree/master/examples#resource-interpreter




你可能還喜歡

點(diǎn)擊下方圖片即可閱讀

Redis on K8s 編排部署講解與實戰(zhàn)操作

2022-11-16

Cilium 未來數(shù)據(jù)平面:支撐 100Gbit/s k8s 集群

2022-11-14

Prometheus 官方記錄片(中英雙語),帶你了解 Prometheus 的前世今生

2022-11-11

GraalVM 加持 Java 容器化,速度起飛!

2022-11-09


云原生是一種信仰 ??


點(diǎn)擊 "閱讀原文" 獲取更好的閱讀體驗!


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

瀏覽 75
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 久久黄色视频网站| 五月影院| 五月天福利视频| 午夜精品影院| 大鸡巴久久久久久| 欧美特黄AAAAAA| 人妻人玩| 午夜激情视频| 黄片免费在线播放| 一本一本久久a久久精品牛牛影视| 一区二区三区四区在线视频| 亚洲日韩乱码在线| 亚洲av免费| 北条麻妃99| 99九九热| 无码一区二区黑人猛烈视频网站 | www.豆花社区成人| 亚洲vs无码蜜桃少妇| 婷婷综合网| 波多野吉衣毛片| 久久只有精品| 在线观看日韩视频| 亚洲熟妇在线观看| 伊人色爱| 久色性爱视频| a国产| 欧美成人激情视频| 国产男女视频| 波多野结衣在线观看一区二区| 国产伦精品一区二区三区色大师| 在线中文字幕在线观看| 波多野结衣黄色| 午夜成人av| 亚洲性爱一级片| 一区二区无码精品| 成人在线网址| 欧美在线操| 91精品国产人妻| 亚洲任你操超碰在线| 看毛片的网站| 亚洲国产中文字幕| 欧美特黄AAAAAAAAA片| 国产69精品久久久久久| 蜜臀久久99精品久久久| 69AV免费视频| 特级西西444www高清大胆免费看 | 丰满人妻一区二区三区视频54| 一区二区三区福利| jizz在线观看免费视频| 三级国产网站| 午夜精品18视频国产17c| 国产黄网| 黄色大片在线免费观看| 嘿嘿午夜| 亚洲超碰在线| 国产一级A片久久久免费看快餐 | 一级免费黄色视频| 深爱激情五月婷婷| 青娱乐在线精品| 中文字幕乱码视频32| 性猛交AAAA片免费看蜜桃视频| 成人高清无码视频| 日本中文在线观看| 午夜福利视频网站| 国产人国产视频成人免费观看… | 国产精品久久久久久久久久九秃 | 懂色av懂色av粉嫩av无码| 国产99久久久| www.日韩无码| 先锋久久| 日韩成人无码全裸视频| 91第一页| 91九色TS另类国产人妖| 欧美黄色免费在线观看| 日韩日批| 国产成人一区二区无码| 天堂AV无码AV| 久久久久久亚洲AV黄床| 无码人妻日本| 免费黄网站| 操逼动漫| 国产无码激情视频| 无码视频一区| 色色9999| 国产女人18毛片水真多18精品| 中文日韩字幕| 久99视频| 99成人视频| 国产AV日韩AV| 国产v视频| 午夜福利视频91| 国产aa片| 一级片a片| 日韩福利网| 好吊顶亚洲AV大香蕉色色| 中文字幕VA| 粉嫩av一区二区白浆| 天天色粽合合合合合合合| 久久午夜无码人妻精品蜜桃冫| 午夜无码福利在线观看| 久久久久无码国产精品一区| 久久99视频免费观看| 人人操97| 自慰喷水在线观看| 五月婷婷五月丁香| 久久五月亭亭| 成人小说亚洲一区二区三区| 久久视频免费在线观看| 又黄又色的视频| 丰满熟妇人妻无码视频| 四季AV之日韩人妻无码| 国产青草视频| 日韩中文字幕精品| 在线国产91| 日韩三级av| a级网站| 再深点好爽灬轻点久久国产| 亚洲美女操| sese在线| 亚洲精品无码视频在线观看| 色欲av伊人久久大香线蕉影院| 五月婷久久| 日本成人精品| 国产理论片| 久久久国产91桃色一区二区三区 | 免费一级黄色片| 狠狠干狠狠操| 开心色色五月天| 青青青青操| 人人爱人人看| 688AV秘无码一区二区| 综综综综合网| 久久精品视频国产| 九九人妻| 免费无码婬片AAAA片老婦| 又黄又爽的网站| 91精品丝袜久久久久久久久粉嫩| 亚洲中文字幕影院| 亚洲AV男人天堂| 肏屄在线视频| 五月丁香五月婷婷| 蜜桃91精品秘入口| 91性爱嫩逼视频| 婷婷天天干| 无码做爰欢H肉动漫网站在线看| 亚洲狼人久久久精品| 97亚洲国产| 免费播放黄色成人片| 久久大香蕉精品| 91蜜桃传媒在线观看| 四虎成人无码| 婷婷国产AV| 图片区小说区区亚洲五月| 国产精品99久久久久的广告情况 | 偷窥丶亚洲丶熟女| 91一区在线观看| 青春草在线视频免费观看| 一区二区三区四区av| 狠狠地日| 91丨露脸丨熟女抽搐| 亚洲无码成人片| 久久久久久久免费视频| 8050网午夜| 高清免费无码| 欧美区在线观看| 一区二区国产视频| 岛国电影av| 欧美日韩在线看| 特级婬片A片AAA毛片AA做头| 亚洲无码影片| 91乱子伦国产乱子伦!| 四川妇BBB桑BBB桑BBB| 久久精品视频观看| 在线中文字幕第一页| 中文观看| 天天干无码| 亚洲欧洲成人在线| 黄色电影A片| 91麻豆精品| 日韩免费在线观看一区入口| 激情麻豆| 丁香六月久久| 国产一级二级视频| 亚洲va国产天堂va久久en| 黄网站免费看| 五月丁香欧美性爱| 欧美午夜精品久久久久免费视| 中文字幕一级A片高清免| 69人妻人人澡人人爽久久| 日本狠狠操| 成人特级毛片全部免费播放| 三须三级久久三级久久18| 人人综合网| 欧美婬乱片A片AAA毛片地址| 三级黄色毛片| 99色| 中文字幕操逼网站| 亚洲无码一区二区三区蜜桃| 日韩日批视频| 日韩欧美一级视频| 内射无码专区久久亚洲| 欧美卡一卡二| 西西www444无码大胆| 操碰在线观看| 日本成人电影在线观看| 亚洲无码一本道| xxx综合网| 国产精品色情A级片| 黄色网址在线观看视频| 特黄在线| 亚洲自拍无码| 黄片一区二区| 中文字字幕中文字幕乱码| 亚洲激情欧美激情| 你懂的视频在线播放| 亚洲二级片| 欧美草逼| 日韩精品久| 中文资源在线a| 91福利视频在线观看| 亚洲加勒比在线| 国产人人操| 安徽妇搡BBBB搡BBBB,另类老妇 | 亚洲丁香五月天| 亚洲第一无码| 亚洲精品无码久久久| 日韩免费在线| 蜜桃视频免费网站| 国产熟妇码视频app| 九九热国产视频| 男女激情网站| 欧美成人性色欲影院| 99久久丫e6| 黄色电影网站在线观看| 99视频内射三四| 99久久爱re热6在播放| 在线色综合| 天天日夜夜草| 黄色综合| 亚洲福利一区二区| 亚洲黄色视频免费观看| 特级西西444WWW视频| 精品国产乱子伦一区二区三区最新章 | 91国产在线播放| 中国熟妇XXXX18| 北条麻妃无码精品AV怎么看| 激情小说在线观看| 日韩人妻中文| 欧美精产国品一二三| 亚洲精品乱码久久久久久蜜桃欧美| 91色在线视频| 台湾成人在线| 日韩人妻丰满无码区A片| 天天夜夜狠狠| 91丨PORNY丨对白| 久久久久无码精品亚洲日韩| 中文字幕高清无码免费视频| 亚洲黄色在线观看视频| 丰满熟妇| 欧美一级二级三级| 亚洲乱乱| 91免费成人电影| 男女激情网站| 日欧视频| 欧美嗯啊| 亚洲成人一区二区三区| 日韩A级视频| 久久色播| 国产人妖视频| 2019中文字幕mv第三季歌词 | 91丨豆花丨成人熟女| 亚洲人免费视频| 日本熟妇一区二区三区| 成人一区二区三区| www激情| 欧美日韩东京热| 国产又爽又黄免费网站免费观看| 中文字幕在线无码观看| 午夜AV在线观看| 亚洲综合自拍| 91在线无码精品入口电车| 先锋影音一区二区| 欧美大香蕉视频| 国产字幕在线观看| 东北老女人操逼视频| 人人色人人摸| 成人久久久久久| 亚洲专区在线播放| 成年人在线观看| 午夜传媒一区二区三区| 男女做爱视频网站| 中文字幕免费久久| 中文字幕日韩一级| 日韩无码一二三| 国产AAA片| 天天日狠狠操| 日韩精品无码一区二区| 国产黄色一级电影| 成人免费毛片蓝莓| 国产性爱自拍一下| 国产亲子乱婬一级A片借种| 成人做爰黄AAA片免费直播岛国| 国产欧美日韩综合| 色吧久久| 牛牛Av| 午夜免费无码视频| 大香蕉超碰在线| 国产黄色视频在线观看| 男人的天堂网页| 91夫妻视频| 久久嫩草精品| 精品无码久久久| 在线看片a| 国产自慰一区| 日韩高清无码电影| 亚洲精品天堂无码| 久久午夜一级A片| 91人人操| 久久久69| 亚洲无码在线电影| 性性性性性XXXXX| 中文字幕天天干| 欧洲成人在线播放| 一本色道久久| 中文字幕在线免费观看视频| 免费观看黄片视频| 三级片小说| 亚洲欧美激情视频| 狼人香蕉网| 波多野结衣久久| 中文字幕在线观看有码| 久草这里只有精品| 人人人射| 97国产超碰| 久久福利网| 亚洲成人第一页| 午夜操p| 亚洲AV无码专区在线播放中文| 青草久久久| 日日夜夜综合| 九色影院| 亚洲综合免费观看高清完整版在线观 | 欧美国产性爱| 欧美视频一区二区三区四区| 北条麻妃青青久久| 亚洲日本欧美| 激情综合网五月婷婷| 色逼| 大香蕉美女视频| 有码一区二区三区| 乱伦综合| 天天看天天摸| 丁香五月激情中文字幕| 亚洲无码入口| 北条麻妃黄色视频| 五月天婷婷在线无码| 亚州免费视频| 韩国无码视频| 中文字幕在线视频第一页| 91久久国产综合久久| 中文字幕精品1| 久草这里只有精品| 黄片网站在线免费观看| 欧美五月婷婷| 黄色免费视频| 亚洲综合日韩在线| 天天日天天干天天草| 俺来也俺也啪www色| 黄色视频免费观看国产| 草视频| 秋霞午夜久久| 插综合网| 久久久高清无码视频| 免费操逼视频网站| 强伦人妻一区二区三区视频| 大香蕉三级片| 江苏妇搡BBBB搡BBBB-百度| 免费在线黄色电影| 江苏妇搡BBBB搡BBBB-百度 | 欧美日韩三区| 国产一区二区不卡视频| 91愛爱| 亚洲高清无码免费| 99热在线播放| 国产小视频在线播放| 成人性生交大片免费看小芳| 苍井空二区| 精品亚洲一区二区三区四区五区| 天天干天天射天天| 毛片黄色视频| 一纹A片免费观看| 3d啪啪动漫| 超碰日本| 免费看黄色的网站| 国产精品秘麻豆免费版现看视频| 在线观看一区二区视频| 午夜福利大香蕉| 亚洲Aⅴ| 操老女人逼| 丁香五月天社区| 免费草逼视频| 国产精品被狂躁到高潮| 久久国产免费| 无码久| 亚洲性爱网站| 天堂AV在线免费观看| 好吊视频一区二区| 欧美黄片在线免费看| 亚洲久草| www.俺去啦| 91在线精品无码秘入口苹果 | 黄色在线免费观看网站| 日韩精品一区二区三免费视频| 色六月婷婷| 欧美日韩国产三级| 亚洲色色视频| 亚洲欧洲成人| 国产无码a| 香蕉成人电影| 免费黄色福利视频| 国产黄色电影| 国产jk在线| 伊人综合干| 日本精品一区二区三区四区的功能| a免费在线| 18禁黄网站| 五月天丁香网| 日本久久精品| 91久久国产综合| 99er在线观看| 欧美色成人免费在线视频| 国产精品久久无码| 亚洲人一级电影| 骚逼av| 五月丁香婷婷啪啪| 亚洲精品视频在线观看网站| 亚洲精品色图| 无码高清视频在线观看| 玖玖成人| 18禁av在线| 久久午夜鲁丝| 99久久精品国产一区色| 免看一级a毛片一片成人不卡| 国产Av婬乱麻豆| 99在线精品视频免费观看20| AV天堂偷拍亂伦| 久久机热| 免费观看黄色小视频| 欧美日韩大屌| 成人无码www在线看免费| 日韩成人无码免费视频| 日本久久精品| 色啪视频| 欧美A在线观看| 无码成人毛片| 亚洲天堂无码视频| 少妇搡BBBB搡BBB搡造水多/| 第四色网站| 青草精品视频| AV黄色在线| 中国女人如毛片| 九九国产精品| 欧美日韩小电影| 欧美色啪| 亚洲福利视频在线| 午夜69成人做爱视频网站| 性满足BBwBBWBBw| 99在线视频免费观看| 手机av在线观看| 午夜亚洲AV永久无码精品麻豆| 午夜香蕉| 柠檬AV导航| 亚洲视频在线观看中文字幕| 色婷婷色| 日韩不卡在线观看| 黄色av网| 国产精品美女| 一区二区三区无码免费| 91久久久久久久久久久久18| 视频一视频二在线视频| 高清无码操逼| 极品少妇久久久| 午夜福利影院在线| 大黑鸡巴视频| 欧美日韩亚洲中文字幕| 国产一级做a爱免费视频| 69视频在线观看| 精品国产欧美一区二区三区成人| 亚洲天堂视频网站| 欧美一级黄色性爱视频| 国产在线导航| 嫩草久久99www亚洲红桃| 尤物视频网站在线观看| 日韩一级一级| 亚洲日本国产| 婷婷丁香色| 国产色婷婷一区二区| 国产www在线观看| 国产视频黄| 亚洲欧洲精品成人久久曰影片| 久久性视频| 奇米色五月| 久久成人影音| 在线天堂v| 在线观看黄色视频网站| 欧美在线网址| 99在线精品视频观看| 亚欧成人在线视频| 五月婷婷在线视频| 超碰人人在线观看| 精品在线播放视频| 在线成人亚洲| 成人欧美一区二区三区黑人免费 | 内射老太太| 日本性欧美| 天堂一区| 欧美性69| 亚洲v区| 你懂得视频在线观看| 亚洲欧洲有码在线| 亚洲AV无码成人精品区国产| 亚洲视频网站在线观看| 国产高清无码免费在线观看 | 日本一级婬片A片免费播放一| np高辣调教视频| 69人妻人人澡人人爽人人精品| 亚洲无码在线播放视频| 91精品国产91久久久久久吃药 | 国产一区二区三区四区五区六区七区| 久久精品亚洲| 午夜精品18视频国产17c| 无码黄页| 在线高清无码视频| 大香蕉伊人成人| 波多野结衣视频网站| 国产一级A片久久久免费看快餐| 日韩精品无码电影| 小小拗女BBw搡BBBB搡| 色欲国产精品欧美在线密| 亚洲黄色免费网站| 午夜福利三级| a级片在线观看| 激情五月丁香花| 曰本中文字幕在线视频| 东北嫖老熟女一区二区视频网站| 午夜福利aaa| av牛牛| 亚洲日韩成人AV| 亚洲国产精品成人综合色五月 | 午夜激情视频网站| 成人午夜在线视频| 99热激情在线| 9191久久| 国产主播在线观看| 东方av在线观看| 国产a毛片| 国产三级麻豆| 在线观看av资源| 天天爽天天爽夜夜爽| 欧美成人视频18| 波多野成人无码精品69| 91老熟女视频| 久草免费在线观看视频| 黄色视频网站在线播放| 欧美男人天堂网| 国内无码| 成人做爰A片AAA毛真人| 日韩操逼网站| 国产成人黄色| 免费日韩一级| 久久久久成人视频| 国产精品久久久久久久久A| 美女毛片视频| 操逼网站免费看| 五月中文字幕| 91无码人妻精品一区二区蜜桃 | 99在线国产| 香蕉操逼| 中文字幕永久在线视频| 天天撸天天色| 怡春院综合成人社区| 91精品一区| 亚洲秘无码一区二区三区,| 九九九免费| 国产日韩一区二区三区| 91久久久久久久久久久久18| 亚洲日韩精品欧美一区二区yw| 人人干人人操人人爱| 99热这里有精品| 国产三级片网址| 在线无码av| 欧美AA片| 日韩人妻丝袜中文字幕| 综合精品7799| 国产女人十八水真多| 安徽妇搡BBBB搡BBB| 亚洲精品一区无码A片丁香花| 嫩BBB嫩BBB嫩BBB| 日本A片视频| xxx日韩| 黄色国产AV| 在线无码免费视频| 翔田千里中文字幕无码| 久久五月天综合| 人妻无码在线观看| 最新日韩在线| 一级调教看片| 亚洲一级黄色电影| 国产精品无码怀孕软件| 三级片无码在线播放| 毛片毛片毛片毛片毛片毛片| 欧美一级黄色大片| 亚洲无码精品一区二区三区| 日本中文无码视频| 高清无码在线免费视频| 久草香蕉| 97视频福利| 佐山爱人妻无码蜜桃| 美国一级A片草草视频| 成人视频网站在线观看| 精品三级| 97久久精品国产熟妇高清网 | 欧美日韩视频| 91成人视频在线观看| 亚洲精品自拍| 国产91无码精品秘入口新欢| 黄网在线免费观看| 国产成人AV在线播放| 日本五十路熟女视频| AV久草| 北条麻妃性爱视频| 国产黄色视频免费在线观看| 青青青亚州视频在线| www,久久久| 成人天堂一区二区三区| 亚洲三级视频在线播出| 日韩AⅤ视频| 国产女人18| 做爱视频91| 精品乱子伦一区二区三区毛| 欧美欧美欧美| 国产成人综合自拍| 国产麻豆AⅤMDMD0071| 日韩一级黄片| 操逼视频免费观看| 中文字幕无码不卡| 日逼黄片| 丁香五月在线观看| 四川BBBB擦BBBB| 中文字幕h| 大色欧美| 欧美操B| 欧美日韩卡一卡二在线播放视频| 亚洲51| 麻豆免费成人传媒| 69视频网站| 牛牛Av| 九色91| 婷婷国产亚洲精品网站| 99热网站| 精品无码一区二区三| 亚洲秘无码一区二区三区av| 国产成人AV在线| 少妇搡BBBB搡BBB搡澳门| 亚洲无码视频免费看| 99色视频| 欧美精产国品一二三产品在哪买 | 黑人巨大翔田千里AⅤ| 成人电影综合网| 91色区| 五月婷婷色播| 91丨九色丨蝌蚪丨丝袜| 不卡在线| 中文字幕亚洲欧美| 杨贵妃一级婬片90分钟| 成人片无码| 在线观看免费A片| 精品在线一区| 东京热av在线| 四川女人毛多水多A片| 亚洲无码av在线播放| 中文字幕亚洲综合| 熟女人妻人妻HD| 欧美在线一区二区| 江苏妇搡BBBB搡BBB| 99综合| 亚洲一区二区三区无码| 四川少妇BBw搡BBBB槡BBBB| 蜜臀久久99精品久久久久久牛牛| 欧美丝袜脚交xxxxBH| 国产欧美一区二区人妻喷水| 大香蕉伊人9| 国产三级高清无码| 男女视频网站在线观看| 精品国产123| 无码人妻中文| 少婦揉BBBB揉BBBB揉| 影音先锋中文字幕av| 伊香蕉大综综综合| 欧美黑人大吊| 国产精品婷婷午夜在线观看| 人人射视频| 极品人妻疯狂3p超刺激| 久久成人毛片| 日韩福利片| 99热综合| 加勒比DVD手机在线播放观看视频 日韩精品一区二区三区四区蜜桃视频 | 91九色91蝌蚪91窝成人| 久久午夜无码鲁丝片| 一级A片亲子乱| 欧美日韩毛| 亚洲欧美视频| 亚洲欧美在线综合| 翔田千里在线一区二区三区| 无码人妻丰满熟妇区17水蜜桃 | 亚洲A√| 亚洲无码天堂| 日韩美在线视频| 激情乱伦网站| 91欧美精品成人AAA片| 欧美黄色免费在线观看| 一区二区三区精品无码| 久草在线播放| 亚洲无码AV在线播放| 99久久久久久| 操逼网站免费| 国产三级| 色天堂视频在线观看| 国产精品九九视频| 天堂v视频| 精品国产va久久久久久久| 成人久久久久一级大黄毛片中国| 91免费高清视频| 激情小说激情视频| 亚洲a视频| 亚洲www| 综合激情五月婷婷| 中文字幕精品三区无码| 中文在线A∨在线| 91人妻人人澡人人爽精品| 92久久| 欧美亚洲性爱| 波多野结衣黄色视频| 亚洲福利在线观看| 丁香花在线小说免费阅读| 午夜狠狠操| 超碰国产97| 精品无码一区二区三区免费| 91亚洲免费| 日韩人妻无码一区| 97一区二区| 看90后操B| 中文字幕一区二区三区人妻电影| 黄片视频在线免费看| 91成人福利视频| 国产学生妹在线播放| 亚洲色五月| 国产无码av| 日韩一区二区免费看| 五月天无码免费视频| 免费网站观看www在线观| 精品成人一区二区三区| 秋霞一级| 在线免费黄片| 成人国产精品秘欧美高清| 国产AV剧情| a一级黄片| 成人h在线观看| 亚洲vs无码秘蜜桃少妇| 懂色av一区蜜桃| AV大全在线免费观看| 综合色在线| 亚洲国产熟妇无码日韩| 国产精品精品| 日韩中文字幕视频| 一区二区精品视频| 日批无码| 亚洲女人在线| 91亚洲精品在线| 国产激情久久| 无码日韩成人| 国产A级毛片久久久久久| 一二区免费视频| 国产草逼视频| 亚洲精品乱码久久久久| 做爱视频毛片人乱| 国产免费AV在线观看| 精品孕妇一区二区三区| 婷婷久久久久| 久草中文在线| 一本色道久久综合熟妇人妻| 色婷婷成人网| 亚洲一区二区在线视频| 2014天堂网| 欧美性爱精品一区| 青青大香蕉| 日韩精品一区在线| 麻豆午夜成人无码电影| 国产欧美熟妇另类久久久| 成人网站视频在线免费观看| 久草高清视频| 911香蕉视频| 日韩毛片网站| 五月天av在线观看| www.jiujiujiu| 亚洲无码精品一区二区三区| 三级片无码视频| 日韩人妻无码精品| 欧美十区| 3d动漫精品一区二区三区在线观看 | 中文字幕性爱电影| 丁香五月激情啪啪啪| seseav| avav无码| 无码在线播放观看| 国产免费无码视频| 人妻少妇一区二区三区| 轻轻操内射无码| 婷婷另类小说| 乱子伦日B视频| a片网| 国产一级a毛一级a毛片视频黑人 | 老司机一区二区三区| 亚洲日韩Av无码中文字幕美国 | 色999日韩| 操逼一区二区| 手机毛片在线播放| 亚洲色图自拍| 国产精品93333333| 亚洲影音| 学生妹一级| 欧美黄色性爱| 三级三级久久三级久久18| 木下凛凛子AV888AV在线观看 | 特黄特色一级特黄大片| 国产三级在线免费观看| 人人看人人做| 日韩精品一区二区三区免费观看高清| 午夜成人无码视频| 婷婷五月欧美| 中文字幕永久免费| 小黃片秘嗯嗯啊| 日本黄色视频在线免费观看| 香蕉网址| 狼友视频一国产| 亚洲五月天色| 国产在线视频一区二区三区| 国产精品视频免费| 国产搡BBB爽爽爽视频| 3d动漫精品一区二区三区在线观看| 日韩精品视频在线免费观看| 韩国深夜福利视频| 色综合天| 亚洲1区2区| 成人无码免费毛片A片| A片操逼| 日韩大香蕉视频| 天堂资源网| 热热热热色| 中国一级黄色毛片| A无码| 六月丁香综合| 污片网站| 国产福利视频在线| 中文字幕一级片| 欧美一区二区三区不卡| 丰滿老婦BBwBBwBBw| 久久草视频在线播放| 免费视频久久| 青娱乐亚洲领先| 一级成人电影| 国产精品三| 中文字幕AV在线播放| 亚洲AV永久无码国产精品久久| 日本操逼片| 国产你懂的| 少妇的屄| 99黄色| 日本精品乱伦| 成人AV在线资源| 婷婷激情久久| www91久久| 精品久久一区二区三区四区| www.水蜜桃| 蜜臀av一区| 国产精品自拍偷拍| 欧美一级片在线观看| 内射一区二区| 丁香五月综合网| 男女嫩草视频| 九九九九九精品| 久久久777| 少妇二区| 欧美另类综合| 婷婷五月丁香六月| 69久久成人精品| 中文字幕+乱码+中文字幕在线| 五月天av在线观看| 色婷婷在线综合| 91人人干|