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

K8s-服務網格實戰-配置 Mesh(灰度發布)

云計算 云原生
從 Istio 的流量模型中可以看出:Istio 支持管理集群的出入口請求(gateway),同時也支持管理集群內的 Mesh 流量,也就是集群內服務之間的請求。

在上一篇 k8s-服務網格實戰-入門Istio中分享了如何安裝部署 Istio,同時可以利用 Istio 實現 gRPC 的負載均衡。

今天我們更進一步,深入了解使用 Istio 的功能。

從 Istio 的流量模型中可以看出:Istio 支持管理集群的出入口請求(gateway),同時也支持管理集群內的 mesh 流量,也就是集群內服務之間的請求。

本次先講解集群內部的請求,配合實現以下兩個功能:

  • 灰度發布(對指定的請求分別路由到不同的 service 中)
  • 配置 service 的請求權重

灰度發布

在開始之前會部署兩個 deployment 和一個 service,同時這兩個 deployment 所關聯的 Pod 分別對應了兩個不同的 label,由于在灰度的時候進行分組。

使用這個 yaml 會部署所需要的 deployment 和 service。

kubectl apply -f https://raw.githubusercontent.com/crossoverJie/k8s-combat/main/deployment/istio-mesh.yaml

首先設想下什么情況下我們需要灰度發布,一般是某個重大功能的測試,只對部分進入內測的用戶開放入口。

假設我們做的是一個 App,我們可以對拿到了內測包用戶的所有請求頭中加入一個版本號。

比如 versinotallow=200 表示新版本,versinotallow=100 表示老版本。同時在服務端會將這個版本號打印出來,用于區分請求是否進入了預期的 Pod。

// Client 
version := r.URL.Query().Get("version")  
name := "world"  
ctx, cancel := context.WithTimeout(context.Background(), time.Second)  
md := metadata.New(map[string]string{  
    "version": version,  
})  
ctx = metadata.NewOutgoingContext(ctx, md)  
defer cancel()  
g, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})

// Server
func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {  
    md, ok := metadata.FromIncomingContext(ctx)  
    var version string  
    if ok {  
       version = md.Get("version")[0]  
    }    log.Printf("Received: %v, version: %s", in.GetName(), version)  
    name, _ := os.Hostname()  
    return &pb.HelloReply{Message: fmt.Sprintf("hostname:%s, in:%s, version:%s", name, in.Name, version)}, nil  
}

對 service 分組

進行灰度測試時往往需要新增部署一個灰度服務,這里我們稱為 v2(也就是上圖中的 Pod2)。

同時需要將 v1 和 v2 分組:

apiVersion: networking.istio.io/v1alpha3  
kind: DestinationRule  
metadata:  
  name: k8s-combat-service-ds  
spec:  
  host: k8s-combat-service-istio-mesh  
  subsets:  
    - name: v1  
      labels:  
        app: k8s-combat-service-v1  
    - name: v2  
      labels:  
        app: k8s-combat-service-v2

這里我們使用 Istio 的 DestinationRule 定義 subset,也就是將我們的 service 下的 Pod 分為 v1/v2。

使用 標簽 app 進行分組

注意這里的 host: k8s-combat-service-istio-mesh 通常配置的是 service 名稱。

apiVersion: v1  
kind: Service  
metadata:  
  name: k8s-combat-service-istio-mesh  
spec:  
  selector:  
    appId: "12345"  
  type: ClusterIP  
  ports:  
    - port: 8081  
      targetPort: 8081  
      name: app  
    - name: grpc  
      port: 50051  
      targetPort: 50051

也就是這里 service 的名稱,同時也支持配置為 host: k8s-combat-service-istio-mesh.default.svc.cluster.local,如果使用的簡寫Istio 會根據當前指定的 namespace 進行解析。

Istio 更推薦使用全限定名替代我們這里的簡寫,從而避免誤操作。

當然我們也可以在 DestinationRule 中配置負載均衡的策略,這里我們先略過:

apiVersion: networking.istio.io/v1alpha3  
kind: DestinationRule  
metadata:  
  name: k8s-combat-service-ds  
spec:  
  host: k8s-combat-service-istio-mesh 
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN

這樣我們就定義好了兩個分組:

  • v1:app: k8s-combat-service-v1
  • v2:app: k8s-combat-service-v2

之后就可以配置路由規則將流量分別指定到兩個不同的組中,這里我們使用 VirtualService 進行配置。

