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

Argo Rollouts 實現藍綠/金絲雀發布

云計算
Argo Rollouts 是一個 Kubernetes Operator 實現,它為 Kubernetes 提供更加高級的部署能力,如藍綠、金絲雀、金絲雀分析、實驗和漸進式交付功能,為云原生應用和服務實現自動化、基于 GitOps 的逐步交付。

[[410862]]

Argo Rollouts 是一個 Kubernetes Operator 實現,它為 Kubernetes 提供更加高級的部署能力,如藍綠、金絲雀、金絲雀分析、實驗和漸進式交付功能,為云原生應用和服務實現自動化、基于 GitOps 的逐步交付。

支持如下特性:

  • 藍綠更新策略
  • 金絲雀更新策略
  • 更加細粒度、加權流量拆分
  • 自動回滾
  • 手動判斷
  • 可定制的指標查詢和業務 KPI 分析
  • Ingress 控制器集成:NGINX,ALB
  • 服務網格集成:Istio,Linkerd,SMI
  • Metrics 指標集成:Prometheus、Wavefront、Kayenta、Web、Kubernetes Jobs、Datadog、New Relic

實現原理

與 Deployment 對象類似,Argo Rollouts 控制器將管理 ReplicaSets 的創建、縮放和刪除,這些 ReplicaSet 由 Rollout 資源中的 spec.template 定義,使用與 Deployment 對象相同的 pod 模板。

當 spec.template 變更時,這會向 Argo Rollouts 控制器發出信號,表示將引入新的 ReplicaSet,控制器將使用 spec.strategy 字段內的策略來確定從舊 ReplicaSet 到新 ReplicaSet 的 rollout 將如何進行,一旦這個新的 ReplicaSet 被放大(可以選擇通過一個 Analysis),控制器會將其標記為穩定。

如果在 spec.template 從穩定的 ReplicaSet 過渡到新的 ReplicaSet 的過程中發生了另一次變更(即在發布過程中更改了應用程序版本),那么之前的新 ReplicaSet 將縮小,并且控制器將嘗試發布反映更新 spec.template 字段的 ReplicasSet。

相關概念

在繼續之前我們先來了解一些基本的概念。

Rollout(滾動)

Rollout 是一個 Kubernetes 的 CRD 資源,相當于 Kubernetes Deployment 對象,在需要更高級的部署或漸進式交付功能的情況下,它旨在取代 Deployment 對象,Rollout 提供了 Kubernetes Deployment 所不能提供的功能。

  • 藍綠部署
  • 金絲雀部署
  • 與 Ingress 控制器和服務網格整合,實現高級流量路由
  • 與用于藍綠和金絲雀分析的指標提供者集成
  • 根據成功或失敗的指標,自動發布或回滾

漸進式交付

漸進式交付是以受控和漸進的方式發布產品更新的過程,從而降低發布的風險,通常將自動化和指標分析結合起來以驅動更新的自動升級或回滾。

漸進式交付通常被描述為持續交付的演變,將 CI/CD 中的速度優勢擴展到部署過程。通過將新版本限制在一部分用戶,觀察和分析正確的行為,然后逐漸增加更多的流量,同時不斷驗證其正確性。

部署策略

雖然業界使用了一致的術語來描述各種部署策略,但這些策略的實現往往因工具而異,為了明確 Argo Rollouts 的行為方式,以下是 Argo Rollouts 提供的各種部署策略實施的描述。

  • RollingUpdate(滾動更新):慢慢地用新版本替換舊版本,隨著新版本的出現,舊版本會慢慢縮減,以保持應用程序的總數量。這是 Deployment 對象的默認策略。
  • Recreate(重新創建):Recreate 會在啟動新版本之前刪除舊版本的應用程序,這可確保應用程序的兩個版本永遠不會同時運行,但在部署期間會出現停機時間。
  • Blue-Green(藍綠):藍綠發布(有時稱為紅黑)指同時部署了新舊兩個版本的應用程序,在此期間,只有舊版本的應用程序會收到生產流量,這允許開發人員在將實時流量切換到新版本之前針對新版本進行測試。

  • Canary(金絲雀):金絲雀發布指將一部分用戶暴露在新版本的應用程序中,而將其余流量提供給舊版本,一旦新版本被驗證是正確的,新版本可以逐漸取代舊版本。Ingress 控制器和服務網格,如 NGINX Ingress 和 Istio,可以使金絲雀的流量拆分模式比原生的更復雜(例如,實現非常細粒度的流量分割,或基于 HTTP 頭的分割)。

