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

騰訊開源的 Kubernetes 多集群管理和跨集群編排工具 Clusternet

開源
Clusternet(Cluster Internet) 是一個騰訊開源的 Kubernetes 多集群管理云原生項目,可幫助你像訪問 Internet 一樣輕松管理數以百萬計的 Kubernetes 集群。

[[420539]]

Clusternet(Cluster Internet) 是一個騰訊開源的 Kubernetes 多集群管理云原生項目,可幫助你像訪問 Internet 一樣輕松管理數以百萬計的 Kubernetes 集群。無論集群運行在公共云、私有云、混合云還是邊緣,Clusternet 都可以讓你管理/訪問它們,就像它們在本地運行一樣。這也有助于消除為每個集群處理不同管理工具的需要。Clusternet 還可以幫助你從托管集群中的一組 API 將應用程序部署和協調到多個集群。當你的集群在 VPC 網絡、邊緣或防火墻后面運行時,Clusternet 可以通過可配置的方式設置網絡隧道。

Clusternet 還提供了一個 Kubernetes 風格的 API,你可以繼續使用 Kubernetes 的方式,比如 KubeConfig,來訪問某個管理的 Kubernetes 集群,或者一個 Kubernetes 服務。

以 Clusternet 項目為基礎實現多云多集群管理平臺,為用戶提供跨云、跨集群、跨 region/zone 的分布式容器服務,將更好的滿足多種場景需求。

1 架構

下圖是 Clusternet 的一個簡單的架構圖:

Clusternet 主要由 clusternet-agent 和 clusternet-hub 兩個組件組成,非常輕量級。

其中 clusternet-agent 組件需要部署在各個子集群中,主要負責:

  • 將當前集群作為子集群自動注冊到父集群,也稱為子集群 ManagedCluster
  • 上報當前集群元信息,包括 Kubernetes 版本、運行平臺、healthz/readyz/livez 健康狀態、節點狀態等
  • 與父集群建立一個 TCP 全雙工的 websocket 安全隧道連接