apiVersion: networking.istio.io/v1alpha3  
kind: VirtualService  
metadata:  
  name: k8s-combat-service-vs  
spec:  
  gateways:  
    - mesh  
  hosts:  
    - k8s-combat-service-istio-mesh # match this host
http:  
  - name: v1  
    match:  
      - headers:  
          version:  
            exact: '100'  
    route:  
      - destination:  
          host: k8s-combat-service-istio-mesh  
          subset: v1  
  - name: v2  
    match:  
      - headers:  
          version:  
            exact: '200'  
    route:  
      - destination:  
          host: k8s-combat-service-istio-mesh  
          subset: v2  
  - name: default  
    route:  
      - destination:  
          host: k8s-combat-service-istio-mesh  
          subset: v1

這個規則很簡單,會檢測 http 協議的 header 中的 version 字段值,如果為 100 這路由到 subset=v1 這個分組的 Pod 中,同理為 200 時則路由到 subset=v2 這個分組的 Pod 中。

當沒有匹配到 header 時則進入默認的 subset:v1

gRPC 也是基于 http 協議,它的 metadata 也就對應了 http 協議中的 header。

header=100

Greeting: hostname:k8s-combat-service-v1-5b998dc8c8-hkb72, in:world, version:100istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=100"
Greeting: hostname:k8s-combat-service-v1-5b998dc8c8-hkb72, in:world, version:100istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=100"
Greeting: hostname:k8s-combat-service-v1-5b998dc8c8-hkb72, in:world, version:100istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=100"
Greeting: hostname:k8s-combat-service-v1-5b998dc8c8-hkb72, in:world, version:100istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=100"

header=200

Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"

根據以上的上面的測試請求來看,只要我們請求頭里帶上指定的 version 就會被路由到指定的 Pod 中。

利用這個特性我們就可以在灰度驗證的時候單獨發一個灰度版本的 Deployment,同時配合客戶端指定版本就可以實現灰度功能了。

配置權重

同樣基于 VirtualService 我們還可以對不同的 subset 分組進行權重配置。

apiVersion: networking.istio.io/v1alpha3  
kind: VirtualService  
metadata:  
  name: k8s-combat-service-vs  
spec:  
  gateways:  
    - mesh  
  hosts:  
    - k8s-combat-service-istio-mesh # match this host  
  http:  
    - match:  
        - uri:  
            exact: /helloworld.Greeter/SayHello  
      route:  
        - destination:  
            host: k8s-combat-service-istio-mesh  
            subset: v1  
          weight: 10  
        - destination:  
            host: k8s-combat-service-istio-mesh  
            subset: v2  
          weight: 90  
      timeout: 5000ms

這里演示的是針對 SayHello 接口進行權重配置(當然還有多種匹配規則),90% 的流量會進入 v2 這個 subset,也就是在 k8s-combat-service-istio-mesh service 下的 app: k8s-combat-service-v2 Pod。

Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-**v1**-5b998dc8c8-hkb72, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$ curl "http://127.0.0.1:8081/grpc_client?name=k8s-combat-service-istio-mesh&versinotallow=200"
Greeting: hostname:k8s-combat-service-v2-5db566fb76-xj7j6, in:world, version:200istio-proxy@k8s-combat-service-v1-5b998dc8c8-hkb72:/$

經過測試會發現大部分的請求都會按照我們的預期進入 v2 這個分組。

當然除之外之外我們還可以:

  • 超時時間
  • 故障注入
  • 重試 具體的配置可以參考 Istio 官方文檔:

  • 當然在一些云平臺也提供了可視化的頁面,可以更直觀的使用。

以上是 阿里云的截圖

但他們的管理的資源都偏 kubernetes,一般是由運維或者是 DevOps 來配置,不方便開發使用,所以還需要一個介于云廠商和開發者之間的管理發布平臺,可以由開發者以項目維度管理維護這些功能。

本文的所有源碼在這里可以訪問:https://github.com/crossoverJie/k8s-combat。

責任編輯:姜華 來源: crossoverJie
相關推薦

2023-11-01 08:08:22

k8s服務網格

2021-04-25 08:48:36

Traefik mes服務網格Kubernetes集

2021-06-05 10:16:55

Linkerd 服務網格Kubernetes

2020-01-31 14:12:53

云計算HPC無服務器

2022-11-24 14:21:27

微服務ISTIO

2023-06-18 19:21:04

技術架構服務網格

2020-11-15 23:48:57

服務網格微服務網絡網絡技術