上面顯示了一個有兩個階段的金絲雀(10%和33%的流量進入新版本),通過使用 Argo Rollouts,我們可以根據實際的使用情況定義確切的階段數和流量百分比。

場景

  1. 用戶希望在新版本開始為生產環境提供服務之前對其進行最后一分鐘的功能測試,通過 BlueGreen 策略,Argo Rollouts 允許用戶指定預覽服務和活動服務,Rollout 將配置預覽服務以將流量發送到新版本,同時活動服務繼續接收生產流量。一旦達到要求,則可以將預覽服務提升為新的活動服務。
  2. 在新版本開始接收實時流量之前,需要預先執行一套通用步驟,通過使用 BlueGreen 策略,用戶可以在不接收來自活動服務的流量的情況下啟動新版本,一旦這些步驟執行完畢,就可以將流量切換到新版本了。
  3. 用戶希望在幾個小時內將一小部分生產流量提供給他們應用程序的新版本。之后,他們希望縮小新版本規模,并查看一些指標以確定新版本與舊版本相比是否具有性能問題,然后他們將決定是否為切換到新版本。使用金絲雀策略,rollout 可以用新版本擴大 ReplicaSet 的規模,以接收指定百分比的流量,等待指定的時間,然后將百分比設置回 0,然后等待用戶滿意后再發布,為所有的流量提供服務。
  4. 一個用戶想慢慢給新版增加生產流量,先給它一小部分的實時流量,然后等待一段時間再給新版本更多的流量,最終,新版本將接收所有生產流量。使用金絲雀策略,用戶指定他們希望新版本接收的百分比以及在百分比之間等待的時間。
  5. 用戶想要使用 Deployment 中的正常滾動更新策略,如果用戶使用沒有步驟的金絲雀策略,rollout 將使用 maxSurge 和最大不可用值來滾動到新版本。

架構

下面展示了由 Argo Rollouts 管理的 Deployment 的所有組件。

 

argo rollouts 架構

Rollout Controller

這是主控制器,用于監視集群的事件并在 Rollout 類型的資源發生更改時做出反應。控制器將讀取 rollout 的所有詳細信息,并使集群處于 rollout 定義中描述的相同狀態。

請注意,Argo Rollouts 不會篡改或響應正常 Deployment 資源上發生的任何變更,這意味著你可以在一個使用其他方法部署應用的集群中安裝 Argo Rollouts。

Rollout 資源

Rollout 資源是 Argo Rollouts 引入和管理的一種自定義 Kubernetes 資源,它與原生的 Kubernetes Deployment 資源基本兼容,但有額外的字段來控制更加高級的部署方法,如金絲雀和藍/綠部署。

Argo Rollouts 控制器將只對 Rollout 資源中的變化做出反應,不會對正常的 Deployment 資源做任何事情,所以如果你想用 Argo Rollouts 管理你的 Deployment,你需要將你的 Deployment 遷移到Rollouts。

舊版和新版的 ReplicaSets

這些是標準的 Kubernetes ReplicaSet 資源的實例,Argo Rollouts 給它們添加了一些額外的元數據,以便跟蹤屬于應用程序的不同版本。

還要注意的是,參加 Rollout 的 ReplicaSet 完全由控制器自動管理,你不應該用外部工具來篡改它們。

Ingress/Service

用戶的流量進入集群后,被重定向到合適的版本,Argo Rollouts 使用標準的 Kubernetes Service 資源,但有一些額外的元數據。

Argo Rollouts 在網絡配置上非常靈活,首先,可以在 Rollout 期間使用不同的服務,這些服務僅適用于新版本、僅適用于舊版本或兩者都適用。特別是對于 Canary 部署,Argo Rollouts 支持多種服務網格和 Ingress 解決方案,用于按特定百分比拆分流量,而不是基于 Pod 數量進行簡單的配置。

Analysis 與 AnalysisRun

