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

解鎖 GitOps 效率:資源清單渲染模式

云計算 云原生
你使用的配置管理工具不會對實施 GitOps 的能力產生重大影響。Helm 和 Kustomize 都滿足了標準化清單集合的需求,并且能夠根據特定部署環境修改這些清單。

GitOps 原則的存在是為了解決在使用 Kubernetes 這樣復雜系統時可見性和協作方面的實際問題。這些原則強調聲明式期望狀態和持續調和的重要性。然而,它們在具體實施上留有很大的解釋空間。我們經常收到關于如何構建 Git 倉庫、使用什么配置管理工具以及如何使用分支等問題。

你使用的配置管理工具不會對實施 GitOps 的能力產生重大影響。Helm 和 Kustomize 都滿足了標準化清單集合的需求,并且能夠根據特定部署環境修改這些清單。這種抽象對于保持清單的 DRY[1](不重復原則)非常方便。

然而,這些抽象也帶來了新的問題。GitOps 工具通常直接引用它們來確定期望狀態。對 Helm Chart 或 Kustomization 基礎的更改就是對抽象的更改;這種更改對部署到環境中的清單的真實影響并不明確。

Argo CD 在運行時渲染清單的示意圖

核心前提

Kubernetes 集群的期望狀態不是一個 Helm Chart 或 Kustomization;而是由這些配置管理工具渲染出的清單。遺憾的是,大多數組織在實踐 GitOps 時通常會將其抽象出來存儲在 Git 中。在 git 和 kubectl 之間的任何抽象都可能產生意外效果;你不應該在應用之前修改你的真實來源。

存儲在 Git 中并經過審批的期望狀態不應該包含任何與將要應用到集群的內容不同的抽象。它應該像容器鏡像一樣被對待,是不可變的并按原樣應用到集群中。讓 GitOps 工具在將清單應用到集群時運行 Helm 或 Kustomize,就像讓你的容器在啟動時運行 apt-get install 一樣。

解決方案就是渲染清單模式。對 GitOps 倉庫主干(即 main 分支)的每次更改都會觸發 CI 工作流來渲染清單,并將渲染后的清單按原樣存儲在 Git 中。這個制品代表了集群的期望狀態,沒有任何混淆。

渲染后的清單應該被分離到特定環境的分支中。當這些分支發生更改時,提交之間的清單差異將完全透明。你可以清楚地看到 main 分支上的更改對每個環境的影響。

Argo CD 應用在 CI 中渲染的清單的示意圖

渲染清單模式的優勢一目了然:

  • 消除配置管理工具(如 Helm、Kustomize)引入的混淆,提高期望狀態的可見性。
  • 通過真正不可變的期望狀態降低內置工具帶來的風險。
  • 通過一次性渲染清單提高 Argo CD 的性能。
  • 基于環境設置部署和保護策略。

值得注意的是,這種模式有兩個缺點:

  • 將清單渲染轉移到 CI 引擎增加了復雜性。
  • 它與渲染明文密鑰的工具(如 Sealed Secrets)配合不好。

你可能仍然持懷疑態度,讓我們詳細分析一下。

這不就是 Gitflow 嗎?

讓我們先解決這個問題。表面上看,渲染清單模式可能聽起來像 Gitflow[2],但實際上并不是。你可以繼續在 GitOps 倉庫中使用短期特性分支或主干開發模式。

特定環境的分支并不用于境之間的 promotion[3] - 一個環境分支中的更改不會被合并到另一個分支中。相反,這些分支的內容由自動化工作流維護,并基于 main 分支的內容生成。

可以將這些分支的內容視為一個發布包,其中包含了環境期望狀態的純(渲染后的)清單。就像貢獻者永遠不應該拉取容器鏡像、修改內容并推回注冊表一樣,任何人都不應該直接提交到特定環境的分支。它們是基于 main 分支內容生成的制品。

消除混淆以提高可見性

看看下面這個在 GitOps 倉庫中維護的 Helm Umbrella chart[4] 更改的例子:

![顯示依賴版本變更的 Helm Umbrella Chart 截圖](https://images.akuity.io/blog/th](https://images.akuity.io/blog/the-rendered-manifests-pattern/helm-dep-update-diff.png)

看這個差異,很難直觀地知道結果會是什么。你只知道 Helm chart 依賴的版本在改變。它沒有提供渲染并應用到集群的清單變更的上下文。

再看一個使用 Kustomize 的例子:

顯示 Kustomization 基礎更改的截圖

要了解會發生什么變化,你需要檢查使用這個 Kustomize 基礎的每個環境。

如果你想確定最終的清單(實際部署到集群中的資源),你需要運行 helm template 或 kustomize build。在 Argo CD 中,repo server 執行這個功能。每當 Application 的源發生變化或緩存過期時,它就會運行 helm template、kustomize build 或使用 CMP 的任何自定義工具來生成清單。然后這些清單被傳遞給 application controller 執行 kubectl apply。

清單的更改應該被持續集成并產生不可變的制品,就像代碼一樣。將清單生成移到 CI 工作流中并存儲在特定環境的分支上,將提供一個不可變的期望狀態,其中的更改清晰可見。

使用上面的 Helm chart 例子,這就是使用渲染清單模式時差異的樣子。chart 版本的一行更改導致生成的清單中有近 1,000 行的變化。

通過不可變期望狀態降低工具風險

GitOps 工具的升級可能會導致內置工具鏈[5](即 Kustomize、Helm)的升級,這可能會影響它管理的每個環境。記住 - git 和 kubectl 之間的任何抽象都可能產生意外效果。

當升級 Argo CD 的差異看起來是這樣的...

...你怎么能確定這對這個 Argo CD 實例中每個 Application 渲染的清單有什么影響?(在這個例子中,從 5.42.0 升級到 5.43.0 的 argo-cd Helm chart 將 Argo CD 升級到 v2.8.0,其中包括將 helm 版本升級到 3.12.0。)

持續集成的核心前提是快速反饋,在問題進入生產系統之前發現它們。這個原則同樣適用于描述 Kubernetes 集群期望狀態的清單。當 GitOps 工具負責生成清單時,問題直到更改被批準、合并到 main 并嘗試應用到集群后才會被發現。在這個時候,修復它需要重復整個過程。

通過將清單生成移到 CI 工作流中并將清單存儲在特定環境的分支中,你可以為集群的期望狀態獲得保證的穩定性。原始 YAML 被捕獲在一個不可變的版本(提交)中。Argo CD 不再轉換 Git 中的內容;它直接將其應用到集群中而不做修改。

提升 Argo CD 的性能

在 Argo CD 中運行 Kustomize 和 Helm 是很消耗資源的。每次 Application 的目標版本發生變化、緩存過期或有人執行強制刷新時,repo server 都需要重新生成清單。

當你查看大型 Argo CD 部署中 repo server 的資源請求時,很容易看出清單生成有多消耗資源。我見過 repo server 被分配 32 個 CPU 和 200GiB 內存的情況!

這在單體倉庫中尤其明顯,其中一個文件夾中清單的更改可能會不必要地導致 Argo CD 為許多 Application 重新生成清單。

通過利用 CI 引擎生成原始清單并將其存儲在特定環境的分支上,這個過程只需要使用按需計算資源執行一次(而不是持續為 repo server 預留資源)。

自動化開發環境并保護生產環境

到目前為止,這種模式的優勢主要可以歸因于"你應該在 CI 中渲染清單"這一部分。第二部分"并將它們存儲在特定環境的分支中"現在發揮作用了。

將渲染后的清單分離到分支中,可以為每個環境設置不同的策略。

再次考慮顯示 Kustomize 基礎更改的差異。

如果不使用渲染清單模式并使用自動同步策略,這個更改將同時應用到每個環境。

使用渲染清單模式,在主分支上更改 kustomize 基礎將導致在 CI 中渲染清單。對于非生產環境,清單可能會被自動部署,所以它們會直接推送到特定環境的分支。

大多數組織對生產環境做同樣的事情感到不舒服(很少有組織成熟到可以實踐持續部署)。相反,為生產環境渲染的清單可以推送到一個短期分支。然后,創建一個 PR,提議對包含現有期望狀態的特定環境分支進行更改。

因為清單已經渲染完成,PR 中顯示的差異將代表沒有混淆或抽象的更改。那些審查和批準 PR 的人可以輕松理解更改的真實影響。

大多數源代碼管理(SCM)提供商都有廣泛的分支權限控制[6]。使用這些控制,你可以確保對生產環境期望狀態的任何更改都遵循了正確的流程。例如,代碼所有者已經給出批準審查,所有需要的檢查都已成功運行,并且永遠不會直接推送到生產分支。

你可能會想,"好吧,我可以在 Argo CD 中對生產環境的 Application 使用手動同步來獲得類似的解決方案。"雖然這是對的,但缺點是當你的 Application 處于未同步狀態時,期望狀態是模糊的。Argo CD 顯示了差異,但在執行同步時生成的清單可能會有所不同。

缺點

增加了 CI 復雜性

不可否認,這種模式增加了額外的 CI 自動化要求。不應低估使用 Argo CD 進行清單生成的簡單性。Argo CD 在集成 Helm 和 Kustomize 并提供可靠的清單生成方面做了大量工作。

對于 Argo CD,已經有幾次嘗試將 Application 渲染清單的差異添加到 pull request 中。我創建了一個名為 argocd-diff-action 的 GitHub Action 來解決這個問題(它目前已經停止維護,因為我選擇使用渲染清單模式為我的 Kubernetes 集群的期望狀態生成不可變的制品,并提供清晰和信息豐富的差異)。Zapier 最近開源了他們的內部工具 `kubechecks`[7],它執行類似的功能,并添加了策略檢查等功能。

在 Akuity,我們創建了一個內部使用的工具來采用渲染清單模式。雖然該項目仍在積極開發中,但目標是將其開源,這樣 Argo CD 用戶就可以使用他們現有的清單渲染定義(即 Application 清單),并使用該工具在 CI 中而不是在 Argo CD 中渲染它們。

渲染明文密鑰

像 Kustomize + SOPS 這樣的 Kubernetes Secrets 管理工具與渲染清單模式不兼容。它們允許用戶在 Git 中存儲加密的密鑰,并依賴在集群中運行的工具來渲染清單和解密密鑰。

這對于渲染清單模式來說并不理想,因為解密后的密鑰會以明文形式出現在特定環境的分支中。

在采用這種模式之前,建議使用像 External Secrets Operator[8] 這樣的工具,它使用 ExternalSecret[9] 資源,這些資源包含對 SecretStore 中數據的引用,可以安全地存儲在 Git 中。然后它使用集群內控制器基于 ExternalSecrets 生成 Kubernetes Secret。在我們的博客文章 如何使用 GitOps 管理 Kubernetes 密鑰?[10] 中,我們解釋了為什么這是我們首選的方法,無論你是否使用渲染清單模式。

結論

雖然 GitOps 原則強調聲明式期望狀態和持續調和,但在構建 Git 倉庫、選擇配置管理工具和管理分支方面留下了很大的解釋空間。渲染清單模式通過確保存儲在 Git 中的期望狀態保持清晰和不可變,并且在應用到集群時不進行轉換或抽象,解決了這些問題。

這種模式通過提高可見性、消除混淆和降低工具風險,實現了更好的安全性和更安全的變更管理。它通過將清單生成過程轉移到 CI 工作流中,提高了性能,特別是在大型 Argo CD 部署中。再加上為每個環境設置不同策略的能力,為你的 GitOps 工作流增加了靈活性和控制,同時保護生產環境。

大多數源代碼管理(SCM)提供商都有廣泛的分支權限控制[11]。使用這些控制,你可以確保對生產環境期望狀態的任何更改都遵循了正確的流程。例如,代碼所有者已經給出批準審查,所有需要的檢查都已成功運行,并且永遠不會直接推送到生產分支。

你可能會想,"好吧,我可以在 Argo CD 中對生產環境的 Application 使用手動同步來獲得類似的解決方案。"雖然這是對的,但缺點是當你的 Application 處于未同步狀態時,期望狀態是模糊的。Argo CD 顯示了差異,但在執行同步時生成的清單可能會有所不同。

缺點

增加了 CI 復雜性

不可否認,這種模式增加了額外的 CI 自動化要求。不應低估使用 Argo CD 進行清單生成的簡單性。Argo CD 在集成 Helm 和 Kustomize 并提供可靠的清單生成方面做了大量工作。

對于 Argo CD,已經有幾次嘗試將 Application 渲染清單的差異添加到 pull request 中。我創建了一個名為 argocd-diff-action 的 GitHub Action 來解決這個問題(它目前已經停止維護,因為我選擇使用渲染清單模式為我的 Kubernetes 集群的期望狀態生成不可變的制品,并提供清晰和信息豐富的差異)。Zapier 最近開源了他們的內部工具 `kubechecks`[12],它執行類似的功能,并添加了策略檢查等功能。

在 Akuity,我們創建了一個內部使用的工具來采用渲染清單模式。雖然該項目仍在積極開發中,但目標是將其開源,這樣 Argo CD 用戶就可以使用他們現有的清單渲染定義(即 Application 清單),并使用該工具在 CI 中而不是在 Argo CD 中渲染它們。

渲染明文密鑰

像 Kustomize + SOPS 這樣的 Kubernetes Secrets 管理工具與渲染清單模式不兼容。它們允許用戶在 Git 中存儲加密的密鑰,并依賴在集群中運行的工具來渲染清單和解密密鑰。

這對于渲染清單模式來說并不理想,因為解密后的密鑰會以明文形式出現在特定環境的分支中。

在采用這種模式之前,建議使用像 External Secrets Operator[13] 這樣的工具,它使用 ExternalSecret[14] 資源,這些資源包含對 SecretStore 中數據的引用,可以安全地存儲在 Git 中。然后它使用集群內控制器基于 ExternalSecrets 生成 Kubernetes Secret。在我們的博客文章 如何使用 GitOps 管理 Kubernetes 密鑰?[15] 中,我們解釋了為什么這是我們首選的方法,無論你是否使用渲染清單模式。

結論

雖然 GitOps 原則強調聲明式期望狀態和持續調和,但在構建 Git 倉庫、選擇配置管理工具和管理分支方面留下了很大的解釋空間。渲染清單模式通過確保存儲在 Git 中的期望狀態保持清晰和不可變,并且在應用到集群時不進行轉換或抽象,解決了這些問題。

這種模式通過提高可見性、消除混淆和降低工具風險,實現了更好的安全性和更安全的變更管理。它通過將清單生成過程轉移到 CI 工作流中,提高了性能,特別是在大型 Argo CD 部署中。再加上為每個環境設置不同策略的能力,為你的 GitOps 工作流增加了靈活性和控制,同時保護生產環境。

本文使用 Cursor 轉譯,原文地址:https://akuity.io/blog/the-rendered-manifests-pattern

參考資料

[1]DRY: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself。

[2]Gitflow: https://nvie.com/posts/a-successful-git-branching-model/。

[3]環境之間的 promotion: https://developers.redhat.com/articles/2022/07/20/git-workflows-best-practices-gitops-deployments。

[4]Helm Umbrella chart: https://www.youtube.com/watch?v=MlAWr8bVr0I&t=170s。

[5]內置工具鏈: https://github.com/argoproj/argo-cd/blob/e37ff6f0ae02db0739bc480e987c19bd4573e082/hack/tool-versions.sh。

[6]分支權限控制: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule。

[7]kubechecks: https://github.com/zapier/kubechecks。

[8]External Secrets Operator: https://external-secrets.io/latest/。

[9]ExternalSecret: https://external-secrets.io/latest/api/externalsecret/。

[10]如何使用 GitOps 管理 Kubernetes 密鑰?: https://akuity.io/blog/how-to-manage-kubernetes-secrets-gitops/。

[11]分支權限控制: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule。

[12]kubechecks: https://github.com/zapier/kubechecks。

[13]External Secrets Operator: https://external-secrets.io/latest/。

[14]ExternalSecret: https://external-secrets.io/latest/api/externalsecret/。

[15]如何使用 GitOps 管理 Kubernetes 密鑰?: https://akuity.io/blog/how-to-manage-kubernetes-secrets-gitops/。

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

2020-11-23 08:48:00

Kubernetes容器開發

2023-03-22 18:31:10

Android頁面優化

2021-07-29 06:37:55

KubernetesKubeLinter工具

2025-07-02 02:10:00

2020-06-15 07:00:00

GitOpsKubernetesDevOps

2025-07-02 07:53:40

技巧.NET開發

2017-08-03 12:50:49

Web圖片資源瀏覽器

2025-04-29 10:00:00

Kubernete云原生Helm

2023-10-07 07:51:55

FluxCDKubernetes

2023-10-27 07:36:36

2013-11-20 13:04:41

css瀏覽器渲染

2015-09-08 10:28:52

數據中心資源清單

2022-08-16 22:39:01

Argo CDKubernetes

2022-06-30 11:36:10

KubeSphereGitOpsLinux

2010-11-09 13:47:17

SQL Server資

2023-04-26 12:46:43

DockerSpringKubernetes

2022-04-01 10:51:33

TektonArgoCDGitOps

2020-09-11 19:38:31

GitOps倉庫CI

2024-01-03 15:07:10

點贊
收藏

51CTO技術棧公眾號

亚洲国产日韩欧美在线图片| 久久夜色精品一区| 社区色欧美激情 | 手机av在线网站| 久久亚洲资源| 91亚洲国产成人精品一区二三| 欧美重口另类videos人妖| 亚洲精品国产熟女久久久| 高清亚洲高清| 日韩毛片一二三区| 精品欧美国产| 在线免费av片| 伊人久久综合| 中文字幕亚洲欧美在线| 亚洲成人福利视频| 伊人久久在线| 一区二区三区中文字幕电影 | 亚洲黄色av女优在线观看| 成人小视频在线看| 亚洲男同gay网站| 久久久久久一二三区| 亚洲精品女av网站| 欧美性猛交bbbbb精品| 91精品国产乱码久久久久久| 精品视频在线观看日韩| 日韩欧美理论片| 亚洲第一影院| 亚洲成人午夜影院| 在线视频欧美一区| 欧美女优在线| 国产91精品免费| 国产欧美亚洲视频| 久久久蜜桃一区二区| 伊人激情综合| 欧美福利小视频| 国产一级淫片久久久片a级| 林ゆな中文字幕一区二区| 91精品国产综合久久精品| 免费黄色特级片| www欧美xxxx| 亚洲欧美区自拍先锋| 五月天久久狠狠| 日漫免费在线观看网站| 国产69精品久久久久毛片| 91精品国产综合久久香蕉| 激情视频网站在线观看| 国产精品呻吟| 性欧美激情精品| 久草免费在线视频观看| 91高清一区| 久久久国产影院| www.黄色com| jlzzjlzz亚洲女人| 国产亚洲精品久久久优势| 人妻无码一区二区三区| 麻豆一区二区麻豆免费观看| 精品美女在线观看| zjzjzjzjzj亚洲女人| 日韩在线视频一区二区三区| 日韩一区和二区| 伊人五月天婷婷| 蜜桃精品视频| 欧美成人艳星乳罩| 国产精品果冻传媒| 久久夜色电影| 亚洲欧美成人一区二区在线电影| 久久偷拍免费视频| 欧美极品中文字幕| 在线一区二区日韩| 成年人二级毛片| 在线免费观看日本欧美爱情大片| 久久精品国产成人| 国内偷拍精品视频| 亚洲性视频h| 午夜精品视频在线| 六月丁香婷婷综合| 日韩成人一区二区三区在线观看| 国产欧美精品一区二区| 成人免费一区二区三区| 韩国视频一区二区| 99在线热播| 污视频网站免费观看| 久久久久国产精品人| 日韩精品一区二区三区丰满| 日本电影全部在线观看网站视频| 亚洲欧美aⅴ...| 少妇高潮毛片色欲ava片| 亚洲天堂资源| 欧美嫩在线观看| 韩国黄色一级片| 亚洲另类av| 日韩中文字在线| 国产在线观看你懂的| 香蕉国产精品偷在线观看不卡| 国产高清在线不卡| 99热这里只有精品在线| 99久久免费视频.com| 日韩免费电影一区二区| 综合图区亚洲| 日韩欧美在线免费| 天堂在线精品视频| 亚洲人和日本人hd| 欧美成人激情在线| 欧美超碰在线观看| 国产盗摄精品一区二区三区在线| 久久影院理伦片| 免费黄网站在线| 精品久久久中文| 亚洲精品在线视频播放| 天堂99x99es久久精品免费| www.久久久久久.com| 国产做受高潮漫动| 精品亚洲porn| 欧美韩国日本精品一区二区三区| 欧美a免费在线| 狠狠色狠狠色综合日日五| 手机在线国产视频| 一本久久青青| 欧美精品电影免费在线观看| 成人黄色片在线观看| 99久久99久久精品免费看蜜桃| 在线观看欧美亚洲| 澳门av一区二区三区| 精品久久人人做人人爽| 911国产在线| 日韩在线播放一区二区| 国产精品国产精品国产专区不卡| 永久免费av在线| 日韩欧美视频一区二区三区| 一级黄色免费视频| 这里只有精品在线| 成人网欧美在线视频| 国产日韩精品在线看| 精品国产91久久久| 9.1在线观看免费| 综合国产在线| 成人美女av在线直播| 成人福利在线| 色94色欧美sute亚洲线路一ni| 国产香蕉精品视频| 欧美日韩精品免费观看视频完整| 91精品久久久久久久久久久| 国产大片在线免费观看| 欧美网站在线观看| 国产激情视频网站| 亚洲人成在线影院| 成人91免费视频| 天堂8中文在线| 日韩美女天天操| www青青草原| 国产69精品久久99不卡| 91免费版看片| 久久九九精品视频| 欧美日本亚洲视频| 亚洲av无码一区二区三区性色 | 蜜臀精品一区二区三区在线观看| 久久免费看av| av日韩亚洲| 亚洲欧美国产一本综合首页| www亚洲视频| 久久亚洲综合色一区二区三区| 久久精品国产精品亚洲色婷婷| 国产一区在线电影| 7777kkkk成人观看| 男人久久精品| 欧美亚洲国产一卡| 久草福利资源在线| 国产乱码一区二区三区| av 日韩 人妻 黑人 综合 无码| 日本免费精品| 97视频在线观看网址| 日本亚洲欧美| 欧美在线观看视频一区二区| 精品一区二区在线观看视频| 国产在线播精品第三| 国产精品自拍合集| 日韩精品亚洲aⅴ在线影院| 日本精品一区二区三区在线播放视频 | 999热视频在线观看| 日本三级在线观看网站| 亚洲国产精品999| 久久久黄色大片| 国产精品国产自产拍高清av王其 | 成人激情小说网站| 日韩av黄色网址| 日本道不卡免费一区| 91久久久久久久久久久久久| 男人天堂亚洲| 亚洲精品在线不卡| 国产一区二区三区黄片| 亚洲国产三级在线| 99久久久无码国产精品衣服| 国产一区视频网站| 免费在线观看的av网站| 日韩免费特黄一二三区| 成人免费看片网址| 欧美性理论片在线观看片免费| 久久网福利资源网站| 天天操天天干天天干| 欧美午夜宅男影院| 蜜桃色一区二区三区| 日本中文字幕不卡| 成人免费性视频| 不卡一区综合视频| 国产乱码一区| 亚洲国产精选| 欧美在线影院在线视频| av在线app| 亚洲精选一区二区| 国产黄色av网站| 欧亚洲嫩模精品一区三区| 免费日韩在线视频| 亚洲国产激情av| 一级特黄a大片免费| 美女国产一区二区| 乱妇乱女熟妇熟女网站| 亚洲一区二区三区无吗| 日韩福利影院| 岛国精品一区| 91九色国产视频| 韩国三级一区| 欧美中文字幕第一页| 97超碰资源站在线观看| 国产亚洲日本欧美韩国| 四季av日韩精品一区| 91精品黄色片免费大全| 波多野结衣一区二区三区在线| 亚洲狠狠爱一区二区三区| 香蕉久久久久久久| 91偷拍与自偷拍精品| 中文字幕永久免费| 国产精品一二三区在线| 冲田杏梨av在线| 欧美亚洲专区| 日本少妇高潮喷水视频| 欧美另类亚洲| 影音先锋男人的网站| 日韩理论片av| 亚洲国产精品一区二区第四页av| 亚洲日本三级| 欧美日韩国产精品一卡| 青青久久av| 国产激情美女久久久久久吹潮| 成人在线分类| 51国偷自产一区二区三区| 婷婷精品久久久久久久久久不卡| 国产精品免费一区| 国产经典一区| 国产精品日韩在线| 成人开心激情| 国产精品久久久久久久久久99| 小早川怜子影音先锋在线观看| 国内偷自视频区视频综合| 丰满的护士2在线观看高清| 欧美大片免费看| 五月婷婷视频在线观看| 欧美精品免费播放| 日本大胆在线观看| 国产综合在线视频| 激情视频网站在线播放色| 91精品国产精品| 激情aⅴ欧美一区二区欲海潮| 538国产精品一区二区免费视频| 密臀av在线播放| 欧洲成人性视频| 3d性欧美动漫精品xxxx软件| 国产精品国产亚洲伊人久久| av成人亚洲| 91在线视频成人| 亚洲经典视频| 久久精品国产一区二区三区日韩| 少妇精品久久久一区二区三区| 日韩av一区二区三区在线| 成人在线国产| 国产精品啪啪啪视频| 伊人久久久大香线蕉综合直播| 人妻精品无码一区二区三区| 久热国产精品| 嫩草视频免费在线观看| 国产精品白丝av| 久久一区二区电影| 国产日产精品一区| 蜜桃av.com| 午夜亚洲国产au精品一区二区| 精品国产午夜福利| 欧美日韩极品在线观看一区| 精品国产黄色片| 精品网站999www| 日韩免费网站| 国内精品视频一区| 国产69精品久久久久9999人| 痴汉一区二区三区| 欧美日韩一区二区综合| 久久综合亚洲精品| 久久久久久穴| 最好看的中文字幕| 国产亚洲精品aa| 欧美精品色哟哟| 在线亚洲一区二区| 高h调教冰块play男男双性文| 亚洲欧洲在线视频| 欧洲黄色一区| 国产精品小说在线| 欧美激情极品| 亚洲精品自在在线观看| 99精品国产一区二区青青牛奶| 亚洲人辣妹窥探嘘嘘| 成人免费看的视频| 男人晚上看的视频| 一本久久a久久免费精品不卡| 99久久精品日本一区二区免费| 亚洲精品日韩在线| 欧美人与牲禽动交com| 国产精品入口免费视| 久久97精品| 玖玖精品在线视频| 日韩av网站在线观看| 熟妇人妻久久中文字幕| 亚洲少妇最新在线视频| 中文字幕xxxx| 日韩经典中文字幕| 日本在线视频网址| 91精品视频在线| 成人在线免费视频观看| 狠狠爱免费视频| 国产v综合v亚洲欧| 日韩精品一区二区三区在线视频| 欧美特级www| 天天色棕合合合合合合合| 久久国产精品视频| 日韩久久99| 亚洲欧洲一区二区| 首页欧美精品中文字幕| 特级西西人体4444xxxx| 亚洲综合在线观看视频| 国产麻豆精品一区| www国产91| 久久国内精品| 亚洲精蜜桃久在线| 日本不卡视频一二三区| 日韩人妻一区二区三区| 欧美日韩免费在线| 先锋av资源站| 18久久久久久| 欧洲vs亚洲vs国产| 国产极品在线视频| 99re热这里只有精品视频| 国产中文字字幕乱码无限| 日韩一区二区三区免费看 | 欧美激情精品久久久久| 久久丁香四色| 男女裸体影院高潮| 国产成人免费视频网站高清观看视频 | 成人福利免费在线观看| 欧美大黑帍在线播放| 岛国一区二区在线观看| 欧美一级高潮片| 亚洲国产精品va在线观看黑人| freexxx性亚洲精品| 精品国产一区二区三区免费| 在线亚洲自拍| 91视频免费观看网站| 在线精品视频免费播放| 91精品国产91久久久久游泳池 | 成人免费毛片视频| 在线视频中文亚洲| 成人污污www网站免费丝瓜| 三上悠亚免费在线观看| 高清shemale亚洲人妖| 日本系列第一页| 精品伊人久久97| 免费在线观看一区| 手机福利在线视频| 粉嫩在线一区二区三区视频| 日本熟妇毛茸茸丰满| 亚洲美女中文字幕| 国产精品无码久久久久| 天天想你在线观看完整版电影免费| 懂色av一区二区在线播放| 97超碰人人干| 色偷偷噜噜噜亚洲男人的天堂| 亚洲高清999| 成人一级片网站| 中文字幕中文字幕中文字幕亚洲无线| 国产99视频在线| 97在线免费观看| 成人影院在线| 亚洲色图欧美日韩| 色婷婷激情综合| 在线看福利影| 欧美精品一区三区在线观看| 久久精品国产**网站演员| 精品无码免费视频| 一区二区三区四区视频| 亚洲日本va中文字幕| 激情内射人妻1区2区3区| 亚洲精品高清在线| 男人的天堂在线| 91精品国产一区二区三区动漫| 亚洲综合精品四区|