clusternet-hub 組件部署和運行在父集群中,通過 AA(Aggregated APIServer) 的方式進行工作,主要負責:

  • 批準各個子集群注冊請求,并為子集群創建專用資源,例如 namespace、ServiceAccount 和 RBAC 規則等
  • 作為聚合的 apiserver (AA),用作 websocket 服務器,維護來自子集群的多個 websocket 連接
  • 提供 Kubernstes 風格的 REST API 來重定向/代理/升級請求到每個子集群 ( 從一組 API 協調應用程序并將其部署到多個集群;

 注意:由于 clusternet-hub 作為 AA 運行,所以需要確保父級 apiserver 可以訪問該 clusternet-hub 服務。

2 概念

對于每個想要被管理的 Kubernetes 集群,我們稱之為子集群,子集群注冊到的集群,我們稱之為父集群。組件 clusternet-agent 在子集群中運行,clusternet-hub 在父集群中運行。Clusternet 支持向不同集群分發和管理各種應用資源,包括原生 Kubernetes 各類資源(Deployment/StatefulSet/ConfigMap/Secret 等)、各類 CRD 資源,以及 HelmChart 應用等等。

下圖是 Clusternet 的多集群應用分發模型,其中綠色的模塊是需要用戶去創建的,紫色的模塊是 Clusternet 內部做流轉的資源對象,此外 Clusternet 還提供了 kubectl 插件,可以通過 kubectl clusternet apply 命令來創建資源。

  • ClusterRegistrationRequest 是 clusternet-agent 在父集群中為子集群注冊創建的對象
  • ManagedCluster 是 clusternet-hub 在批準 ClusterRegistrationRequest 后在父集群中創建的一個對象
  • HelmChart 是一個 helm chart 配置的對象
  • Subscription 定義了訂閱者想要安裝到集群中的資源,對于每個匹配的集群,將在其專用命名空間中創建一個相應的 Base 對象
  • Localization 和 Globalization 將以優先級來定義 Override,數字越小則優先級越低,Localization是命名空間范圍的資源,而 Globalization 是集群范圍的。
  • Base 對象將被渲染為應用了 Globalization 和 Localization 設置 Description 對象,Descritpion 是最終要部署到目標子群中的資源

3 部署

從上面的架構可以看出我們需要在子集群和父集群中分別部署 clusternet-agent 和 clusternet-hub 組件。

首先在集群中 Clone 項目代碼:

  1. $ git clone https://github.com/clusternet/clusternet.git 

在父集群中部署 clusternet-hub 組件:

  1. $ kubectl apply -f deploy/hub 

然后為 clusternet-agent 創建一個 bootstrap token:

  1. $ # 下面命令將創建一個 bootstrap token:07401b.f395accd246ae52d 
  2. $ kubectl apply -f manifests/samples/cluster_bootstrap_token.yaml 

然后在子集群中部署 clusternet-agent,幫助子集群注冊到父集群,clusternet-agent 可以配置以下三種同步模式(通過標志 --cluster-sync-mode 配置):

  • Push(推) 模式是指父集群的所有資源變化將由 clusternet-hub 自動同步、推送并應用到子集群
  • Pull(拉) 模式表示 clusternet-agent 將自動 watch、同步和應用所有從父集群到子集群的資源變化
  • Dual 推拉結合模式,這種模式強烈推薦,通常與特性 AppPusher 一起使用

特性 AppPusher 在 agent 端工作,這主要是出于以下兩個原因:

  • 不建議在注冊后改變同步模式,這可能會帶來不一致的配置和行為,這就是為什么強烈推薦雙模式。當雙模式被設置后,AppPusher 提供了一種方法來幫助將 Push 模式切換到 Pull 模式,而無需真正更改標志 --cluster-sync-mode,反之亦然。
  • 出于安全考慮,如子集群的安全風險等。
  1. 當一個子集群禁用 AppPusher 時,父集群不會向其部署任何應用程序,即使設置為 Push 或 Dual 模式,這個時候,這個子集群的工作方式就像 Pull 模式。
  2. 要部署的資源被表示為 Description 對象,你也可以運行你自己的控制器來 watch 該對象的變化,然后來分發和部署資源。

部署 clusternet-agent 后,首先要創建一個包含集群注冊用的 Token 的 Secret:

  1. $ # create namespace clusternet-system if not created 
  2. $ kubectl create ns clusternet-system 
  3. $ # here we use the token created above 
  4. $ PARENTURL=https://192.168.10.10 REGTOKEN=07401b.f395accd246ae52d envsubst < ./deploy/templates/clusternet_agent_secret.yaml | kubectl apply -f - 

上面的 PARENTURL 是你想注冊的父集群的 apiserver 地址,必須指定 https 方案,它是目前唯一支持的方案。如果 apiserver 不是在標準的 https 端口(:443)上監聽,請在 URL 中指定端口號,以確保代理連接到正確的端點,例如 https://192.168.10.10:6443。

  1. $ # 部署之前,根據自己的需求更新同步模式 
  2. $ kubectl apply -f deploy/agent 

部署完成后檢查集群注冊情況:

  1. $ # clsrr 是 ClusterRegistrationRequest 對象的別名 
  2. $ kubectl get clsrr 
  3. NAME                                              CLUSTER ID                             STATUS     AGE 
  4. clusternet-dc91021d-2361-4f6d-a404-7c33b9e01118   dc91021d-2361-4f6d-a404-7c33b9e01118   Approved   3d6h 
  5. $ kubectl get clsrr clusternet-dc91021d-2361-4f6d-a404-7c33b9e01118 -o yaml 
  6. apiVersion: clusters.clusternet.io/v1beta1 
  7. kind: ClusterRegistrationRequest 
  8. metadata: 
  9.   labels: 
  10.     clusters.clusternet.io/cluster-id: dc91021d-2361-4f6d-a404-7c33b9e01118 
  11.     clusters.clusternet.io/cluster-name: clusternet-cluster-dzqkw 
  12.     clusters.clusternet.io/registered-by: clusternet-agent 
  13.   name: clusternet-dc91021d-2361-4f6d-a404-7c33b9e01118 
  14. spec: 
  15.   clusterId: dc91021d-2361-4f6d-a404-7c33b9e01118 
  16.   clusterName: clusternet-cluster-dzqkw 
  17.   clusterType: EdgeClusterSelfProvisioned 
  18. status: 
  19.   caCertificate: REDACTED 
  20.   dedicatedNamespace: clusternet-dhxfs 
  21.   managedClusterName: clusternet-cluster-dzqkw 
  22.   result: Approved 
  23.   token: REDACTED 

在 ClusterRegistrationRequest 被批準后,狀態將被更新,如果需要的話,可以用相應的憑證來訪問父集群。這些憑證已經用指定范圍內的 RBAC 規則設置了,可以查看下面的兩個規則。

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: ClusterRole 
  3. metadata: 
  4.   annotations: 
  5.     clusternet.io/autoupdate: "true" 
  6.   labels: 
  7.     clusters.clusternet.io/bootstrapping: rbac-defaults 
  8.     clusters.clusternet.io/cluster-id: dc91021d-2361-4f6d-a404-7c33b9e01118 
  9.     clusternet.io/created-by: clusternet-hub 
  10.   name: clusternet-dc91021d-2361-4f6d-a404-7c33b9e01118 
  11. rules: 
  12.   - apiGroups: 
  13.       - clusters.clusternet.io 
  14.     resources: 
  15.       - clusterregistrationrequests 
  16.     verbs: 
  17.       - create 
  18.       - get 
  19.   - apiGroups: 
  20.       - proxies.clusternet.io 
  21.     resourceNames: 
  22.       - dc91021d-2361-4f6d-a404-7c33b9e01118 
  23.     resources: 
  24.       - sockets 
  25.     verbs: 
  26.       - '*' 
  27.  
  28. --- 
  29.  
  30. apiVersion: rbac.authorization.k8s.io/v1 
  31. kind: Role 
  32. metadata: 
  33.   annotations: 
  34.     clusternet.io/autoupdate: "true" 
  35.   labels: 
  36.     clusters.clusternet.io/bootstrapping: rbac-defaults 
  37.     clusternet.io/created-by: clusternet-hub 
  38.   name: clusternet-managedcluster-role 
  39.   namespace: clusternet-dhxfs 
  40. rules: 
  41.   - apiGroups: 
  42.       - '*' 
  43.     resources: 
  44.       - '*' 
  45.     verbs: 
  46.       - '*' 

然后檢查被管理集群的狀態:

  1. $ # mcls 是 ManagedCluster 對象的別名 
  2. $ # kubectl get mcls -A 
  3. $ # or append "-o wide" to display extra columns 
  4. $ kubectl get mcls -A -o wide 
  5. NAMESPACE          NAME                       CLUSTER ID                             CLUSTER TYPE                 SYNC MODE   KUBERNETES   READYZ   AGE 
  6. clusternet-dhxfs   clusternet-cluster-dzqkw   dc91021d-2361-4f6d-a404-7c33b9e01118   EdgeClusterSelfProvisioned   Dual        v1.19.10     true     7d23h 
  7. $ kubectl get mcls -n clusternet-dhxfs   clusternet-cluster-dzqkw -o yaml 
  8. apiVersion: clusters.clusternet.io/v1beta1 
  9. kind: ManagedCluster 
  10. metadata: 
  11.   labels: 
  12.     clusters.clusternet.io/cluster-id: dc91021d-2361-4f6d-a404-7c33b9e01118 
  13.     clusters.clusternet.io/cluster-name: clusternet-cluster-dzqkw 
  14.     clusternet.io/created-by: clusternet-agent 
  15.   name: clusternet-cluster-dzqkw 
  16.   namespace: clusternet-dhxfs 
  17. spec: 
  18.   clusterId: dc91021d-2361-4f6d-a404-7c33b9e01118 
  19.   clusterType: EdgeClusterSelfProvisioned 
  20.   syncMode: Dual 
  21. status: 
  22.   apiserverURL: http://10.0.0.10:8080 
  23.   appPusher: true 
  24.   healthz: true 
  25.   k8sVersion: v1.19.10 
  26.   lastObservedTime: "2021-06-30T08:55:14Z" 
  27.   livez: true 
  28.   platform: linux/amd64 
  29.   readyz: true 

默認情況下,clusternet-agent 每3分鐘更新一次 ManagedCluster 的狀態,這可以通過標志 --cluster-status-update-frequency 來進行配置。

然后我們可以通過 krew 來安裝 Clusternet 的 kubectl 插件:

  1. $ kubectl krew install clusternet 

安裝完成后就可以使用 kubectl clusternet 命令了:

  1. $ kubectl clusternet -h 
  2. Usage: 
  3.   clusternet [flags] 
  4.   clusternet [command] 
  5.  
  6. Available Commands: 
  7.   apply       Apply a configuration to a resource by filename or stdin 
  8.   create      Create a resource from a file or from stdin. 
  9.   delete      Delete resources by filenames, stdin, resources and names, or by resources and label selector 
  10.   edit        Edit a resource on the server 
  11.   get         Display one or many resources 
  12.   help        Help about any command 
  13.   scale       Set a new size for a Deployment, ReplicaSet or Replication Controller 
  14.   version     Print the plugin version information 

4 示例

當 Clusternet 部署完成后,接下來我們就可以來嘗試將應用部署到多個集群了。Clusternet 支持從一個托管集群的一組 API 中向多個集群部署應用程序。

注意:Deployer 特性需要由 clusternet-hub 開啟。

首先,讓我們看一個示例應用。下面名為 "app-demo" 的 Subscription 定義了要分發的目標子集群,以及要部署的資源。

  1. # examples/applications/subscription.yaml 
  2. apiVersion: apps.clusternet.io/v1alpha1 
  3. kind: Subscription 
  4. metadata: 
  5.   name: app-demo 
  6.   namespace: default 
  7. spec: 
  8.   subscribers: # defines the clusters to be distributed to 
  9.     - clusterAffinity: 
  10.         matchLabels: 
  11.           clusters.clusternet.io/cluster-id: dc91021d-2361-4f6d-a404-7c33b9e01118 # PLEASE UPDATE THIS CLUSTER-ID TO YOURS!!! 
  12.   feeds: # defines all the resources to be deployed with 
  13.     - apiVersion: apps.clusternet.io/v1alpha1 
  14.       kind: HelmChart 
  15.       name: mysql 
  16.       namespace: default 
  17.     - apiVersion: v1 
  18.       kind: Namespace 
  19.       name: foo 
  20.     - apiVersion: apps/v1 
  21.       kind: Service 
  22.       name: my-nginx-svc 
  23.       namespace: foo 
  24.     - apiVersion: apps/v1 
  25.       kind: Deployment 
  26.       name: my-nginx 
  27.       namespace: foo 

在應用這個 Subscription 對象之前,請用你的集群 ID 更新 examples/applications/subscription.yaml。

在安裝了 kubectl 插件 kubectl-clusternet 之后,你可以運行下面的命令將這個應用程序分發到子集群:

  1. $ kubectl clusternet apply -f examples/applications/ 
  2. helmchart.apps.clusternet.io/mysql created 
  3. namespace/foo created 
  4. deployment.apps/my-nginx created 
  5. service/my-nginx-svc created 
  6. subscription.apps.clusternet.io/app-demo created 

然后可以使用下面的命令查看剛剛創建的資源:

  1. $ # list Subscription 
  2. $ kubectl clusternet get subs -A 
  3. NAMESPACE   NAME       AGE 
  4. default     app-demo   6m4s 
  5. $ kubectl clusternet get chart 
  6. NAME             CHART   VERSION   REPO                                 STATUS   AGE 
  7. mysql            mysql   8.6.2     https://charts.bitnami.com/bitnami   Found    71s 
  8. $ kubectl clusternet get ns 
  9. NAME   CREATED AT 
  10. foo    2021-08-07T08:50:55Z 
  11. $ kubectl clusternet get svc -n foo 
  12. NAME           CREATED AT 
  13. my-nginx-svc   2021-08-07T08:50:57Z 
  14. $ kubectl clusternet get deploy -n foo 
  15. NAME       CREATED AT 
  16. my-nginx   2021-08-07T08:50:56Z 

Clusternet 將幫助部署和協調應用程序到多個集群,可以通過以下命令檢查狀態。

  1. $ kubectl clusternet get mcls -A 
  2. NAMESPACE          NAME                       CLUSTER ID                             SYNC MODE   KUBERNETES   READYZ   AGE 
  3. clusternet-5l82l   clusternet-cluster-hx455   dc91021d-2361-4f6d-a404-7c33b9e01118   Dual        v1.21.0      true     5d22h 
  4. $ # list Descriptions 
  5. $ kubectl clusternet get desc -A 
  6. NAMESPACE          NAME               DEPLOYER   STATUS    AGE 
  7. clusternet-5l82l   app-demo-generic   Generic    Success   2m55s 
  8. clusternet-5l82l   app-demo-helm      Helm       Success   2m55s 
  9. $ kubectl describe desc -n clusternet-5l82l   app-demo-generic 
  10. ... 
  11. Status: 
  12.   Phase:  Success 
  13. Events: 
  14.   Type    Reason                Age    From            Message 
  15.   ----    ------                ----   ----            ------- 
  16.   Normal  SuccessfullyDeployed  2m55s  clusternet-hub  Description clusternet-5l82l/app-demo-generic is deployed successfully 
  17. $ # list Helm Release 
  18. $ # hr is an alias for HelmRelease 
  19. $ kubectl clusternet get hr -n clusternet-5l82l 
  20. NAME                  CHART       VERSION   REPO                                 STATUS     AGE 
  21. helm-demo-mysql       mysql       8.6.2     https://charts.bitnami.com/bitnami   deployed   2m55s 

當然也可以在子集群中用 Helm 命令行工具來驗證安裝情況,比如:

  1. $ helm ls -n abc 
  2. NAME                NAMESPACE REVISION UPDATED                              STATUS   CHART             APP VERSION 
  3. helm-demo-mysql     abc       1        2021-07-06 14:34:44.188938 +0800 CST deployed mysql-8.6.2       8.0.25 

這樣我們就成功將一個應用輕松分發到多個集群了。關于 Clusternet 的更多細節和使用方法請查看官方倉庫:https://github.com/clusternet/clusternet 了解更多。

 

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

2022-05-24 09:00:00

云計算Kubernetes安全

2021-02-07 08:00:00

Kubernetes集群云原生

2021-12-30 07:42:13

Kubernetes集群架構

2018-11-20 09:35:42

開源技術 數據

2021-11-22 16:21:28

Kubernetes 運維開源

2025-11-21 09:34:58

KuboardKubernetes運維

2020-07-27 18:52:34

Kubernetes集群工具

2021-12-24 10:47:49

Kubernetes容器化微服務

2021-02-18 09:28:32

Kubernetes開源SaaS

2022-04-15 09:30:00

Kubernetes云計算多云

2022-01-12 11:55:43

Kubernetes多集群Linux

2022-07-24 21:11:19

KubernetesLinux

2020-07-08 08:03:37

KubernetesLens集群

2022-07-11 09:46:43

Kubernetes開源Linux

2023-11-01 07:55:44

K8sKubernetes

2025-03-04 08:20:00

2019-09-27 16:32:17

虛擬機LinuxDocker

2022-01-17 11:05:11

CFSSLKubernetesLinux

2022-05-12 14:25:44

Kubernetesvcluster
點贊
收藏

51CTO技術棧公眾號

五月天精品在线| 男人添女荫道口图片| 一区二区三区日| 天天综合网网欲色| 亚洲精品成人免费| 欧美黄色性生活| av网址在线看| 波多野结衣精品在线| 国产精品久久久久久久久久东京 | 日韩伦理精品| 久久日韩粉嫩一区二区三区| 日本久久久久亚洲中字幕| 99久久久无码国产精品衣服| 91精品亚洲一区在线观看| 亚洲黄色av一区| 欧美日韩一区在线视频| 一级特黄aaa大片| 国产精品magnet| 精品亚洲aⅴ在线观看| 青青草av网站| 18+视频在线观看| 91女神在线视频| 91九色综合久久| 国产又色又爽又黄的| 色综合天天综合网中文字幕| 日韩欧美综合一区| 日本成年人网址| 免费在线午夜视频| 99精品国产91久久久久久| 国产美女精品视频免费观看| 国产亚洲成人精品| 欧美日韩国产一区二区三区不卡| 欧美一区二区在线播放| 一本久道综合色婷婷五月| 超碰在线caoporen| 国产蜜臀av在线一区二区三区| 亚洲综合在线小说| 一级日韩一级欧美| 性高湖久久久久久久久| 欧美理论电影在线观看| 一区二区伦理片| 国产精品x8x8一区二区| 欧美日韩国产区一| 女人扒开屁股爽桶30分钟| 黄色精品在线观看| 国产欧美一区二区三区在线看蜜臀| 97se视频在线观看| 一级黄色大片网站| 久久精品道一区二区三区| 久久69精品久久久久久久电影好 | youjizz亚洲女人| 青草久久视频| 欧美不卡123| 亚洲三级视频网站| 日韩欧美精品一区二区三区| 最新国产成人在线观看| 蜜桃狠狠色伊人亚洲综合网站| 国产高清在线免费| 经典一区二区三区| 国产免费一区二区三区香蕉精| 日韩美女视频网站| 欧美先锋影音| 欧美激情在线播放| 男女免费视频网站| 欧美黄色aaaa| 久久在线免费视频| 日韩精品一区二区亚洲av性色| 欧美日韩精品一区二区视频| 亚洲欧美日韩在线高清直播| 亚洲精品乱码久久久久久蜜桃图片| 久久久精品区| 6080午夜不卡| 亚洲黄色av片| 另类一区二区| 欧美另类变人与禽xxxxx| 成人性生生活性生交12| 日韩国产网站| 欧美吞精做爰啪啪高潮| 爱情岛论坛vip永久入口| 日日av拍夜夜添久久免费| 色8久久精品久久久久久蜜 | 欧美寡妇性猛交xxx免费| 自拍偷拍国产精品| youjizz.com亚洲| 美女国产在线| 亚洲欧美区自拍先锋| 一级黄色免费在线观看| 超碰免费公开在线| 一区二区三区资源| 免费av手机在线观看| 九色porny丨入口在线| 欧美性猛交xxxxx水多| 黄色一级片播放| 欧美momandson| 欧美色倩网站大全免费| 玖玖爱视频在线| 日韩视频一二区| 亚洲第一福利网站| 国产高清自拍视频| 成人情趣视频网站| 久久夜色精品国产亚洲aⅴ| 久久久精品国产sm调教| 亚洲狼人精品一区二区三区| 日本中文字幕久久看| 一级α片免费看刺激高潮视频| 国产一区二区三区黄视频 | 国产一区二区三区在线观看| 国产乱子轮精品视频| 国产精品久久国产精品| 欧美色综合一区二区三区| 国产精品视频第一区| 日本一道在线观看| 乡村艳史在线观看| 欧美日韩另类国产亚洲欧美一级| 中文字幕av一区二区三区人妻少妇 | 97在线视频精品| 波多野结衣爱爱| 国产精品888| 欧美激情视频一区二区三区| 黄色网在线看| 黑人精品xxx一区| 亚洲一级片网站| 精品国产影院| 久久精品国产欧美亚洲人人爽| 国产成人无码精品久在线观看 | 久久影视一区二区| 亚洲人成网站在线播放2019| 欧美xxxx做受欧美88bbw| 日韩欧美在线网址 | 成人国产在线观看| 亚洲欧洲久久| 7777kkk亚洲综合欧美网站| 欧美日韩一区小说| 91视频啊啊啊| 午夜日韩视频| 国产日韩欧美在线观看| 日韩a在线看| 一区二区三区波多野结衣在线观看| 美女福利视频在线| 好吊妞视频这里有精品 | 婷婷色一区二区三区| 精品动漫3d一区二区三区免费版| 国产精品视频资源| 日韩av资源| 亚洲福利视频一区| 午夜精品久久久久久久99热影院| 伊人久久综合影院| 欧美激情精品久久久久久| 中文字幕在线观看高清| 久久亚洲精精品中文字幕早川悠里| 日韩欧美猛交xxxxx无码| 欧美男男gaygay1069| 亚洲天堂av电影| 在线天堂中文字幕| 成人国产精品免费网站| 日本男女交配视频| 欧一区二区三区| 久久精品最新地址| 在线观看免费观看在线| 久久精品亚洲麻豆av一区二区| 成人免费视频91| 日韩区欧美区| 欧美高清在线观看| www.黄色av| 亚洲精品久久久蜜桃| 午夜激情影院在线观看| 色喇叭免费久久综合| 国产精品一久久香蕉国产线看观看| 免费播放片a高清在线观看| 精品久久久久久久久久ntr影视| 91九色蝌蚪porny| 亚洲一级二级| 国产伦精品一区二区三区免| 国产美女情趣调教h一区二区| 精品成人在线观看| 日韩免费视频网站| 2023国产精品视频| 亚洲精品高清无码视频| 精品视频日韩| 国产精品一二三视频| 里番在线观看网站| 日韩一二三区不卡| 加勒比av在线播放| www.成人网.com| 成人在线免费在线观看| 视频一区欧美| 国产情人节一区| 永久免费网站在线| 亚洲精品美女免费| 久久精品久久久久久久| 欧美国产日产图区| 一起草最新网址| 最新亚洲视频| 日韩欧美在线电影| 9999精品| 韩国三级电影久久久久久| 青青草av免费在线观看| 91传媒视频在线播放| 极品魔鬼身材女神啪啪精品| 丁香天五香天堂综合| 91九色在线观看视频| 在线日韩一区| 亚洲伊人第一页| 2021中文字幕在线| 国产一区二区三区网站| av加勒比在线| 欧美日韩综合视频| 国产一区在线观看免费| 国产v日产∨综合v精品视频| 成人在线观看黄| 中文字幕免费精品| 久久久久久国产精品mv| 欧美亚洲大片| 欧美激情18p| av电影在线观看网址| 欧美精品一区男女天堂| 国产一区二区视频免费| 一区二区三区在线视频播放 | 台湾佬中文在线| 成人欧美一区二区三区视频网页| 免费不卡的av| 另类调教123区| 九色自拍视频在线观看| 999国产精品| 久久艳妇乳肉豪妇荡乳av| 91精品福利观看| 57pao国产成人免费| 免费av不卡| 国产亚洲一区二区精品| 男人的天堂a在线| 欧美日韩国产片| 久久久黄色大片| 亚洲成人动漫在线观看| 好吊日在线视频| 国产亚洲人成网站| 国产精品一区二区人妻喷水| 国产麻豆日韩欧美久久| 日批视频在线免费看| 国内精品久久久久国产盗摄免费观看完整版 | 亚洲日本精品一区| 国产成人黄色| **亚洲第一综合导航网站| 精品肉辣文txt下载| 97香蕉久久夜色精品国产| 操你啦在线视频| 一区二区在线视频播放| 国产av一区二区三区精品| 欧美午夜精品电影| 欧美国产成人精品一区二区三区 | 性少妇xx生活| 91麻豆swag| 国产大学生av| 久久成人免费网| 污污的网站18| 日韩精品久久理论片| 国产主播在线看| 99综合精品| 福利视频一二区| 欧美一区精品| 久久99中文字幕| 黄页网站一区| 日韩视频在线视频| 精品二区久久| 久久久久99精品成人片| 在线免费观看欧美| 免费毛片网站在线观看| 亚洲一级电影| 毛片在线播放视频| 一区二区三区导航| 欧美牲交a欧美牲交aⅴ免费真| 久久久久国产精品午夜一区| 欧美 日韩精品| 奇米一区二区三区av| www.激情小说.com| 狠狠色狠狠色综合系列| 91插插插影院| 国产成人三级在线观看| 99久久久无码国产精品性波多| 成人一二三区视频| 国产三级视频网站| 国产亚洲精久久久久久| 99自拍偷拍视频| 亚洲男同性视频| 久久久久久久中文字幕| 亚洲午夜日本在线观看| 黑人一级大毛片| 欧洲另类一二三四区| 一级片免费网站| 日韩欧美不卡在线观看视频| 欧美 日韩 国产 成人 在线 91 | 国产成人精品综合久久久| 成人mm视频在线观看| 亚洲综合在线中文字幕| www.豆豆成人网.com| 欧美精品亚洲| 久久精品亚洲人成影院| 午夜啪啪福利视频| 亚洲天堂黄色| 成人久久久久久久久| 欧美a级理论片| 久久综合桃花网| 91看片淫黄大片一级在线观看| 国产极品视频在线观看| 一区二区三区不卡视频| 精品久久久久久久久久久国产字幕 | 精品在线小视频| 免费大片在线观看www| 久久久久久尹人网香蕉| 日韩在线免费| 成人av男人的天堂| 亚洲桃色综合影院| 在线视频一二三区| 日韩国产精品91| av影片在线播放| 国产精品素人一区二区| 久久久久久天堂| 欧美日本国产一区| 五月天婷婷在线播放| 久久久成人的性感天堂| 天堂av在线网| 91黄色国产视频| 成人三级视频| 日韩在线综合网| 国产一区二区三区免费观看| 日本一区二区视频在线播放| 午夜精品福利在线| 国产精品女同一区二区| 亚洲欧美色婷婷| 波多野结衣在线播放| 国产玖玖精品视频| 校花撩起jk露出白色内裤国产精品| 国产又黄又爽免费视频| 久久中文在线| 国产白袜脚足j棉袜在线观看| 国产精品不卡在线观看| 日韩黄色一级视频| 亚洲第一精品福利| 可以免费看污视频的网站在线| 久久久久久久影院| 日韩一区二区三区精品视频第3页| 神马影院一区二区| 男女av一区三区二区色多| 色哟哟无码精品一区二区三区| 亚洲视频免费观看| 一本大道伊人av久久综合| 亚洲精品久久久一区二区三区| 一区二区三区视频网站| 77777少妇光屁股久久一区| 日本一区二区三区播放| 亚洲一卡二卡三卡| 韩国欧美国产1区| 国产精品麻豆一区| 欧美亚洲日本国产| 黄色影院在线播放| 日韩免费精品视频| 免费精品国产的网站免费观看| 欧美色图另类小说| 99久久国产综合色|国产精品| 91久久国产视频| 日韩激情av在线播放| 国产99在线观看| 国产精品永久入口久久久| 亚洲三级影院| 粉嫩av懂色av蜜臀av分享| 岛国av一区二区三区| 午夜影院免费视频| 91精品国产91久久久久| 97人人澡人人爽91综合色| 乱熟女高潮一区二区在线| 久久国产综合精品| 日本高清一二三区| 欧美变态凌虐bdsm| 免费看男女www网站入口在线| 九九99玖玖| 翔田千里一区二区| 欧美激情 一区| 91麻豆精品国产91久久久久久久久| www.av在线| 成人免费视频97| 综合久久精品| 亚洲视频天天射| 欧美日韩亚洲天堂| 国产天堂素人系列在线视频| 国产精品久久久久久久久久久久久| 欧美亚洲国产激情| 特黄视频免费观看| 亚洲美女区一区| 性一交一乱一精一晶| 91精品国产91久久久久久吃药| 西野翔中文久久精品字幕| 爱情岛论坛亚洲首页入口章节| 亚洲乱码国产乱码精品精可以看| 99精品国产99久久久久久97| 韩国福利视频一区| 极品美女一区二区三区| 五月天婷婷影视| 午夜精品久久一牛影视| 国产午夜精品一区理论片| 91免费看片在线| 夜久久久久久|