Analysis 是一種自定義 Kubernetes 資源,它將 Rollout 連接到指標提供程序,并為某些指標定義特定閾值,這些閾值將決定 Rollout 是否成功。對于每個 Analysis,你可以定義一個或多個指標查詢及其預期結果,如果指標查詢正常,則 Rollout 將繼續操作;如果指標顯示失敗,則自動回滾;如果指標無法提供成功/失敗的答案,則暫停發布。

Analysis 只是關于要查詢哪些指標的模板。附加到 Rollout 的實際結果是 AnalysisRun 自定義資源,你可以在特定 Rollout 上或在集群上全局定義 Analysis 以供多個 rollout 共享。

請注意,在 Rollout 中使用 Analysis 和指標是完全可選的,你可以通過 API 或 CLI 手動暫停和促進發布或使用其他外部方法(例如冒煙測試)。你不需要僅使用 Argo Rollouts 的 Metrics 解決方案,你還可以在 Rollout 中混合自動(即基于 Analysis)和手動步驟。

除了指標之外,你還可以通過運行 Kubernetes Job 或運行 webhook 來決定發布的成功與否。

Metric Providers

Argo Rollouts 包括幾個流行的指標提供者的原生集成,你可以在 Analysis 資源中使用,來自動提升或回滾發布。

CLI 和 UI(圖中未顯示)

還可以使用 Argo Rollouts CLI 或集成 UI 查看和管理 Rollout,兩者都是可選的。

安裝

直接使用下面的命令安裝 Argo Rollouts:

  1. ➜  ~ kubectl create namespace argo-rollouts 
  2. ➜  ~ kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.0.2/install.yaml 

這里會創建一個名為 argo-rollouts 的命名空間,Argo Rollouts 控制器運行在下面。

  1. ➜  ~ kubectl get pods -n argo-rollouts 
  2. NAME                             READY   STATUS    RESTARTS   AGE 
  3. argo-rollouts-6fdcf89f7c-7z2mh   1/1     Running   0          58s 

此外,我們還可以安裝一個 kubectl 插件,對于命令行管理和可視化發布非常方便。

我們這里是 Mac 系統,可以直接使用下面的命令進行安裝:

  1. ➜  ~ brew install argoproj/tap/kubectl-argo-rollouts 

當然也可以手動進行安裝,使用 curl 安裝 Argo Rollouts kubectl 插件:

  1. ➜  ~ curl -LO https://github.com/argoproj/argo-rollouts/releases/download/v1.0.2/kubectl-argo-rollouts-darwin-amd64 

然后賦予 kubectl-argo-rollouts 二進制文件可執行權限:

  1. ➜  ~ chmod +x ./kubectl-argo-rollouts-darwin-amd64 

將該二進制文件移動到你的 PATH 路徑下面去:

  1. ➜  ~ sudo mv ./kubectl-argo-rollouts-darwin-amd64 /usr/local/bin/kubectl-argo-rollouts 

執行下面的命令來驗證插件是否安裝成功:

  1. ➜  ~ kubectl argo rollouts version 
  2. kubectl-argo-rollouts: v1.0.2+7a23fe5 
  3.   BuildDate: 2021-06-15T19:36:10Z 
  4.   GitCommit: 7a23fe5dbf78181248c48af8e5224246434e7f99 
  5.   GitTreeState: clean 
  6.   GoVersion: go1.16.3 
  7.   Compiler: gc 
  8.   Platform: darwin/amd64 

使用

接下來我們通過幾個簡單的示例來說明 Rollout 的部署、升級、發布和中斷等操作,以此來展示 Rollouts 的各種功能。

1. 部署 Rollout

