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

Argo CD 優化以及使用釘釘接收狀態消息

運維 系統運維
本文我們將介紹 Argo CD 通過 webhook 來優化應用檢測、使用 Prometheus 監控 Argo CD,已經使用釘釘來接收 Argo CD 應用狀態變化的消息通知。

[[410637]]

本文我們將介紹 Argo CD 通過 webhook 來優化應用檢測、使用 Prometheus 監控 Argo CD,已經使用釘釘來接收 Argo CD 應用狀態變化的消息通知。

webhook 配置

我們知道 Argo CD 會自動檢查到配置的應用變化,這是因為 Argo CD 會每隔三分鐘去輪詢一次 Git 存儲庫來檢測清單的變化,為了消除這種輪詢延遲,我們也可以將 API 服務端配置為接收 webhook 事件的方式,這樣就能實時獲取到 Git 存儲庫中的變化了。Argo CD 支持來著 GitHub、GitLab、Bitbucket、Bitbucket Server 和 Gogs 的 Git webhook 事件,這里我們仍然以上面的 GitLab 為例來說明如果配置 Webhook。

進入到 GitLab 項目倉庫 http://git.k8s.local/course/devops-demo-deploy 中配置 Webhooks:

圖片

配置 Webhooks

Webhook 的地址填寫 Argo CD 的 API 接口地址 http://argocd.k8s.local/api/webhook,下面的 Secret token 是可選的,建議添加上,任意定義即可。另外需要注意這里我們使用的是自簽名的 https 證書,所以需要在下方去掉 啟用SSL驗證。

然后需要將上面配置的 Secret token 添加到 Argo CD 的 Secret 配置中:

  1. ➜  ~ kubectl edit secret argocd-secret -n argocd 
  2. apiVersion: v1 
  3. kind: Secret 
  4. metadata: 
  5.   name: argocd-secret 
  6.   namespace: argocd 
  7. type: Opaque 
  8. data: 
  9. ... 
  10. stringData: 
  11.   # gitlab webhook secret 
  12.   webhook.gitlab.secret: youdianzhishi 

保存后,更改會自動生效,我們可以在 GitLab 這邊測試配置的 Webhook,查看 Argo CD 的 API 服務 Pod 日志,正常就可以收到 Push 事件了:

  1. ➜  ~ kubectl logs -f argocd-server-5cc96b75b4-zws2c -n argocd 
  2. time="2021-07-08T07:15:32Z" level=info msg="finished streaming call with code OK" grpc.code=OK grpc.method=Watch grpc.service=application.ApplicationService grpc.start_time="2021-07-08T07:15:01Z" grpc.time_ms=31314.16 span.kind=server system=grpc 
  3. time="2021-07-08T07:15:37Z" level=info msg="Received push event repo: http://git.k8s.local/course/devops-demo-deploy, revision: master, touchedHead: true" 
  4. time="2021-07-08T07:15:37Z" level=info msg="Requested app 'devops-demo' refresh" 

Metrics 指標

Argo CD 作為我們持續部署的關鍵組件,對于本身的監控也是非常有必要的,Argo CD 本身暴露了兩組 Prometheus 指標,所以我們可以很方便對接監控報警。

默認情況下 Metrics 指標通過端點 argocd-metrics:8082/metrics 獲取指標,包括:

  • 應用健康狀態指標
  • 應用同步狀態指標
  • 應用同步歷史記錄

關于 Argo CD 的 API 服務的 API 請求和響應相關的指標(請求數、響應碼值等等...)通過端點 argocd-server-metrics:8083/metrics 獲取。