2019-08-29 08:00:00

微服務架構服務網格

2021-07-21 05:23:06

Linkerd Emoji.voto服務網格

2020-01-07 09:25:02

服務網格微服務Kubernetes

2022-08-09 08:00:00

服務網格云原生工具

2022-05-16 08:00:00

服務網格架構Kuma

2023-09-26 00:59:54

零配置服務網格

2020-07-13 07:00:03

微服務服務網格架構

2020-10-21 13:31:53

服務網格開源微服務

2021-04-02 22:00:50

服務網格微服務

2023-09-08 08:09:12

k8sservice服務

2020-08-26 05:45:40

服務網格DevOps開發

2024-09-27 10:05:02

2021-08-27 11:42:51

Nacos云原生阿里云
點贊
收藏

51CTO技術棧公眾號

高清国产mv在线观看| 亚洲精品午夜视频| 久草在线视频资源| 91在线观看地址| 国产精品日韩电影| 强乱中文字幕av一区乱码| 日韩美女精品| 在线播放国产精品二区一二区四区| av在线免费观看国产| 青青久草在线| 国产大陆a不卡| 2019中文字幕全在线观看| 秋霞网一区二区三区| 最新国产精品精品视频| 色爱区综合激月婷婷| 91片黄在线观看| 久久国产乱子伦免费精品| 欧美香蕉大胸在线视频观看| 成人毛片在线观看| 一区二区三欧美| 国产精品久久久久野外| 日本韩国欧美| 亚洲国产欧美日韩另类综合| 日韩欧美视频一区二区| 黄色一级a毛片| 美腿丝袜亚洲色图| 55夜色66夜色国产精品视频| 国产在线一卡二卡| 精品久久久亚洲| 精品成人佐山爱一区二区| 九九热免费在线观看| 亚洲一区站长工具| 亚洲一区二区三区中文字幕在线| 午夜午夜精品一区二区三区文| 亚洲伦理在线观看| 国内精品久久久久影院薰衣草| 日本视频久久久| 日韩免费不卡视频| 自由日本语亚洲人高潮| 色综合影院在线| 国产三级av在线播放| 亚洲+变态+欧美+另类+精品| 精品国产三级电影在线观看| 国产一级片中文字幕| 久久人体av| 欧美影院一区二区| 日本老熟妇毛茸茸| 欧美舌奴丨vk视频| 色综合一区二区| 欧美日韩亚洲一| 17videosex性欧美| 亚洲成a人片综合在线| 天堂а√在线中文在线| 伊人222成人综合网| 亚洲色图20p| 亚洲国产精品女人| 成人区精品一区二区不卡| 国产精品免费av| 亚洲一区高清| 麻豆传媒视频在线| 亚洲黄一区二区三区| 五月天在线免费视频| av在线免费播放| 亚洲精品乱码久久久久久久久| 国产一级片91| 91禁在线看| 欧美视频一二三| 99热成人精品热久久66| 全亚洲第一av番号网站| 欧洲一区在线观看| 亚洲欧美国产中文| 精品国产一区二区三区性色av| 777欧美精品| 国产调教打屁股xxxx网站| 国产精品99久久免费观看| 精品国产免费久久 | 麻豆系列在线观看| 亚洲品质自拍视频| 国产精品三级一区二区| 九色porny丨首页入口在线| 日韩欧美高清视频| 亚洲一级免费观看| 久久伦理中文字幕| 亚洲精品国产拍免费91在线| 色一情一交一乱一区二区三区| 欧美a级片视频| 欧美激情免费视频| 国语对白永久免费| 久久精品免费观看| 国产精品久久亚洲7777| 久草福利在线| 亚洲免费观看高清完整版在线观看| 国产成人一区二区三区别| 天堂网在线最新版www中文网| 欧美午夜精品久久久久久孕妇| 久久精品视频在线观看免费| gogo久久日韩裸体艺术| 亚洲一级片在线看| wwwav国产| 久久久人人人| 5g影院天天爽成人免费下载| 欧美女同网站| 亚洲国产综合人成综合网站| 无码少妇一区二区三区芒果| 136福利精品导航| 一本一道久久a久久精品逆3p | 亚洲少妇一区二区三区| 欧美日韩亚洲在线观看| 欧美劲爆第一页| 亚洲视频一区二区三区四区| www.欧美亚洲| 无码人妻aⅴ一区二区三区日本| 正在播放日韩精品| 日韩欧美另类在线| 欧美一区二区三区观看| 羞羞视频在线观看欧美| 91丨九色丨国产| 91社区在线高清| 欧美小视频在线观看| 久久久久久久穴| 91不卡在线观看| 国产精品福利观看| 五月婷婷丁香花| 一区二区在线观看免费视频播放| 一区二区三区入口| 四虎5151久久欧美毛片| 欧美激情精品久久久久久| 在线观看视频中文字幕| 久久精品亚洲麻豆av一区二区| h无码动漫在线观看| 国产一区 二区| 色系列之999| 亚洲欧美日韩激情| 99国产精品国产精品毛片| 欧美国产综合在线| 亚洲高清在线一区| 久久影院模特热| 中文字幕精品一区二| 国产午夜亚洲精品羞羞网站| 欧美视频在线播放一区| 麻豆一区二区麻豆免费观看| 久久久久久国产免费| 国产激情无套内精对白视频| 综合久久一区二区三区| 中文字幕第88页| 日韩dvd碟片| 国产精品欧美激情| av在线电影免费观看| 欧美亚洲免费在线一区| 亚洲成人黄色av| 日韩avvvv在线播放| 欧美一区二区视频17c| 桃色一区二区| 亚洲午夜精品视频| 中文字幕手机在线视频| 国产区在线观看成人精品| 日本va中文字幕| 操欧美老女人| 国产精品视频xxxx| 日本中文字幕在线看| 777奇米成人网| 国产a免费视频| 丁香婷婷综合五月| koreanbj精品视频一区| 国产亚洲第一伦理第一区| 国产精品com| 日韩黄色影院| 日韩精品一区二区三区三区免费| 久草视频在线资源| av电影一区二区| 国产精品99久久免费黑人人妻| 国产精品一在线观看| 国产精品人人做人人爽| av中文字幕在线观看| 亚洲精品美女久久久| 国产午夜麻豆影院在线观看| 国产精品久久久久久亚洲毛片| 欧美一级小视频| 午夜久久福利| 美国av一区二区三区| 韩国精品视频在线观看| 欧美噜噜久久久xxx| 亚州视频一区二区三区| 欧美日韩亚洲综合一区| 欧美极品aaaaabbbbb| 久久久久久夜精品精品免费| 午夜剧场高清版免费观看| 精品成人久久| 视频一区二区在线观看| vam成人资源在线观看| 久久人人爽人人| 91在线直播| 亚洲精品一区二区三区四区高清| 国产成人无码专区| 亚洲精品高清在线| 亚洲一级中文字幕| 国产久卡久卡久卡久卡视频精品| 男人天堂网视频| 午夜精品毛片| 欧美精品尤物在线| 邪恶网站在线观看| 秘密基地免费观看完整版中文| 日韩av午夜| 国产中文字幕91| 成人免费图片免费观看| 日韩在线视频二区| 国产精品国产高清国产| 91精品国产综合久久香蕉的特点| 午夜影院在线看| 亚洲欧美偷拍三级| 波多野结衣片子| 成人午夜激情影院| 欧美性受xxxxxx黑人xyx性爽| 日韩一区二区免费看| 婷婷视频在线播放| 黄色不卡一区| 国产三级精品在线不卡| 亚洲毛片在线免费| 国产精品久久国产精品99gif| 精精国产xxxx视频在线中文版| 中文字幕国产日韩| 黄上黄在线观看| 日韩久久免费电影| 蜜臀久久精品久久久久| 欧美一区二区播放| 国产女主播喷水视频在线观看| 亚洲v中文字幕| 超碰手机在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日韩一区二区在线免费| 麻豆视频成人| 免费日韩一区二区三区| 国产成人免费观看| 日韩在线观看中文字幕| 91精品视频网站| 欧美黄色a视频| 国产精品日本精品| yy6080久久伦理一区二区| 国产精品扒开腿做爽爽爽男男| 亚洲欧美一区二区三区| 7777精品视频| 老牛影视精品| 欧美一级视频免费在线观看| 欧美日韩国产观看视频| 91精品国产91久久久久久不卡| 国产啊啊啊视频在线观看| 欧美国产日本高清在线 | 91精品国产乱码久久久久久蜜臀| 国产白丝在线观看| 午夜免费日韩视频| 日本不卡免费高清视频在线| 欧美一级免费视频| 伊人色综合一区二区三区影院视频| 5566成人精品视频免费| 欧美一区国产| 国产欧美日韩精品专区| 亚州欧美在线| 97se视频在线观看| 91综合久久爱com| 精品国产乱码久久久久| 亚洲国产网址| 亚洲 日韩 国产第一区| 97精品国产| 久久久天堂国产精品| 禁久久精品乱码| 六月激情综合网| 日本中文字幕不卡| 国产色视频在线播放| 国产伦精一区二区三区| 99精品一区二区三区无码吞精| 99久久er热在这里只有精品15| 欧美色图亚洲激情| 国产精品毛片高清在线完整版| 糖心vlog免费在线观看 | 天码人妻一区二区三区在线看 | 国产精品无码粉嫩小泬| 欧美老女人在线| www日本高清视频| 日韩电影中文 亚洲精品乱码| 福利视频在线导航| 不卡av日日日| 日本三级一区| 国产在线一区二区三区| 国产精品午夜av| 日韩不卡av| 欧美天天视频| 激情六月丁香婷婷| 国产自产视频一区二区三区| 中国免费黄色片| 中文av一区二区| 欧美日韩一区二| 国产强被迫伦姧在线观看无码| 在线播放国产精品二区一二区四区| 午夜精品久久久久久久96蜜桃| 日韩精品中文字幕在线| 毛片在线不卡| 欧美专区在线视频| 国产电影一区| 欧美成人dvd在线视频| 91成人看片| www.日日操| 成人动漫一区二区三区| 欧美性生交大片| 欧美性高潮在线| 国产chinasex对白videos麻豆| 国产手机视频精品| dj大片免费在线观看| 日产精品99久久久久久| 视频一区在线| 亚洲免费精品视频| 在线一区免费观看| av在线网站免费观看| 久久久久久**毛片大全| 九九九久久久久| 欧洲精品中文字幕| 国产 欧美 精品| 久久精品人人爽| 欧美日韩五区| 九9re精品视频在线观看re6 | 中文字幕国产亚洲2019| 日本不卡网站| 国产一区二区在线网站| 91国语精品自产拍| 韩国视频一区二区三区| 91日韩在线专区| 日韩免费不卡视频| 精品捆绑美女sm三区| 精品美女在线观看视频在线观看 | 日韩三级网址| 亚洲日本理论电影| 蜜桃av综合| 国产亚洲精品日韩| 一本大道熟女人妻中文字幕在线| 性猛交xxxx乱大交孕妇印度| 成人三级毛片| 亚洲欧美日韩精品久久久久| 国产精品大片wwwwww| 在线播放第一页| 日本www在线观看| 国产丝袜欧美中文另类| 久激情内射婷内射蜜桃| 成人精品中文字幕| 麻豆av免费在线| 91色九色蝌蚪| 成人免费视频毛片| 亚洲精品电影久久久| 91超碰在线免费| 精品国产乱码久久久久久蜜柚| 亚洲美女啪啪| 玖玖爱在线精品视频| 香蕉av福利精品导航| 欧美性受xxxx狂喷水| 亚洲3p在线观看| 六月丁香久久丫| a√天堂在线观看| 91亚洲精品久久久蜜桃| 亚洲欧美精品一区二区三区| 亚洲欧美日韩国产中文专区| 欧美艳星kaydenkross| 日韩高清dvd| 久久成人免费电影| 黄色香蕉视频在线观看| 欧美一级精品在线| 欧美亚洲系列| 久久艹中文字幕| 久久精品国语| 亚洲一二三精品| 欧美美女激情18p| 欧美寡妇性猛交xxx免费| 久久99欧美| 免费成人av在线| 丰满少妇被猛烈进入一区二区| 亚洲精品一区二区三区在线观看 | 久久九九久久九九| 国产99久久久久久免费看| 日韩在线观看免费全集电视剧网站| 四虎国产精品免费久久5151| 中国女人做爰视频| 91日韩精品一区| 亚洲影院一区二区三区| 欧美精品一区三区| 欧美freesex8一10精品| www.99在线| 亚洲欧美偷拍另类a∨色屁股| 亚洲精品中文字幕成人片| 青草青草久热精品视频在线网站| 成人在线电影在线观看视频| 中文字幕avav| 日韩欧美在线播放| 国产在线1区| 精品高清视频| 老司机精品视频在线| 国产精品日日夜夜| 中文在线资源观看视频网站免费不卡 | 蜜桃av中文字幕| 国产精品99久久99久久久二8| 综合在线一区| 国产成人精品无码免费看夜聊软件| 欧美情侣在线播放| 在线观看福利电影|