首先我們部署一個 Rollout 資源和一個針對該資源的 Kubernetes Service 對象,這里我們示例中的 Rollout 采用了金絲雀的更新策略,將 20% 的流量發送到金絲雀上,然后手動發布,最后在升級的剩余時間內逐漸自動增大流量,可以通過如下所示的 Rollout 來描述這個策略:

  1. # basic-rollout.yaml 
  2. apiVersion: argoproj.io/v1alpha1 
  3. kind: Rollout 
  4. metadata: 
  5.   name: rollouts-demo 
  6. spec: 
  7.   replicas: 5  # 定義5個副本 
  8.   strategy:  # 定義升級策略 
  9.     canary:   # 金絲雀發布 
  10.       steps:  # 發布的節奏 
  11.       - setWeight: 20 
  12.       - pause: {}  # 會一直暫停 
  13.       - setWeight: 40 
  14.       - pause: {duration: 10} 
  15.       - setWeight: 60 
  16.       - pause: {duration: 10} 
  17.       - setWeight: 80 
  18.       - pause: {duration: 10} 
  19.   revisionHistoryLimit: 2  # 下面部分其實是和 Deployment 兼容的 
  20.   selector: 
  21.     matchLabels: 
  22.       app: rollouts-demo 
  23.   template: 
  24.     metadata: 
  25.       labels: 
  26.         app: rollouts-demo 
  27.     spec: 
  28.       containers: 
  29.       - name: rollouts-demo 
  30.         image: argoproj/rollouts-demo:blue 
  31.         ports: 
  32.         - name: http 
  33.           containerPort: 8080 
  34.           protocol: TCP 
  35.         resources: 
  36.           requests: 
  37.             memory: 32Mi 
  38.             cpu: 5m 

還包括一個如下所示的 Service 資源對象:

  1. # basic-service.yaml 
  2. apiVersion: v1 
  3. kind: Service 
  4. metadata: 
  5.   name: rollouts-demo 
  6. spec: 
  7.   ports: 
  8.   - port: 80 
  9.     targetPort: http 
  10.     protocol: TCP 
  11.     name: http 
  12.   selector: 
  13.     app: rollouts-demo 

直接創建上面的兩個資源對象:

  1. ➜  ~ kubectl apply -f basic-rollout.yaml 
  2. ➜  ~ kubectl apply -f basic-service.yaml 

任何 Rollout 的初始創建都會立即將副本擴展到100%(跳過任何金絲雀升級步驟、分析等...),因為還沒有發生升級。

Argo Rollouts 的 kubectl 插件允許我們可視化 Rollout 以及相關資源對象,并展示實時狀態變化,要在部署過程中觀察 Rollout,可以通過運行插件的 get rollout --watch 命令,比如:

  1. ➜  ~ kubectl argo rollouts get rollout rollouts-demo --watch 

 

2. 更新 Rollout

上面已經部署完成,接下來就需要執行更新了,和 Deployment 類似,對 Pod 模板字段的任何變更都會導致新的版本(即 ReplicaSet)被部署,更新 Rollout 通常是修改容器鏡像的版本,然后執行 kubectl apply ,為了方便,rollouts 插件還單獨提供了一個 set image 的命令,比如這里我們運行以下所示命令,用 yellow 版本的容器更新上面的 Rollout:

  1. ➜  ~ kubectl argo rollouts set image rollouts-demo \ 
  2.   rollouts-demo=argoproj/rollouts-demo:yellow 

在 rollout 更新期間,控制器將通過 Rollout 更新策略中定義的步驟進行。這個示例的 rollout 為金絲雀設置了20%的流量權重,并一直暫停 rollout,直到用戶取消或促進發布。在更新鏡像后,再次觀察rollout,直到它達到暫停狀態。

  1. ➜  ~ kubectl argo rollouts get rollout rollouts-demo --watch 

 圖片

當 demo rollout 到達第二步時,我們可以從插件中看到,Rollout 處于暫停狀態,現在有5個副本中的1個運行新版本的 pod,其余4個仍然運行舊版本,這相當于 setWeight: 20 步驟所定義的20%的金絲雀權重。

3. Promote Rollout

經過上面的更新后,Rollout 現在處于暫停狀態,當一個 Rollout 到達一個沒有持續時間的暫停步驟時,它將一直保持在暫停狀態,直到它被恢復/提升。要手動將 Rollout 切換到下一個步驟,請運行插件的 promotion 命令。

  1. ➜  ~ kubectl argo rollouts promote rollouts-demo 

切換后 Rollout 將繼續執行剩余的步驟。在我們的例子中,剩余的步驟是完全自動化的,所以 Rollout 最終會完成步驟,直到它已經完全過渡到新版本。再次觀察 Rollout,直到它完成所有步驟。

  1. ➜  ~ kubectl argo rollouts get rollout rollouts-demo --watch 

 圖片

  • promote 命令還支持用 --full 標志跳過所有剩余步驟和分析。

