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

云原生CI/CD框架Tekton國內部署方式

開源 云原生
Tekton 是一款功能非常強大而靈活的 CI/CD 開源的云原生框架。致力于提供全功能、標準化的云原生 CI/CD 解決方案。本文主要是通過流水線自動化的將tekton鏡像同步到騰訊云倉庫,并部署tekton.

[[436836]]

Tekton 是一款功能非常強大而靈活的 CI/CD 開源的云原生框架。致力于提供全功能、標準化的云原生 CI/CD 解決方案。【本文主要是通過流水線自動化的將tekton鏡像同步到騰訊云倉庫,并部署tekton】

應用鏡像

阿里云鏡像倉庫居然有限制...這次轉到騰訊云鏡像倉庫了;ccr.ccs.tencentyun.com/tektons/dashboard

Pipeline

借助GitHub Actions:

  1. 同步鏡像并生成鏡像映射文件(json):
  2. 收集鏡像映射文件為制品;
  1.  This is a basic workflow to help you get started with Actions 
  2.  
  3. name: Get Tekton Images 
  4. env: 
  5.   VERSION: v0.29.0 
  6.  
  7. on
  8.   push: 
  9.     paths: 
  10.       - '.github/workflows/tekton.yaml' 
  11.       - 'tekton/**' 
  12.  
  13. jobs: 
  14.   build: 
  15.     runs-on: ubuntu-18.04 
  16.     steps: 
  17.     - uses: actions/checkout@v2 
  18.     - name: build 
  19.       run: | 
  20.        
  21.         curl https://storage.googleapis.com/tekton-releases/pipeline/previous/${{ env.VERSION }}/release.yaml -o release.yaml 
  22.         grep  -v "#" release.yaml | grep -v "^$"  > release1.yaml  ; sed -i 's/\-\-\-/###/g' release1.yaml 
  23.         python3  tekton/get_tekton_images.py ${{ secrets.DOCKER_USER}} ${{ secrets.DOCKER_PASSWD}} 
  24.     - uses: actions/upload-artifact@v2 
  25.       with:  
  26.         name: ${{ env.VERSION }}-tekton-images 
  27.         path: tekton_images.json 

 

部署文件解析

1.下載release部署yaml;

2.解析Deployments對象中的images;

a.tekton-pipelines-controller

b.tekton-pipelines-webhook

c.tekton-dashboard(最新tag)

  1. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.29.0@sha256:72f79471f06d096cc53e51385017c9f0f7edbc87379bf415f99d4bd11cf7bc2b 
  2. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/kubeconfigwriter:v0.29.0@sha256:6d058f2203b9ab66f538cb586c7dc3b7cc31ae958a4135dd99e51799f24b06c9 
  3. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.29.0@sha256:c0b0ed1cd81090ce8eecf60b936e9345089d9dfdb6ebdd2fd7b4a0341ef4f2b9 
  4. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.29.0@sha256:66958b78766741c25e31954f47bc9fd53eaa28263506b262bf2cc6df04f18561 
  5. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.29.0@sha256:6a037d5ba27d9c6be32a9038bfe676fb67d2e4145b4f53e9c61fb3e69f06e816 
  6. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/imagedigestexporter:v0.29.0@sha256:e38dd0d32253fce5aaf1e501c0bc71facc3720564b7e97055921cc5390d612e0 
  7. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/pullrequest-init:v0.29.0@sha256:d28202fb8b33a1d4c05f261ef8dcbcdcf3b469887d4dad256ce91f73c917420e 
  8. gcr.io/google.com/cloudsdktool/cloud-sdk@sha256:27b2c22bf259d9bc1a291e99c63791ba0c27a04d2db0a43241ba0f1f20f4067f 
  9. gcr.io/distroless/base@sha256:aa4fd987555ea10e1a4ec8765da8158b5ffdfef1e72da512c7ede509bc9966c4 
  10. mcr.microsoft.com/powershell:nanoserver@sha256:b6d5ff841b78bdf2dfed7550000fd4f3437385b8fa686ec0f010be24777654d6 
  11. gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.29.0@sha256:46d5b90a7f4e9996351ad893a26bcbd27216676ad4d5316088ce351fb2c2c3dd 