然后可以根據我們自己的需求來配置指標抓取任務,比如我們是手動維護 Prometheus 的方式,并且開啟了 endpoints 這種類型的服務自動發現,那么我們可以在幾個指標的 Service 上添加 prometheus.io/scrape: "true" 這樣的 annotation:

  1. ➜  ~ kubectl edit svc argocd-metrics -n argocd 
  2. apiVersion: v1 
  3. kind: Service 
  4. metadata: 
  5.   annotations: 
  6.     kubectl.kubernetes.io/last-applied-configuration: | 
  7.       {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"metrics","app.kubernetes.io/name":"argocd-metrics","app.kubernetes.io/part-of":"argocd"},"name":"argocd-metrics","namespace":"argocd"},"spec":{"ports":[{"name":"metrics","port":8082,"protocol":"TCP","targetPort":8082}],"selector":{"app.kubernetes.io/name":"argocd-application-controller"}}} 
  8.     prometheus.io/scrape: "true" 
  9.   creationTimestamp: "2021-07-03T06:16:47Z" 
  10.   labels: 
  11.     app.kubernetes.io/component: metrics 
  12.     app.kubernetes.io/name: argocd-metrics 
  13.     app.kubernetes.io/part-of: argocd 
  14. ...... 
  15. ➜  ~ kubectl edit svc argocd-server-metrics -n argocd 
  16. apiVersion: v1 
  17. kind: Service 
  18. metadata: 
  19.   annotations: 
  20.     kubectl.kubernetes.io/last-applied-configuration: | 
  21.       {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"server","app.kubernetes.io/name":"argocd-server-metrics","app.kubernetes.io/part-of":"argocd"},"name":"argocd-server-metrics","namespace":"argocd"},"spec":{"ports":[{"name":"metrics","port":8083,"protocol":"TCP","targetPort":8083}],"selector":{"app.kubernetes.io/name":"argocd-server"}}} 
  22.     prometheus.io/scrape: "true" 
  23.     prometheus.io/port: "8083"  # 指定8084端口為指標端口 
  24.   creationTimestamp: "2021-07-03T06:16:47Z" 
  25.   labels: 
  26.     app.kubernetes.io/component: server 
  27.     app.kubernetes.io/name: argocd-server-metrics 
  28.     app.kubernetes.io/part-of: argocd 
  29. ...... 
  30. ➜  ~ kubectl edit svc argocd-repo-server -n argocd 
  31. apiVersion: v1 
  32. kind: Service 
  33. metadata: 
  34.   annotations: 
  35.     kubectl.kubernetes.io/last-applied-configuration: | 
  36.       {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"repo-server","app.kubernetes.io/name":"argocd-repo-server","app.kubernetes.io/part-of":"argocd"},"name":"argocd-repo-server","namespace":"argocd"},"spec":{"ports":[{"name":"server","port":8081,"protocol":"TCP","targetPort":8081},{"name":"metrics","port":8084,"protocol":"TCP","targetPort":8084}],"selector":{"app.kubernetes.io/name":"argocd-repo-server"}}} 
  37.     prometheus.io/scrape: "true" 
  38.     prometheus.io/port: "8084"  # 指定8084端口為指標端口 
  39.   creationTimestamp: "2021-07-03T06:16:47Z" 
  40.   labels: 
  41.     app.kubernetes.io/component: repo-server 
  42.     app.kubernetes.io/name: argocd-repo-server 
  43.     app.kubernetes.io/part-of: argocd 
  44. ...... 

配置完成后正常就可以自動發現上面的幾個指標任務了:

argocd metrics

如果你使用的是 Prometheus Operator 方式,則可以手動創建 ServiceMonitor 對象來創建指標對象。

然后我們可以在 Grafana 中導入 Argo CD 的 Dashboard,地址:https://github.com/argoproj/argo-cd/blob/master/examples/dashboard.json

argocd grafana

消息通知