可以看到 stable 版本已經切換到 revision:2 這個 ReplicaSet 了。在更新過程中,無論何時,無論是通過失敗的金絲雀分析自動中止,還是由用戶手動中止,Rollout 都會退回到 stable 版本。

4. 中斷 Rollout

接下來我們來了解如何在更新過程中手動中止 Rollout,首先,使用 set image 命令部署一個新的 red 版本的容器,并等待 rollout 再次達到暫停的步驟。

  1. ➜  ~ kubectl argo rollouts set image rollouts-demo \ 
  2.   rollouts-demo=argoproj/rollouts-demo:red 
圖片

這一次我們將中止更新,而不是將滾動切換到下一步,這樣它就回到了 stable 版本,該插件同樣提供了一個 abort 命令,可以在更新過程中的任何時候手動中止 Rollout。

  1. ➜  ~ kubectl argo rollouts abort rollouts-demo 

當中止滾動時,它將擴大 ReplicaSet 的 stable 版本(在本例中是 yellow 版本),并縮小任何其他版本。盡管 ReplicaSet 的穩定版本可能正在運行,并且是健康的,但整個 Rollout 仍然被認為是退化的,因為期望的版本(red 版本)不是實際運行的版本。

圖片

為了使 Rollout 再次被認為是健康的而不是有問題的版本,有必要將所需的狀態改回以前的穩定版本。在我們的例子中,我們可以簡單地使用之前的 yellow 鏡像重新運行 set image 命令即可。

  1. ➜  ~ kubectl argo rollouts set image rollouts-demo \ 
  2.   rollouts-demo=argoproj/rollouts-demo:yellow 

運行這個命令后,可以看到 Rollout 立即變成了 health 狀態,而且沒有任何關于創建新 ReplicaSets 的動態。

當 Rollout 還沒有達到預期狀態(例如,它被中止了,或者正在更新中),而穩定版本的資源清單被重新應用,Rollout 檢測到這是一個回滾,而不是一個更新,并將通過跳過分析和步驟快速部署穩定的 ReplicaSet。

上面例子中的 Rollout 沒有使用 Ingress 控制器或服務網格來控制流量。相反,它使用正常的 Kubernetes Service 來實現近似的金絲雀權重,基于新舊副本數量的比例來實現。所以,這個 Rollout 有一個限制,即它只能實現 20% 的最小加權,通過擴展5個pod中的一個來運行新版本。為了實現更細粒度的金絲雀,這就需要一個 Ingress 控制器或服務網格了,這部分我們可以在后續服務網格的學習中來介紹。

Dashboard

Argo Rollouts Kubectl 插件可以提供一個本地 Dashboard,來可視化你的 Rollouts。

要啟動這個 Dashboard,需要在包含 Rollouts 資源對象的命名空間中運行 kubectl argo rollouts dashboard 命令,然后訪問localhost:3100 即可。

點擊 Rollout 可以進行詳細頁面,在詳細頁面可以看到 Rollout 的配置信息,還可以直接在 UI 界面上執行一些常用的操作,比如重啟、重啟、中斷等。

 

責任編輯:姜華 來源: k8s技術圈
相關推薦

2023-10-08 07:34:04

2022-02-17 13:09:55

金絲雀部署服務集群測試

2022-11-30 08:00:00

金絲雀部署IT測試

2021-07-29 05:09:54

Linkerd金絲雀部署Flagger

2021-10-08 20:12:22

微服務架構Service

2022-08-22 10:40:40

Kubernete部署分析運行

2021-06-15 05:52:33

Linkerd canary網絡技術

2023-09-28 07:34:33

2024-04-01 13:04:01

停機部署滾動部署藍綠部署

2024-01-18 08:24:08

2021-07-16 06:40:19

Argo RollouAnalysis云原生

2021-02-28 07:52:24

蠕蟲數據金絲雀

2021-06-03 05:48:58

GitOps 云原生Kubernetes

2023-09-05 07:24:33

Traefik加權輪詢

2021-12-27 15:01:21

KubernetesLinux命令

2021-10-14 18:21:52

架構IstioService

2025-03-04 08:53:10

2015-08-20 10:49:39

Windows 10版本

2022-08-15 20:48:28