用Python編寫一個數據解析腳本:

  1. import yaml 
  2. import json 
  3. import sys 
  4. import os 
  5.  
  6. class Tekton : 
  7.     def __init__(self, file_name, registry_user, registry_passwd): 
  8.         self.yaml_file = file_name 
  9.         self.arg_imgs = ["gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard@sha256:95f71a2568ced67ec370b5360f88bec3280601908cac9e62dfbb801114480437"
  10.         self.split_str = "###" 
  11.         self.deployments = ["tekton-pipelines-controller""tekton-pipelines-webhook"
  12.         self.kind_type = "Deployment" 
  13.         self.target_registry = "ccr.ccs.tencentyun.com/tektons/" 
  14.         self.repos = [  "controller""kubeconfigwriter""git-init"
  15.                         "entrypoint","nop","imagedigestexporter",  
  16.                         "pullrequest-init""cloud-sdk""base""powershell""webhook"
  17.         self.result = [] 
  18.         self.registry_user = registry_user 
  19.         self.registry_passwd = registry_passwd 
  20.  
  21.     def load_yaml(self, data): 
  22.         content = yaml.load(data) 
  23.         return content 
  24.  
  25.     def load_json(self, data): 
  26.         content = json.loads(data) 
  27.         return content 
  28.  
  29.     def get_images(self): 
  30.         f = open(self.yaml_file, 'r').read() 
  31.         for i in f.split("###")[:-1]: 
  32.             try: 
  33.                 content = self.load_yaml(i.replace("###""")) 
  34.                 if content["kind"] == self.kind_type: 
  35.                     deploy_name = content["metadata"]["name"
  36.                     # 獲取image 
  37.                     if deploy_name in self.deployments: 
  38.                         img = content["spec"]["template"]["spec"]["containers"][0]["image"
  39.                         self.arg_imgs.append(img) 
  40.                     # 獲取參數中的images 
  41.                     if deploy_name == "tekton-pipelines-controller"
  42.                         arg_img =  content["spec"]["template"]["spec"]["containers"][0]["args"
  43.                         for a in arg_img: 
  44.                             if not a.startswith("-"): 
  45.                                 self.arg_imgs.append(a) 
  46.             except Exception as e: 
  47.                 print(e) 
  48.         return self.arg_imgs 
  49.  
  50.     def save_json_file(self, data, file_name): 
  51.         for i in self.arg_imgs: 
  52.             self.result.append({ 
  53.                 "s_image": i, 
  54.                 "t_image": self.target_registry + i.split("/")[-1].split("@")[0] 
  55.                 }) 
  56.         newdata = json.dumps(self.result, indent=4) 
  57.         a=open(file_name, 'w'
  58.         a.write(newdata) 
  59.         a.close() 
  60.  
  61.     def sync_images(self): 
  62.         f = open("tekton_images.json"'r').read() 
  63.         content = self.load_json(f) 
  64.         docker_login_cmd = "docker login -u {0} -p {1} {2}".format( 
  65.             self.registry_user, 
  66.             self.registry_passwd, 
  67.             self.target_registry.split("/")[0]) 
  68.         os.system(docker_login_cmd) 
  69.         for item in content: 
  70.             print("[GetImages] {}".format(item)) 
  71.             docker_pull_cmd = "docker pull {0}".format(item["s_image"]) 
  72.             docker_tag_cmd = "docker tag {0} {1}".format(item["s_image"], item["t_image"]) 
  73.             docker_push_cmd = "docker push {0}".format(item["t_image"]) 
  74.             os.system(docker_pull_cmd + "&&" + docker_tag_cmd + "&&" + docker_push_cmd ) 
  75.             print("[GetImagesDone] {}".format(item)) 
  76.          
  77. if __name__ == '__main__'
  78.     tekton = Tekton("release1.yaml", sys.argv[1], sys.argv[2]) 
  79.     images = tekton.get_images() 
  80.     tekton.save_json_file(images, "tekton_images.json"
  81.     tekton.sync_images() 

鏡像映射文件

s_image 原始鏡像名稱, t_image 目標鏡像名稱; 這里使用騰訊云的鏡像倉庫;

  1.     { 
  2.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.29.0@sha256:72f79471f06d096cc53e51385017c9f0f7edbc87379bf415f99d4bd11cf7bc2b"
  3.         "t_image""ccr.ccs.tencentyun.com/tektons/controller:v0.29.0" 
  4.     }, 
  5.     { 
  6.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/kubeconfigwriter:v0.29.0@sha256:6d058f2203b9ab66f538cb586c7dc3b7cc31ae958a4135dd99e51799f24b06c9"
  7.         "t_image""ccr.ccs.tencentyun.com/tektons/kubeconfigwriter:v0.29.0" 
  8.     }, 
  9.     { 
  10.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.29.0@sha256:c0b0ed1cd81090ce8eecf60b936e9345089d9dfdb6ebdd2fd7b4a0341ef4f2b9"
  11.         "t_image""ccr.ccs.tencentyun.com/tektons/git-init:v0.29.0" 
  12.     }, 
  13.     { 
  14.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.29.0@sha256:66958b78766741c25e31954f47bc9fd53eaa28263506b262bf2cc6df04f18561"
  15.         "t_image""ccr.ccs.tencentyun.com/tektons/entrypoint:v0.29.0" 
  16.     }, 
  17.     { 
  18.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.29.0@sha256:6a037d5ba27d9c6be32a9038bfe676fb67d2e4145b4f53e9c61fb3e69f06e816"
  19.         "t_image""ccr.ccs.tencentyun.com/tektons/nop:v0.29.0" 
  20.     }, 
  21.     { 
  22.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/imagedigestexporter:v0.29.0@sha256:e38dd0d32253fce5aaf1e501c0bc71facc3720564b7e97055921cc5390d612e0"
  23.         "t_image""ccr.ccs.tencentyun.com/tektons/imagedigestexporter:v0.29.0" 
  24.     }, 
  25.     { 
  26.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/pullrequest-init:v0.29.0@sha256:d28202fb8b33a1d4c05f261ef8dcbcdcf3b469887d4dad256ce91f73c917420e"
  27.         "t_image""ccr.ccs.tencentyun.com/tektons/pullrequest-init:v0.29.0" 
  28.     }, 
  29.     { 
  30.         "s_image""gcr.io/google.com/cloudsdktool/cloud-sdk@sha256:27b2c22bf259d9bc1a291e99c63791ba0c27a04d2db0a43241ba0f1f20f4067f"
  31.         "t_image""ccr.ccs.tencentyun.com/tektons/cloud-sdk" 
  32.     }, 
  33.     { 
  34.         "s_image""gcr.io/distroless/base@sha256:aa4fd987555ea10e1a4ec8765da8158b5ffdfef1e72da512c7ede509bc9966c4"
  35.         "t_image""ccr.ccs.tencentyun.com/tektons/base" 
  36.     }, 
  37.     { 
  38.         "s_image""mcr.microsoft.com/powershell:nanoserver@sha256:b6d5ff841b78bdf2dfed7550000fd4f3437385b8fa686ec0f010be24777654d6"
  39.         "t_image""ccr.ccs.tencentyun.com/tektons/powershell:nanoserver" 
  40.     }, 
  41.     { 
  42.         "s_image""gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.29.0@sha256:46d5b90a7f4e9996351ad893a26bcbd27216676ad4d5316088ce351fb2c2c3dd"
  43.         "t_image""ccr.ccs.tencentyun.com/tektons/webhook:v0.29.0" 
  44.     }, 
  45.     { 
  46.     "s_image""gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard@sha256:95f71a2568ced67ec370b5360f88bec3280601908cac9e62dfbb801114480437"
  47.     "t_image""ccr.ccs.tencentyun.com/tektons/dashboard" 
  48.      
  49.     } 

鏡像映射文件可以在GitHubActions頁面下載:

下載鏡像腳本

解析上面生成的鏡像文件,docker pull下載對應的鏡像到本地;

  1. import json  
  2. import os 
  3.  
  4. class Tekton: 
  5.     def __init__(self): 
  6.         self.json_file = "tekton_images.json" 
  7.         self.target_registry = "ccr.ccs.tencentyun.com/tektons/" 
  8.         # self.registry_user = registry_user 
  9.         # self.registry_passwd = registry_passwd 
  10.  
  11.     def load_json(self, data): 
  12.         content = json.loads(data) 
  13.         return content 
  14.  
  15.     def down_images(self): 
  16.         f = open(self.json_file, 'r').read() 
  17.         content = self.load_json(f) 
  18.  
  19.         # docker_login_cmd = "docker login -u {0} -p {1} {2}".format( 
  20.         #             self.registry_user, 
  21.         #             self.registry_passwd, 
  22.         #             self.target_registry.split("/")[0]) 
  23.         for item in content: 
  24.             print("[GetImages] {}".format(item["t_image"])) 
  25.             docker_pull_cmd = "docker pull {0}".format(item["t_image"]) 
  26.             # docker_tag_cmd = "docker tag {0} {1}".format(item["t_image"], item["s_image"].split("@")[0]) 
  27.             os.system(docker_pull_cmd + "&&" + docker_tag_cmd ) 
  28.             print("[GetImagesDone] {}".format(item)) 
  29.  
  30. if __name__ == '__main__'
  31.     t = Tekton().down_images() 

部署Tekton

替換部署文件中的鏡像:

  1. 手動更新release.yaml中的鏡像;然后kubectl apply release.yaml 部署(后續有時間再優化腳本,實現自動更新release.yaml)
  2. 手動更新tekton-dashboard-release.yaml中的鏡像;然后部署;
  1. [root@master ~]# kubectl -n tekton-pipelines get pod 
  2. NAME                                          READY   STATUS    RESTARTS   AGE 
  3. tekton-dashboard-5c4b89d9-2z8g7               1/1     Running   0          21m 
  4. tekton-pipelines-controller-b96f647bb-gff69   1/1     Running   0          13h 
  5. tekton-pipelines-webhook-76bc9c97b9-cd2m4     1/1     Running   0          13h 

編寫一個Ingress來暴露tekton dashboard:

  1. apiVersion: extensions/v1beta1 
  2. kind: Ingress 
  3. metadata: 
  4.   name: tekton-service 
  5.   namespace: tekton-pipelines 
  6.   annotations: 
  7.     kubernetes.io/ingress.class: nginx 
  8.     nginx.ingress.kubernetes.io/proxy-body-size: 256m 
  9. spec: 
  10.   rules: 
  11.   - host: tekton.idevops.site 
  12.     http: 
  13.      paths: 
  14.      - path: / 
  15.        backend: 
  16.           serviceName: tekton-dashboard 
  17.           servicePort: 9097 

訪問UI頁面:

編寫Pipeline

  1. apiVersion: tekton.dev/v1beta1 
  2. kind: Task 
  3. metadata: 
  4.   name: tektoncd-task 
  5. spec: 
  6.   resources: 
  7.     inputs: 
  8.     - name: repo 
  9.       type: git 
  10.   steps: 
  11.   - name: run-test 
  12.     image: maven:3-jdk-8 
  13.     workingDir: /workspace/repo 
  14.     command: ["mvn"
  15.     args: ["clean""package"
  16. --- 
  17. apiVersion: tekton.dev/v1alpha1 
  18. kind: PipelineResource 
  19. metadata: 
  20.   name: tektoncd-resource 
  21. spec: 
  22.   type: git 
  23.   params: 
  24.     - name: url 
  25.       value: http://192.168.1.200/devops/devops-maven-service.git 
  26.     - name: revision 
  27.       value: master 
  28. --- 
  29. apiVersion: tekton.dev/v1beta1 
  30. kind: TaskRun 
  31. metadata: 
  32.   name: cdpipeline 
  33. spec: 
  34.   taskRef: 
  35.     name: tektoncd-task 
  36.   resources: 
  37.     inputs: 
  38.     - name: repo 
  39.       resourceRef: 
  40.         name: tektoncd-resource 

 

責任編輯:姜華 來源: DevOps云學堂
相關推薦

2021-06-09 05:44:45

云原生 CICD

2021-05-13 18:23:53

Tekton云原生Kubernetes

2023-05-04 16:03:50

KubernetesCI/CD集成

2020-10-21 14:10:28

工具測試開發

2021-07-27 08:01:22

CICD平臺

2021-07-09 06:40:59

TektonArgo CD GitOps

2022-04-25 08:07:45

TektonArgocdCI和CD

2022-02-22 09:00:00

軟件開發CI/CD 管道工具

2020-11-19 10:42:36

云遷移云平臺云計算

2023-04-02 21:49:10

開源Tekton

2023-05-09 16:20:54

藍綠部署CI/CD 管道自動化部署

2021-07-02 16:30:01

CICDDevOps

2024-11-06 14:40:18

2020-12-15 16:13:21

DevSecOpsCICD

2022-07-26 06:50:02

云原生JavaMicronaut

2019-08-12 13:47:41

GitHub代碼開發者

2018-09-07 11:12:19

CICD工具

2018-09-20 21:09:06

云原生CNBPS靈雀云

2023-01-30 15:55:08

2022-07-06 10:43:08

CI/CD自動化
點贊
收藏

51CTO技術棧公眾號

好吊日视频在线观看| 国产成人在线免费视频| 日韩三级久久| 天天操天天色综合| 色噜噜一区二区| 99riav国产| 国产精品日韩久久久| 在线性视频日韩欧美| 成年人性生活视频| 竹内纱里奈兽皇系列在线观看 | 国产免费a级片| 最近在线中文字幕| 亚洲精品免费视频| 欧美男人的天堂| 国产成人麻豆精品午夜在线| 亚洲欧美日韩国产一区二区| 超碰91人人草人人干| 波多野结衣 在线| 日本一区二区三区电影免费观看| 在线观看亚洲a| 久青草视频在线播放| 最新真实国产在线视频| 91在线丨porny丨国产| 91在线视频成人| 香蕉污视频在线观看| 国产精品分类| 精品国产一区二区三区久久| 丰满圆润老女人hd| 伊人久久噜噜噜躁狠狠躁| 欧美三级中文字幕在线观看| 国产成人无码a区在线观看视频| 日本在线免费看| 国产日产欧美一区二区三区| 国产视频一区二区不卡| 国产黄色片免费观看| 久久精品国产99国产| 日本欧美一二三区| 日本熟妇乱子伦xxxx| 综合天堂av久久久久久久| 中文字幕亚洲一区| 天天躁夜夜躁狠狠是什么心态 | 视频一区亚洲| 日韩a级作爱片一二三区免费观看| 国产福利91精品一区| 91日本在线观看| 中文字幕日产av| 老司机精品福利视频| 5566日本婷婷色中文字幕97| 国产第一页在线播放| 欧美成人日韩| 欧美成aaa人片免费看| 久久精品亚洲a| 天天综合网网欲色| 久青草国产97香蕉在线视频| 极品美妇后花庭翘臀娇吟小说| 日韩免费在线| 俺也去精品视频在线观看| 国产又粗又猛又爽又黄的视频四季| 国产一区二区三区电影在线观看| 精品视频中文字幕| 免费观看av网站| 国产欧美日韩| 色香阁99久久精品久久久| 老司机深夜福利网站| 色喇叭免费久久综合网| 久久天天躁狠狠躁夜夜av| 久久久久久久久久97| 欧美激情第二页| 欧美激情一区二区久久久| 国产精品第56页| 午夜亚洲视频| 国产免费成人av| 国产女人高潮毛片| 成人免费视频播放| 久久天天狠狠| 在线免费看a| 亚洲色图欧洲色图婷婷| 国产精品久久久久久久久电影网| 国产高清中文字幕在线| 在线视频一区二区三| 亚洲综合日韩欧美| 综合成人在线| 精品偷拍一区二区三区在线看| av电影在线不卡| 欧美高清一区| 欧美一区三区三区高中清蜜桃| 国产91av在线播放| 国产一区二区在线观看免费| 国产一区二区免费电影| 国产视频网址在线| 亚洲老妇xxxxxx| 欧美网站免费观看| 9.1麻豆精品| 日韩av综合网站| 林心如三级全黄裸体| 国产精品第十页| 国产精品毛片a∨一区二区三区|国| 国产日韩免费视频| 91原创在线视频| 中文字幕色一区二区| 成人观看网址| 69久久99精品久久久久婷婷 | 久久久综合av| 中国一级片黄色一级片黄| 国产精品一区三区| 欧美一区1区三区3区公司 | 国产成人一区二区三区| 99久久精品国产成人一区二区| 97精品超碰一区二区三区| 日日噜噜噜夜夜爽爽| 漫画在线观看av| 日韩一级在线观看| 色欲狠狠躁天天躁无码中文字幕 | 91在线视频观看免费| 亚洲精品一二三**| 中文字幕成人在线| 久久久久久久久久久久久久av| 精品系列免费在线观看| 蜜桃传媒视频麻豆一区 | 成人区精品一区二区婷婷| 久久久久久久国产| 99久久久国产精品无码网爆| 国产欧美日韩综合精品一区二区| 国产美女主播在线| 国产精品国产亚洲精品| 一区二区欧美激情| 在线观看日本视频| 91在线精品一区二区| 日韩精品视频在线观看视频| 成人黄色理论片| 自拍偷拍亚洲一区| 中文字幕免费高清网站| www久久精品| 成人午夜精品久久久久久久蜜臀| 欧美视频三区| 久久久国产一区二区三区| 中文字幕人妻一区二区三区视频| 久久蜜桃一区二区| 欧美日韩在线视频一区二区三区| a看欧美黄色女同性恋| 色综合男人天堂| av av片在线看| 亚洲欧美日韩国产综合| 中文字幕在线视频一区二区三区 | 99久久婷婷国产精品综合| 嫩草影院中文字幕| 日韩一区网站| 欧美日韩999| www久久久com| 亚洲影院理伦片| 好吊操视频这里只有精品| 欧美在线三级| 亚洲free性xxxx护士白浆| 黄色免费网站在线观看| 欧美一区二区三区日韩| 欧美日韩中文字幕在线观看| 国产在线精品一区二区夜色| 黄色网址在线免费看| 粉嫩一区二区三区在线观看| 成人444kkkk在线观看| 精品国产黄色片| 一区二区三区在线视频播放| 亚洲精品乱码久久久久久蜜桃欧美| 精品99视频| 久久久精彩视频| 偷拍中文亚洲欧美动漫| 亚洲天堂网在线观看| 中文字幕人成人乱码亚洲电影| 亚洲天堂2016| 69xxx免费视频| 亚洲一区一卡| 亚洲欧美久久234| 91麻豆精品国产综合久久久| 欧美高清一级大片| 日韩精品视频无播放器在线看| 欧美在线你懂得| 精品欧美一区二区久久久久| 成人av在线影院| av免费网站观看| 欧美一区视频| 久久99精品久久久久久久久久| 户外露出一区二区三区| 久久香蕉国产线看观看av| 六月丁香色婷婷| 欧美在线999| 久草视频在线资源站| 久久综合国产精品| 欧美成人三级在线播放| 伊人狠狠色j香婷婷综合| 免费日韩av电影| 在线高清欧美| 欧美在线一级视频| 亚洲男同gay网站| 亚洲人成电影在线| www.亚洲黄色| 在线观看不卡视频| 国产在线视频二区| 日本一区二区动态图| 性农村xxxxx小树林| 日本少妇一区二区| 久久久久久免费看| 日韩欧美高清| 欧美另类高清视频在线| 视频一区在线| 国产精品自拍视频| 少妇视频在线观看| 欧美日韩福利电影| 午夜看片在线免费| 精品无人区太爽高潮在线播放| 国产精品久久免费| 在线视频观看一区| 黄色一级片免费看| 亚洲精品中文字幕在线观看| 精品人妻互换一区二区三区 | 国产女主播喷水高潮网红在线| 国产一区二区久久| 国产精品视频黄色| 国产精品婷婷| 男人添女荫道口喷水视频| 日韩毛片视频| 亚洲7777| 国产乱码精品一区二区三区四区 | 国产一区99| 精品午夜一区二区| 超碰地址久久| 成人av播放| 国产一区二区高清在线| 国产精品天天狠天天看| 日韩天堂在线| 国产国语videosex另类| 625成人欧美午夜电影| 久久久久亚洲精品| 免费看电影在线| 欧美老肥婆性猛交视频| 超鹏97在线| 久久天堂av综合合色| 久久亚洲天堂| 久久久精品一区二区三区| 一级毛片视频在线观看| 这里只有视频精品| 尤物网在线观看| 在线视频日本亚洲性| 韩国三级在线观看久| 亚洲精品中文字幕女同| 欧美18xxxxx| 亚洲图片欧洲图片av| 国产一级免费在线观看| 亚洲视频精品在线| av在线电影观看| 中文字幕在线视频日韩| 免费a在线看| 久久国产加勒比精品无码| 成年人黄视频在线观看| 精品少妇v888av| 久久av色综合| 91精品国产91久久久久久| 亚洲女色av| 国产精品69久久| 国产亚洲精彩久久| 成人国产精品久久久| 日本少妇精品亚洲第一区| 99久久自偷自偷国产精品不卡| 99re6热只有精品免费观看| 国产一区二区三区奇米久涩| 欧美绝顶高潮抽搐喷水合集| 美女精品国产| 国产精品99视频| www.激情网| 国产精品视频| 高清一区在线观看| 国产精品综合网| 在线免费观看污视频| 国产婷婷一区二区| 无码黑人精品一区二区| 洋洋成人永久网站入口| 四虎精品永久在线| 欧美日韩卡一卡二| 亚洲乱码在线观看| 亚洲美女在线视频| 黄色在线免费网站| 91精品国产九九九久久久亚洲| 欧美电影网站| 亚洲综合第一页| 欧美极品在线观看| 中国一级大黄大黄大色毛片| 亚洲激情婷婷| 久久久久久蜜桃一区二区| 懂色av一区二区在线播放| mm131丰满少妇人体欣赏图| 亚洲人亚洲人成电影网站色| 91av在线免费视频| 在线不卡中文字幕| 神马久久精品| 久久久黄色av| 亚洲欧美在线成人| 91免费版黄色| 成人一区二区| 国产极品粉嫩福利姬萌白酱| 久久99国产精品尤物| 色天使在线视频| 亚洲乱码国产乱码精品精的特点| 成人免费视频毛片| 日韩一级片网址| 成人高清免费观看mv| 97国产suv精品一区二区62| 超碰一区二区| 国产66精品久久久久999小说| 欧美限制电影| 日本福利视频在线| 国产福利一区在线观看| 欧美日韩国产黄色| 欧美日韩亚洲国产一区| 超碰免费在线97| 日韩资源在线观看| 搜成人激情视频| 久久99导航| 在线看片日韩| 91精产国品一二三| 亚洲欧美偷拍三级| 中文字幕av在线免费观看| 国产视频精品免费播放| 国产高清在线a视频大全| 91精品免费视频| 久久在线播放| the porn av| 国产亚洲精品超碰| wwwwww国产| 亚洲精品美女在线观看播放| 色帝国亚洲欧美在线| 91在线视频免费| 99视频精品全国免费| 日本人69视频| 国产精品灌醉下药二区| 中文字幕有码无码人妻av蜜桃| 亚洲男子天堂网| 成人片免费看| 欧美成人在线免费观看| 国产精品一区亚洲| 美国黄色a级片| 欧美日韩一区二区精品| 亚洲AV第二区国产精品| 欧美性受xxxx白人性爽| 欧美理伦片在线播放| 久色视频在线播放| 99re8在线精品视频免费播放| 五月天婷婷综合网| 亚洲男女性事视频| 成人看片网站| 一区二区三区|亚洲午夜| 久久丁香综合五月国产三级网站| 国产一区第一页| 91精品国产综合久久精品| aaa大片在线观看| 电影午夜精品一区二区三区| 亚洲国产综合在线看不卡| 在线观看国产免费视频| 欧美性猛交xxxx偷拍洗澡| 国产一二在线观看| 国产精品视频男人的天堂| 欧美电影免费观看高清| 91丝袜超薄交口足| 一级特黄大欧美久久久| 天堂网在线资源| 日本欧美在线视频| 99热国内精品| 插我舔内射18免费视频| 日韩欧美极品在线观看| 97超碰人人在线| 91久久国产自产拍夜夜嗨| 99成人精品| 欧洲美熟女乱又伦| 91精品国模一区二区三区| 黄色小说在线播放| 欧美国产综合视频| 久久99国产精品久久99| 18精品爽视频在线观看| 亚洲美女在线观看| 99久久99九九99九九九| 国产主播自拍av| 欧美极品美女视频| 精品国自产拍在线观看| 欧美一区二区三区免费视| 久久国产电影| 在线xxxxx| 欧美午夜片在线观看| 麻豆蜜桃在线| 日韩精品在在线一区二区中文 | 美国黄色a级片| 欧美人xxxx| 国产色播av在线| 成年人免费观看的视频| 99精品久久久久久| 国产又粗又黄又爽视频| 98精品国产高清在线xxxx天堂| 成人影视亚洲图片在线| 丰满大乳奶做爰ⅹxx视频| 欧美乱熟臀69xxxxxx| 在线男人天堂| 欧美交换配乱吟粗大25p| 国产日产欧美一区|