上面我們配置了 Argo CD 的監控指標,我們可以通過 AlertManager 來進行報警,但是有的時候我們可能希望將應用同步的狀態發送到指定的渠道,這樣方便我們了解部署流水線的結果,Argo CD 本身并沒有提供內置的同步狀態通知功能,但是我們可以與第三方的系統進行集成。

  • ArgoCD Notifications - Argo CD 通知系統,持續監控 Argo CD 應用程序,旨在與各種通知服務集成,例如 Slack、SMTP、Telegram、Discord 等。
  • Argo Kube Notifier - 通用 Kubernetes 資源控制器,允許監控任何 Kubernetes 資源并在滿足配置的規則時發送通知。
  • Kube Watch - 可以向 Slack/hipchat/mattermost/flock 頻道發布通知,它監視集群中的資源變更并通過 webhook 通知它們。

我們知道 Argo CD 本身是提供 resource hook 功能的,在資源同步前、中、后提供腳本來執行相應的動作, 那么想在資源同步后獲取應用的狀態,然后根據狀態進行通知就非常簡單了,通知可以是很簡單的 curl 命令:

  • PreSync: 在同步之前執行相關操作,這個一般用于比如數據庫操作等
  • Sync: 同步時執行相關操作,主要用于復雜應用的編排
  • PostSync: 同步之后且app狀態為health執行相關操作
  • SyncFail: 同步失敗后執行相關操作,同步失敗一般不常見

但是對于 PostSync 可以發送成功的通知,但對于狀態為 Processing 的無法判斷,而且通知還是沒有辦法做到誰執行的 pipeline 誰接收通知的原則,沒有辦法很好地進行更細粒度的配置。ArgoCD Notifications 就可以來解決我們的問題,這里我們就以 ArgoCD Notifications 為例來說明如何使用釘釘來通知 Argo CD 的同步狀態通知。

首先下載 ArgoCD Notifications 官方安裝資源清單:

  1. ➜  ~ wget https://raw.githubusercontent.com/argoproj-labs/argocd-notifications/stable/manifests/install.yaml 

然后我們需要在釘釘群中創建一個機器人,現在的機器人安全認證有幾種方式,這里我們就選擇關鍵字的方式,配置包含 ArgoCD 關鍵字的機器人:

add dingtalk robot