Chrome安卓網頁

2023-03-15 18:37:43

點贊
收藏

51CTO技術棧公眾號

小泽玛利亚av在线| 日韩美女在线看| 91成人在线观看喷潮蘑菇| 成人爽a毛片免费啪啪动漫| 波多野结衣91| 日韩美女在线看| 四虎884aa成人精品| 亚洲精品在线播放| 日韩欧美一区视频| 亚洲一区影院| 国内爆初菊对白视频| 亚洲综合99| 日韩网站免费观看高清| 精品人妻人人做人人爽夜夜爽| 激情av在线| 久久色在线观看| 91性高湖久久久久久久久_久久99| 麻豆亚洲av成人无码久久精品| 琪琪久久久久日韩精品| 欧美伊人精品成人久久综合97| 在线观看三级网站| 亚洲欧美自偷自拍| 国产一区欧美一区| 欧美最猛性xxxx| 久久精品黄色片| 精品一区亚洲| 精品免费视频.| 色婷婷狠狠18| 午夜影院在线播放| 亚洲精品视频一区二区| 日本精品国语自产拍在线观看| 国产富婆一级全黄大片| 日本在线观看不卡视频| 欧美激情videoshd| 久久久久人妻一区精品色| 日韩成人av在线资源| 欧美一二三区在线| 亚洲一区在线不卡| 午夜激情在线播放| 午夜一区二区三区在线观看| 色撸撸在线观看| 成人免费高清在线播放| 91在线观看下载| 国产伦精品一区| 国产美女裸体无遮挡免费视频| 久久精品二区三区| 国内精品伊人久久| 永久久久久久久| 91久久夜色精品国产按摩| 亚洲美女久久久| 国产xxxxxxxxx| 亚洲一区二区三区在线免费| 在线播放/欧美激情| 国产精品一区二区小说| 在线成人视屏 | 中文字幕免费在线不卡| 国产51人人成人人人人爽色哟哟| 91在线丨porny丨国产| 国产在线一区二| 国产小视频免费观看| 国产99精品视频| 国产a一区二区| 亚洲国产精品久久久久爰性色| 国产乱码精品一品二品| 91亚洲国产成人久久精品网站| 91久久精品国产91性色69| 美女一区二区久久| 国产日韩换脸av一区在线观看| 最新中文字幕免费| 蜜臀av国产精品久久久久 | 午夜精品久久久久久久蜜桃| 久久国产日本精品| 国产成人精品午夜| 黄色av一区二区| 免费在线观看一区二区三区| 国产日韩综合一区二区性色av| 亚洲中文字幕在线一区| 国产做a爰片久久毛片| 91中文字幕在线观看| 精品国产九九九| 懂色一区二区三区免费观看| 国产一区二区三区无遮挡| 天天av综合网| 国产蜜臀97一区二区三区| 亚洲区一区二区三区| 快射视频在线观看| 亚洲综合视频网| 国产原创中文在线观看| 户外露出一区二区三区| 欧美色大人视频| 下面一进一出好爽视频| 国产精品网站在线看| 亚洲免费视频一区二区| 欧美肥妇bbwbbw| 国内精品久久久久久久97牛牛 | 黄色一级免费视频| 亚洲伦理一区| 国产乱肥老妇国产一区二| 国产日韩在线观看一区| 99国产精品国产精品久久| 相泽南亚洲一区二区在线播放 | 欧美日韩麻豆| 在线观看成人黄色| 久久久久亚洲av成人片| 视频一区二区三区在线| 亚洲尤物视频网| 日韩美女一级视频| 亚洲免费伊人电影| 国产成人无码一二三区视频| 成人影院网站ww555久久精品| 亚洲第一精品电影| 国产一区二区三区视频播放| 精品1区2区3区4区| 国产精品视频导航| 人人妻人人玩人人澡人人爽| 中文字幕中文字幕一区| www国产精品内射老熟女| 日韩成人在线一区| 日韩精品久久久久久福利| 性爱在线免费视频| 99re国产精品| 91在线免费看片| eeuss影院在线播放| 无码av中文一区二区三区桃花岛| 三上悠亚在线一区| 在线日韩一区| 久久久久久欧美| 国产精品欧美综合亚洲| 久久久久久久av麻豆果冻| 超碰人人爱人人| 午夜精品久久久久久毛片| 亚洲免费伊人电影在线观看av| 久草福利资源在线观看| 精品系列免费在线观看| 日本10禁啪啪无遮挡免费一区二区| 五月天激情在线| 欧美丰满一区二区免费视频| 中文字幕免费在线看线人动作大片 | 精品日产卡一卡二卡麻豆| 青青青视频在线免费观看| 亚欧美中日韩视频| 国产在线精品一区| 大黄网站在线观看| 日韩一级视频免费观看在线| 一级二级黄色片| 日韩国产精品久久久久久亚洲| 国产在线一区二区三区欧美| 91av久久| 亚洲精品一区二区三区香蕉 | 深夜福利免费在线观看| 亚洲一区日韩精品中文字幕| 4438x全国最大成人| 综合激情婷婷| 亚洲一区二区免费| 最新黄网在线观看| 欧美二区乱c少妇| 欧美性猛交xxxx乱大交少妇| 美女免费视频一区二区| 一本一本a久久| 日韩成人综合网站| 欧美不卡视频一区发布| 99热这里只有精品1| 亚洲啪啪综合av一区二区三区| 91插插插影院| 欧美va天堂在线| 成人激情av| av资源一区| 日韩精品在线免费观看| 亚洲成人第一网站| 中日韩av电影| 天天久久综合网| 欧美精品综合| 国模精品一区二区三区| sis001欧美| 在线亚洲男人天堂| 国产情侣一区二区| 亚洲国产精品久久久久婷婷884 | 国产精品xnxxcom| 欧美寡妇偷汉性猛交| 欧美一级做性受免费大片免费| 精品国产乱码久久久久久天美| 亚洲精品视频久久久| 青青草国产成人av片免费| 一区二区三区免费看| 日韩一二三区| 欧美尤物巨大精品爽| 91ph在线| 精品国产伦理网| 黄色一级片免费在线观看| 中文字幕欧美日韩一区| 色哟哟在线观看视频| 亚洲在线日韩| 欧美亚洲视频一区| 日韩成人一级| 91九色单男在线观看| 欧美日韩在线观看首页| 一区二区国产精品视频| 成 人 黄 色 片 在线播放| 欧美日韩美女视频| 免费成人美女女在线观看| 国产91丝袜在线观看| 好男人www社区| 欧美黄色一区二区| 欧美日韩中文国产一区发布| 国产精品视频首页| 欧美一区二区视频97| www国产在线观看| 亚洲欧美日韩中文在线| 亚洲爆乳无码一区二区三区| 91久久精品一区二区| 久久老司机精品视频| 中文字幕av一区 二区| 亚洲欧美高清在线| 九一九一国产精品| 国产xxxxx在线观看| 中文字幕一区二区三三| 日韩一区二区三区资源| 久久久伦理片| 亚洲一区二区三区视频| 欧美日韩五区| 2019最新中文字幕| 里番在线播放| 久久久精品日本| 成人在线视频成人| 日韩精品免费一线在线观看| 亚洲精品视频91| 欧美福利视频导航| 在线播放国产一区| 日韩欧美在线字幕| 精品视频一区二区在线观看| 成人欧美一区二区三区视频网页| a毛片毛片av永久免费| 菠萝蜜视频在线观看一区| 男人午夜视频在线观看| 免费的成人av| 波多野结衣天堂| 免费在线欧美黄色| 你懂的av在线| 极品av少妇一区二区| 亚洲乱码日产精品bd在线观看| 久久高清免费| 神马影院一区二区| 国产一区二区区别| 欧美日韩国产高清视频| 少妇久久久久| 久久精品日产第一区二区三区精品版 | 91成人在线观看喷潮蘑菇| 国产精品综合二区| 亚洲第一区第二区第三区| 精品系列免费在线观看| 日本高清一区二区视频| 激情综合网天天干| 久久久精品高清| 精品一区二区三区视频| 午夜激情视频网| 国产一区二区不卡| 18深夜在线观看免费视频| 国产精品自拍av| 日本少妇一区二区三区| 国产乱码精品一品二品| 国产精品一区二区无码对白| 波多野洁衣一区| 无码人妻精品一区二区三应用大全| 91丨porny丨国产| 亚洲综合色一区| 欧美极品aⅴ影院| 内射毛片内射国产夫妻| 成人免费小视频| 欧美日韩成人免费观看| 婷婷六月综合网| 免费又黄又爽又猛大片午夜| 欧美日韩一级二级| 99久久夜色精品国产亚洲| 亚洲成人中文字幕| 韩国三级在线观看久| 中文字幕在线看视频国产欧美| 精品黄色免费中文电影在线播放| 久久不射电影网| av中文在线资源| 国产99久久精品一区二区永久免费 | 中文字幕精品综合| 亚洲综合视频网站| 亚洲午夜久久久久久久久电影院| www.av麻豆| 欧美日韩综合在线免费观看| 999免费视频| 日韩av中文字幕在线免费观看| 伦理片一区二区三区| 日韩在线视频免费观看高清中文| 视频在线这里都是精品| 91成人在线观看国产| 成人18视频在线观看| 99视频免费观看蜜桃视频| 偷拍一区二区| 资源网第一页久久久| 国产欧美亚洲一区| 91av视频免费观看| aaa亚洲精品| 东京热无码av男人的天堂| 一区二区三区久久| 国产免费一区二区三区四区五区| 在线不卡中文字幕播放| 午夜成人鲁丝片午夜精品| 上原亚衣av一区二区三区| 77thz桃花论族在线观看| 成人av资源在线播放| 天天操综合520| 在线观看三级网站| 蜜臀av一级做a爰片久久| 亚洲啪av永久无码精品放毛片| 日本一区二区高清| 国产香蕉视频在线| 91精品国产综合久久久蜜臀图片 | 久久的色偷偷| 日本午夜精品一区二区三区| 国模大胆一区二区三区| 午夜久久久精品| 91年精品国产| 欧美日韩国产精品综合| 欧美日韩国产另类不卡| 视频一区二区三区在线看免费看| 久久综合网hezyo| 91精品国产66| 欧美一卡2卡3卡4卡无卡免费观看水多多 | 精品电影一区二区三区| 日本在线视频网| 国产精品91在线| 亚洲精品3区| 精品久久一二三| 国产不卡视频一区二区三区| 国产在线免费看| 欧美三级电影网站| 可以在线观看的黄色| 91精品国产91久久久久久吃药| 日韩视频在线直播| 992tv成人免费观看| 免费一级欧美片在线观看| 亚洲综合色一区| 欧美性猛交xxxx黑人猛交| 四季av日韩精品一区| 久久久久久噜噜噜久久久精品| 少妇精品在线| 欧洲精品视频在线| 国产精一区二区三区| 成熟的女同志hd| 91麻豆精品国产自产在线 | 国产精品美女久久久久久久| 亚洲不卡在线视频| 亚洲免费精彩视频| 欧美7777| 日韩午夜视频在线观看| 日韩激情在线观看| 日本人亚洲人jjzzjjz| 色天天综合色天天久久| 国产在线视频你懂得| 国产精品成人一区| 成人黄色av| 亚洲精品性视频| 亚洲欧美色图小说| 精品久久国产视频| 久久久久国产一区二区三区| 激情av综合| 久久久免费视频网站| 久久久久国产精品人| 国产精品露脸视频| 久久精品久久久久电影| 日韩欧洲国产| 精品这里只有精品| 国产人久久人人人人爽| 最近国语视频在线观看免费播放| 色综合伊人色综合网站| 日韩高清一区| 久激情内射婷内射蜜桃| 国产日产欧美精品一区二区三区| 中文字幕有码视频| 不卡av在线网站| 美女主播精品视频一二三四| 成人在线看视频| 国产精品不卡在线观看| 亚洲第九十九页| 日本不卡免费高清视频| 99久久亚洲精品蜜臀| 911亚洲精选| 色就色 综合激情| 日本中文字幕在线播放| 成人av资源| 日韩1区2区3区| 激情视频在线播放| 亚洲色图校园春色| 二区三区精品| 欧美网站免费观看| 国产精品精品国产色婷婷| 丰满人妻一区二区| 国产精品国产三级国产专播精品人| 999国产精品| 喷水视频在线观看| 欧美日本国产一区| 黄色18在线观看| 一区视频二区视频| 91在线国内视频|