然后我們需要修改 install.yaml 文件中的 argocd-notifications-cm 添加相關配置才能支持釘釘。

  1. apiVersion: v1 
  2. kind: ConfigMap 
  3. metadata: 
  4.   name: argocd-notifications-cm 
  5. data: 
  6.   service.webhook.dingtalk: | 
  7.     url: https://oapi.dingtalk.com/robot/send?access_token=31429a8a66c8cd5beb7c4295ce592ac3221c47152085da006dd4556390d4d7e0 
  8.     headers: 
  9.       - name: Content-Type 
  10.         value: application/json 
  11.   context: | 
  12.     argocdUrl: http://argocd.k8s.local 
  13.   template.app-sync-change: | 
  14.     webhook: 
  15.       dingtalk: 
  16.         method: POST 
  17.         body: | 
  18.           { 
  19.                 "msgtype""markdown"
  20.                 "markdown": { 
  21.                     "title":"ArgoCD同步狀態"
  22.                     "text""### ArgoCD同步狀態\n> - app名稱: {{.app.metadata.name}}\n> - app同步狀態: {{ .app.status.operationState.phase}}\n> - 時間:{{.app.status.operationState.startedAt}}\n> - URL: [點擊跳轉ArgoCD]({{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true) \n" 
  23.                 } 
  24.             } 
  25.   trigger.on-deployed: | 
  26.     - description: Application is synced and healthy. Triggered once per commit
  27.       oncePer: app.status.sync.revision 
  28.       send: [app-sync-change]  # template names 
  29.       # trigger condition 
  30.       when: app.status.operationState.phase in ['Succeeded'and app.status.health.status == 'Healthy' 
  31.   trigger.on-health-degraded: | 
  32.     - description: Application has degraded 
  33.       send: [app-sync-change] 
  34.       when: app.status.health.status == 'Degraded' 
  35.   trigger.on-sync-failed: | 
  36.     - description: Application syncing has failed 
  37.       send: [app-sync-change]  # template names 
  38.       when: app.status.operationState.phase in ['Error''Failed'
  39.   trigger.on-sync-running: | 
  40.     - description: Application is being synced 
  41.       send: [app-sync-change]  # template names 
  42.       when: app.status.operationState.phase in ['Running'
  43.   trigger.on-sync-status-unknown: | 
  44.     - description: Application status is 'Unknown' 
  45.       send: [app-sync-change]  # template names 
  46.       when: app.status.sync.status == 'Unknown' 
  47.   trigger.on-sync-succeeded: | 
  48.     - description: Application syncing has succeeded 
  49.       send: [app-sync-change]  # template names 
  50.       when: app.status.operationState.phase in ['Succeeded'
  51.   subscriptions: | 
  52.     - recipients: [dingtalk]  # 可能有bug,正常應該是webhook:dingtalk 
  53.       triggers: [on-sync-running, on-deployed, on-sync-failed, on-sync-succeeded] 

其中 argocd-notifications-cm 中添加了一段如下所示的配置:

  1. subscriptions: | 
  2.   - recipients: [dingtalk] 
  3.     triggers: [on-sync-running, on-deployed, on-sync-failed, on-sync-succeeded] 

這個是為定義的觸發器添加通知訂閱,正常這里的 recipients 是 webhook:dingtalk,不知道是否是因為該版本有 bug,需要去掉前綴才能正常使用。

此外還可以添加一些條件判斷,如下所示:

  1. subscriptions: 
  2. global subscription for all type of notifications 
  3. - recipients: 
  4.   - slack:test1 
  5.   - webhook:github 
  6. # subscription for on-sync-status-unknown trigger notifications 
  7. - recipients: 
  8.   - slack:test2 
  9.   - email:test@gmail.com 
  10.   triggeron-sync-status-unknown 
  11. global subscription restricted to applications with matching labels only 
  12. - recipients: 
  13.   - slack:test3 
  14.   selector: test=true 

然后可以根據不同的狀態來配置不同的觸發器,如下所示:

  1. trigger.on-sync-status-unknown: | 
  2.   - description: Application status is 'Unknown' 
  3.     send: [app-sync-change]  # template names 
  4.     when: app.status.sync.status == 'Unknown' 

該觸發器定義包括名稱、條件和通知模板引用:

  • send:表示通知內容使用的模板名稱
  • description:當前觸發器的描述信息
  • when:條件表達式,如果應發送通知,則返回 true

然后下面就是配置發送的消息通知模板:

  1. template.app-sync-change: | 
  2.   webhook: 
  3.     dingtalk: 
  4.       method: POST 
  5.       body: | 
  6.         { 
  7.               "msgtype""markdown"
  8.               "markdown": { 
  9.                   "title":"ArgoCD同步狀態"
  10.                   "text""### ArgoCD同步狀態\n> - app名稱: {{.app.metadata.name}}\n> - app同步狀態: {{ .app.status.operationState.phase}}\n> - 時間:{{.app.status.operationState.startedAt}}\n> - URL: [點擊跳轉ArgoCD]({{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true) \n" 
  11.               } 
  12.           } 

該模板用于生成通知內容,該模板利用 Golang 中的 html/template 包定義,允許定義通知標題和正文,可以重用,并且可以由多個觸發器引用。每個模板默認都可以訪問以下字段:

  • app:保存應用程序對象
  • context:是用戶定義的字符串映射,可能包含任何字符串鍵和值
  • notificationType 保留通知服務類型名稱,該字段可用于有條件地呈現服務特定字段

然后記得使用釘釘機器人的 webhook 地址替換掉上面的 argocd-notifications-secret 中的 url 地址。

配置完成后直接創建整個資源清單文件:

  1. ➜  ~ kubectl apply -f install.yaml 
  2. ➜  ~ kubectl get pods -n argocd 
  3. NAME                                               READY   STATUS    RESTARTS   AGE 
  4. argocd-application-controller-0                    1/1     Running   0          5d4h 
  5. argocd-dex-server-76ff776f97-ds7mm                 1/1     Running   0          5d4h 
  6. argocd-notifications-controller-5c548f8dc9-dx824   1/1     Running   0          9m22s 
  7. argocd-redis-747b678f89-w99wf                      1/1     Running   0          5d4h 
  8. argocd-repo-server-6fc4456c89-586zl                1/1     Running   0          5d4h 
  9. argocd-server-5cc96b75b4-zws2c                     1/1     Running   0          4d22h 

安裝完成后重新去修改下應用代碼觸發整個 GitOps 流水線,正常就可以在釘釘中收到如下所示的消息通知了,如果沒有正常收到消息,可以通過 argocd-notifications 的 CLI 命令進行調試:

  1. ➜  ~ kubectl exec -it argocd-notifications-controller-5c548f8dc9-dtq7h -n argocd -- /app/argocd-notifications template notify app-sync-change guestbook --recipient dingtalk 
  2. DEBU[0000] Sending request: POST /robot/send?access_token=31429a8a66c8cd5beb7c4295ce592ac3221c47152085da006dd4556390d4d7e0 HTTP/1.1 
  3. Host: oapi.dingtalk.com 
  4. Content-Type: application/json 
  5.  
  6.       "msgtype""markdown"
  7.       "markdown": { 
  8.           "title":"ArgoCD同步狀態"
  9.           "text""### ArgoCD同步狀態\n> - app名稱: guestbook\n> - app同步狀態: Succeeded\n> - 時間:2021-07-03T12:53:44Z\n> - URL: [點擊跳轉ArgoCD](http://argocd.k8s.local/applications/guestbook?operation=true) \n" 
  10.       } 
  11.   }  service=dingtalk 
  12. DEBU[0000] Received response: HTTP/2.0 200 OK 
  13. Cache-Control: no-cache 
  14. Content-Type: application/json 
  15. Date: Thu, 08 Jul 2021 11:45:12 GMT 
  16. Server: Tengine 
  17.  
  18. {"errcode":0,"errmsg":"ok"}  service=dingtalk 

釘釘通知

關于 ArgoCD Notification 的更多使用可以參考官方文檔了解更多:https://argocd-notifications.readthedocs.io/en/stable/。

 

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

2020-02-17 15:17:57

釘釘

2022-06-05 14:57:35

發送釘釘運維架構

2021-05-29 14:14:16

阿里云釘釘低代碼開發

2018-08-10 12:56:00

大數據

2023-08-22 20:48:06

模型釘釘阿里云

2020-06-10 14:01:46

阿里云釘釘Windows

2022-12-06 08:00:16

awscli工具監控

2018-04-18 07:20:12

微信騰訊阿里巴巴

2016-09-06 18:20:43

存儲

2018-07-16 12:22:42

白熊視頻

2024-05-22 08:03:15

2024-09-11 09:25:00

2023-09-27 08:24:49

2022-08-16 22:39:01

Argo CDKubernetes

2020-04-10 16:41:27

微信釘釘APP

2020-09-18 15:05:24

阿里政務釘釘

2016-05-13 16:54:06

阿里云辦公

2018-08-07 11:51:27

釘釘

2016-01-21 11:05:38

太平洋電腦網
點贊
收藏

51CTO技術棧公眾號

国产欧美日韩成人| 国产熟女高潮一区二区三区| 黄色成人在线| 高清不卡在线观看av| 91成人免费观看网站| 色欲AV无码精品一区二区久久 | 国产91av在线| 免费成人美女女在线观看| 97久久亚洲| 欧美日韩成人综合天天影院| 黄页网站在线观看视频| 91电影在线播放| 成人av网站免费观看| 国产精品视频中文字幕91| 国产精品99无码一区二区| 日本一二区不卡| 日韩av中文在线| 日本网站在线看| 成人va天堂| 精品人伦一区二区三区蜜桃网站| 亚洲一区二区三区精品在线观看| 午夜在线视频免费| 国产精品亚洲а∨天堂免在线| 欧美在线一级va免费观看| 欧美成人综合色| 欧美日韩伦理在线免费| 亚洲国产精品成人精品| 成人免费播放视频| 欧洲亚洲精品久久久久| 日韩欧美精品网站| av女优在线播放| av免费在线免费| 国产精品久久三| 青青草国产精品| 天堂网av2014| 成人污视频在线观看| 成人欧美一区二区三区在线湿哒哒| 黄色片中文字幕| 在线亚洲国产精品网站| 欧美激情视频一区二区| 91 在线视频| 国产精品国产一区| 中文字幕九色91在线| 三上悠亚影音先锋| 九九综合久久| 亚洲欧洲美洲在线综合| 人妻无码中文久久久久专区| 91精品尤物| 欧美成人vr18sexvr| 无套白嫩进入乌克兰美女| 亚州欧美在线| 欧美视频日韩视频在线观看| 凹凸日日摸日日碰夜夜爽1| 亚洲美女尤物影院| 亚洲动漫第一页| 波多野结衣综合网| 涩涩视频在线免费看| 欧美午夜电影在线| 天天爱天天操天天干| 成人免费视频观看| 欧美精品1区2区| 一起草最新网址| 好吊妞视频这里有精品| 日韩视频在线永久播放| 欧美图片自拍偷拍| 精品亚洲自拍| 亚洲女人天堂成人av在线| 91精品人妻一区二区三区蜜桃欧美| 久久av综合| 最新的欧美黄色| 日本中文字幕免费在线观看| 亚洲精品一二三区区别| 欧美肥婆姓交大片| 日本一区二区三区精品| 日韩成人一区二区三区在线观看| 国产精品一区二区久久精品| 国产区精品在线| 成人av在线电影| 日韩精品欧美专区| 黄页视频在线播放| 亚洲h在线观看| 免费在线观看的毛片| 999精品视频在线观看| 精品盗摄一区二区三区| 精品人妻无码一区二区三区换脸| 四虎成人精品永久免费av九九| 欧美国产亚洲视频| 波多野结衣大片| 国产精品99久久久久久似苏梦涵| 91免费在线观看网站| 三级理论午夜在线观看| 国产精品麻豆久久久| 国产精彩视频一区二区| 国产私拍福利精品视频二区| 欧美巨大另类极品videosbest| 极品白嫩少妇无套内谢| 神马久久一区二区三区| 免费99精品国产自在在线| av大全在线观看| 国产九色精品成人porny| 欧美大香线蕉线伊人久久| 黄在线免费观看| 一本到不卡精品视频在线观看| 亚洲精品成人在线播放| 性欧美lx╳lx╳| 欧美成人免费播放| 中文字幕一区二区人妻| 成人av网址在线观看| 欧美日韩在线免费观看视频| 欧美gv在线| 日韩一区二区高清| 中文字幕第二区| 国产精品婷婷| 北条麻妃高清一区| 色视频在线免费观看| 欧美日韩在线另类| av不卡中文字幕| 亚洲乱码精品| 国产综合久久久久久| 黄色大片在线看| 精品国产电影一区| 国产婷婷在线观看| 欧美粗暴jizz性欧美20| 国产精品国产亚洲伊人久久 | 懂色av色香蕉一区二区蜜桃| 亚洲欧美另类国产| 日韩视频免费观看高清| 国产成人精品在线看| 在线丝袜欧美日韩制服| 欧美日韩女优| 亚洲片在线资源| 国产日产精品一区二区三区| www.欧美日韩国产在线| 成人av在线不卡| 精品视频91| 久久在线免费观看视频| 91肉色超薄丝袜脚交一区二区| 久久精品一区蜜桃臀影院| 欧美在线观看www| 美国成人xxx| 久久久亚洲影院你懂的| 亚洲经典一区二区| 亚洲一区二三区| 风韵丰满熟妇啪啪区老熟熟女| 亚洲一区二区三区| 91欧美激情另类亚洲| 高清全集视频免费在线| 制服丝袜激情欧洲亚洲| 亚洲国产123| 国产精品一品二品| 人妻av无码专区| 国产精品三p一区二区| 久久噜噜噜精品国产亚洲综合| 亚洲AV无码国产精品午夜字幕| 亚洲欧美区自拍先锋| 巨乳女教师的诱惑| 亚洲精品孕妇| 日本免费高清一区| 国产精品4hu.www| 久久激情视频免费观看| 国产精品久久久久久久免费| 一区二区三区日韩精品| 精品国产乱码久久久久夜深人妻| 亚洲精品资源| 无码免费一区二区三区免费播放| 国产精品黄色片| 欧美成年人在线观看| 女人18毛片一区二区三区| 欧美日韩中文字幕在线视频| 91激情视频在线观看| 精品一区二区三区免费观看| 狠狠干视频网站| 麻豆一区二区麻豆免费观看| 国产成人在线一区| 毛片在线播放a| 精品乱码亚洲一区二区不卡| 手机看片久久久| 国产精品女同互慰在线看| 色婷婷一区二区三区在线观看| 国产精品a级| 欧美在线一区二区三区四区| 亚洲综合伊人| 欧美在线性爱视频| 国产一区久久精品| 日韩精品在线观| 国产一区二区三区四区视频| 亚洲成人一区二区在线观看| 欧美三级视频网站| 国产91精品一区二区麻豆网站| 欧美aⅴ在线观看| 香蕉国产精品| 欧美高清性xxxxhdvideosex| 国产精品国产三级在线观看| 91成品人片a无限观看| 中国日本在线视频中文字幕| 亚洲高清不卡av| 91国内精品久久久| 欧美日韩国产丝袜另类| 亚洲少妇xxx| 91免费国产视频网站| 五月天婷婷在线观看视频| 国产精品色网| 欧美极品少妇无套实战| 国内精品伊人久久久| 97netav| 日本精品另类| 欧美一区在线直播| 色呦呦呦在线观看| 日韩在线观看免费| 免费在线视频一级不卡| 精品久久久久久最新网址| 中文字幕欧美人妻精品| 色综合网色综合| 国产乡下妇女做爰视频| 亚洲人成在线播放网站岛国| 国产在线观看h| 99视频超级精品| 一区二区三区四区影院| 精品无人码麻豆乱码1区2区| 亚洲人成色77777| 亚洲美女啪啪| www.xxx麻豆| 一区二区三区中文| 一区国产精品| 日本一二区不卡| 日韩精品福利视频| 国产一区二区精品福利地址| 精品国产乱码久久久久久88av| 视频精品国内| 99久热re在线精品视频| 99久久久国产| 成人国产精品一区二区| 免费一级欧美在线观看视频| 国产成人精品午夜| 日韩福利一区| 日本免费久久高清视频| 午夜欧美激情| 欧美又大粗又爽又黄大片视频| 韩国成人二区| 91高潮精品免费porn| 国产粉嫩在线观看| 91国产精品91| 午夜欧美激情| 国产成人avxxxxx在线看| 香蕉久久免费电影| 国产福利成人在线| 日韩在线短视频| 国产精品爽黄69| 国产95亚洲| 99久久国产免费免费| avtt综合网| 久久草视频在线看| 欧美日韩激情在线一区二区三区| 色99中文字幕| 欧美xxav| 久久综合亚洲精品| 亚洲欧洲一级| 97视频在线免费播放| 日韩电影在线一区二区三区| 搡女人真爽免费午夜网站| 男女男精品视频网| 中文国产在线观看| 成人激情av网| 国产手机在线观看| 中文字幕欧美三区| 日韩国产第一页| 亚洲一二三四区| www亚洲视频| 欧美日韩精品欧美日韩精品一综合 | 亚洲国产不卡| 分分操这里只有精品| 亚洲欧美春色| www.日本一区| 成人v精品蜜桃久久一区| 黄色国产在线观看| 国产欧美一二三区| 欧美国产精品一二三| 大伊人狠狠躁夜夜躁av一区| 涩涩视频在线观看| 日韩欧美精品在线| 男人天堂亚洲二区| 久久视频在线看| 小视频免费在线观看| 国产精品丝袜视频| 精品欠久久久中文字幕加勒比| 热re99久久精品国产99热| 亚洲一级毛片| 精品一卡二卡三卡| 国产成人在线网站| 久久久久久久久福利| 亚洲一区二区在线免费观看视频| 青青青国产在线 | 久久在线电影| 日本在线xxx| 韩国三级电影一区二区| 中文字幕 亚洲一区| 中文字幕一区在线| 国产精品久久久久久久妇| 精品视频免费看| 成人午夜视频一区二区播放| 中文字幕在线观看亚洲| av岛国在线| 亚洲一区二区免费在线| 亚洲第一二三区| 国产午夜精品视频一区二区三区| 老司机精品久久| www.啪啪.com| 亚洲免费资源在线播放| 99成人精品视频| 日韩大陆毛片av| 欧洲在线视频| 亚洲最大成人在线| jiujiure精品视频播放| 少妇人妻无码专区视频| 国产在线看一区| 妖精视频在线观看免费| 色一区在线观看| 五月激情婷婷网| 欧美激情女人20p| 我要色综合中文字幕| 一区二区三区精品国产| 日韩影院免费视频| jizz欧美性20| 亚洲成人高清在线| 亚洲精品久久久狠狠狠爱| 色爱av美腿丝袜综合粉嫩av| 制服诱惑亚洲| 欧美亚洲另类在线一区二区三区| 在线不卡欧美| 大尺度在线观看| 亚洲一区av在线| 性生活三级视频| 欧美裸体xxxx极品少妇| 大胆国模一区二区三区| 波多野结衣激情| 国产一区在线视频| 日韩在线不卡av| 欧美日韩国产精选| 激情在线小视频| 亚洲jizzjizz日本少妇| 欧美一区激情| 亚洲av综合色区无码另类小说| 一区二区三区中文字幕| jizz中国女人| 欧美日韩成人在线观看| 一区二区亚洲视频| 僵尸世界大战2 在线播放| 成人一级片网址| 国产91av视频| 日韩精品免费一线在线观看| 成人免费看黄| 亚洲黄色一区二区三区| 久久精品国产精品亚洲综合| 亚洲女人久久久| 精品欧美一区二区在线观看| 欧美大片黄色| 精品国产一区二区三区麻豆免费观看完整版| 伊人激情综合| 美女脱光内衣内裤| 欧美日韩另类一区| 在线观看男女av免费网址| 国产欧美欧洲| 首页国产欧美日韩丝袜| 999精品久久久| 日韩精品一区二| 成人免费看视频网站| 影音欧美亚洲| 不卡电影免费在线播放一区| 最新中文字幕一区| 色妞色视频一区二区三区四区| 麻豆精品在线| 亚洲午夜无码av毛片久久| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美日韩ab| 97伦伦午夜电影理伦片| 欧美日韩色综合| 波多野结衣中文字幕久久| 欧美一级爱爱| 国产裸体歌舞团一区二区| 欧美一级视频免费观看| 中文字幕欧美在线| 超碰97久久国产精品牛牛| 日韩欧美xxxx| 亚洲一线二线三线视频| 国产女人在线观看| aa成人免费视频| 免费欧美在线视频| 久久精品国产亚洲AV无码男同| 亚洲视频一区二区三区| 麻豆一区在线| 99视频精品免费| 亚洲国产精品久久人人爱| 成人午夜在线观看视频| 不卡视频一区| 麻豆91在线观看| 狠狠人妻久久久久久| 欧美高清视频在线观看| 成人在线视频免费观看| 男男做爰猛烈叫床爽爽小说| 欧美日本在线观看|