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

一鍵部署 SpringCloud 微服務,yyds!

開發 前端
因為jenkins需要pull git上的代碼,正常來說,代碼都是私有的,git clone操作的時候會需要密碼,就不能完成自動化操作了。這里使用SSH-KEY 的方式,讓git clone操作無需密碼就能完成克隆。

一鍵部署Spring Cloud微服務,需要用到 Jenkins K8S Docker等工具,自行安裝即可。

本文使用Jenkins部署,流程如下圖:

圖片圖片

  • 開發者將代碼push到git
  • 運維人員通過jenkins部署,自動到git上pull代碼
  • 通過maven構建代碼
  • 將maven構建后的jar打包成docker鏡像 并 push docker鏡像到docker registry
  • 通過k8s發起 發布/更新 服務 操作

其中 2~5步驟都會在jenkins中進行操作。

1、開發者將代碼PUSH到Git

這一步本文不做詳細描述。

2、通過Jenkins部署,自動到Git上PULL代碼

這里需要用到Jenkins 的 pipeline插件。

2.1、 配置SSH-KEY

因為jenkins需要pull git上的代碼,正常來說,代碼都是私有的,git clone操作的時候會需要密碼,就不能完成自動化操作了。這里使用SSH-KEY 的方式,讓git clone操作無需密碼就能完成克隆。

2.1.1、生成/添加SSH公鑰

在jenkins所在環境里執行:

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"

注意:這里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名稱,并不約束或要求具體命名為某個郵箱。

現網的大部分教程均講解的使用郵箱生成,其一開始的初衷僅僅是為了便于辨識所以使用了郵箱。

按照提示完成三次回車,即可生成 ssh key。通過查看 ~/.ssh/id_ed25519.pub 文件內容,獲取到你的 public key。

圖片圖片

得到公鑰 public key 內容。

cat ~/.ssh/id_ed25519.pub

復制備用。

2.1.2、將公鑰配置到git平臺

git平臺可以是github,gitee,也可以是自己搭建的gitlab等。

我這里使用gitee。

通過倉庫主頁 「管理」->「部署公鑰管理」->「添加部署公鑰」 ,添加生成的 public key 添加到倉庫中。

圖片圖片

添加成功后,到jenkins所在環境運行。

ssh -T git@gitee.com

圖片圖片

首次使用需要確認并添加主機到本機SSH可信列表。若返回 Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 內容,則證明添加成功。

2.1.3、測試

復制你項目的SSH鏈接;

圖片圖片

在jenkins所在環境;

執行git clone git@gitee.com:xxxx.git;

圖片圖片

2.2、配置Jenkins的pipeline 自動clone代碼

2.2.1、Jenkins創建任務

新建任務;

圖片圖片

選擇流水線 確定;

圖片圖片

這里勾選參數化構建,選擇字符參數,用于輸入構建代碼的版本;

圖片圖片

默認值填master,根據自身項目實際填寫:

圖片圖片

拉到最下面的流水線,寫pipeline腳本,如果不知道怎么寫,可以點擊流水線語法進行參考:

圖片圖片

這是我的腳本, REPOSITORY 填寫項目的ssh地址,REPOSITORY_VERSION是剛剛配置的構建參數:

pipeline {
    agent any
    
    environment {
        REPOSITORY="git@gitee.com:xxxxxx/cloud-demo.git"
    }
    
    stages {
        stage('拉代碼') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
    }
}

保存

2.2.2、測試拉代碼流程

返回Jenkins 首頁,選擇剛剛創建的項目。

圖片圖片

點擊右邊的運行按鈕;

圖片圖片

輸入代碼分支版本;

點擊開始構建;

圖片圖片

看到這里就是已經構建成功了;

圖片圖片

根據日志提示的目錄,可以看到目錄下已經有代碼了。

3、通過maven構建代碼

3.1、maven插件安裝

因為這里使用到了maven,jenkins需要先安裝maven工具。

3.2、maven構建項目

補充pipeline腳本。

pipeline {
    agent any
    
    environment {
        REPOSITORY="git@gitee.com:xxxxxx/cloud-demo.git"
        MODULE="cloud-demo-m-test-dubbo-service"
    }
    
    stages {
        stage('拉代碼') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
        
        stage('編譯代碼') {
            steps {
                echo "start compile"
                sh "cd cloud-demo-project && mvn -U clean install"
                echo "compile project ................................"
                sh "cd cloud-demo-dependencies && mvn -U clean install"
                echo "compile dependencies ................................"
                sh "cd cloud-demo-common && mvn -U clean install"
                echo "compile common ................................"
                sh "cd cloud-demo-m-test && mvn -U -am clean install"
                echo "compile m-test ................................"
                sh "cd cloud-demo-m-test/cloud-demo-m-test-common && mvn -U -am clean install"
                echo "compile m-test-dubbo-api ................................"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-api && mvn -U -am clean install"
                echo "compile m-test-dubbo-service ................................"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service && mvn -U -am clean package"
            }
        }
    }
}

這里補充了stage('編譯代碼') {} 部分,用于maven編譯。具體編譯腳本需要根據自己項目實際,這個是我項目的編譯必須步驟。

3.3測試拉代碼流程+構建項目過程

重復2.2.2步驟,查看運行結果;

圖片圖片

構建成功

4、將maven構建后的jar打包成docker鏡像 并 push docker鏡像到docker registry

在jenkins環境下;

創建目錄用于存放腳本文件;

mkdir /usr/local/project/.env/cloud-demo-m-test-dubbo-service/ -p

這個目錄下存放4個文件。

  • build.sh
  • Dockerfile
  • application.properties
  • bootstrap.properties

application.properties 和 bootstrap.properties 是springcloud的配置文件,內容根據自己項目情況

buils.sh 文件內容;

#!/usr/bin/env bash

REPOSITORY_VERSION=$1
GIT_REVISION=`git log -1 --pretty=format:"%h"`
TIME=`date "+%Y.%m.%d.%H.%M"`
IMAGE_NAME=192.168.31.100:5000/cloud-demo/cloud-demo-m-test-dubbo-service
IMAGE_TAG=${REPOSITORY_VERSION}-${GIT_REVISION}-${TIME}

docker build -t ${IMAGE_NAME}:${IMAGE_TAG} .

docker push ${IMAGE_NAME}:${IMAGE_TAG}

echo "${IMAGE_NAME}:${IMAGE_TAG}" > IMAGE
## 內容說明
REPOSITORY_VERSION 是需要傳入的參數,傳項目git分支名,用于打標簽使用
GIT_REVISION 是獲取當前git的提交版本 如 c9c8525,線上問題可以根據這個版本查找具體代碼問題
TIME 年.月.日.時.分  記錄打包時間,也用于打標簽使用
IMAGE_NAME 鏡像名,這里前綴包含了192.168.31.100:5000 是因為我打包之后會push到192.168.31.100:5000,其他服務器可以到這里來pull鏡像
docker build -t ${IMAGE_NAME}:${IMAGE_TAG} . 構建鏡像
docker push ${IMAGE_NAME}:${IMAGE_TAG}  推送鏡像
echo "${IMAGE_NAME}:${IMAGE_TAG}" > IMAGE  把鏡像名:鏡像標簽 輸出到IMAGE文件里,方便后續步驟獲取

Dockerfile 文件內容;

FROM openjdk:8u342-jdk
MAINTAINER yanger yanger@qq.com

COPY target/cloud-demo-m-test-dubbo-service-1.0-SNAPSHOT.jar /cloud-demo-m-test-dubbo-service.jar
COPY application.properties /application.properties
COPY bootstrap.properties /bootstrap.properties
ENTRYPOINT ["java", "-jar", "/cloud-demo-m-test-dubbo-service.jar"]
## 內容說明
FROM openjdk:8u342-jdk 使用openjdk:8u342-jdk 作為基礎鏡像
COPY 文件到鏡像
ENTRYPOINT ["java", "-jar", "/cloud-demo-m-test-dubbo-service.jar"] 啟動時運行 java -jar /cloud-demo-m-test-dubbo-service.jar

這里用到了docker registry 如果還沒有registry 請先啟動,可以用docker的方式啟動;

docker run -d -p 5000:5000 --name registry registry

build.sh文件需要可執行權限;

chmod 755 build.sh

補充pipeline腳本;

pipeline {
    agent any
    
    environment {
        REPOSITORY="git@gitee.com:xxxxxx/cloud-demo.git"
        SCRIPT_PATH="/usr/local/project/.env/cloud-demo-m-test-dubbo-service/"
    }
    
    stages {
        stage('拉代碼') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
        
        stage('編譯代碼') {
            steps {
                echo "start compile"
                sh "cd cloud-demo-project && /usr/local/maven/bin/mvn -U clean install"
                echo "compile project ................................"
                sh "cd cloud-demo-dependencies && /usr/local/maven/bin/mvn -U clean install"
                echo "compile dependencies ................................"
                sh "cd cloud-demo-common && /usr/local/maven/bin/mvn -U clean install"
                echo "compile common ................................"
                sh "cd cloud-demo-m-test && /usr/local/maven/bin/mvn -U -am clean install"
                echo "compile m-test ................................"
                sh "cd cloud-demo-m-test/cloud-demo-m-test-common && /usr/local/maven/bin/mvn -U -am clean install"
                echo "compile m-test-dubbo-api ................................"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-api && /usr/local/maven/bin/mvn -U -am clean install"
                echo "compile m-test-dubbo-service ................................"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service && /usr/local/maven/bin/mvn -U -am clean package"
            }
        }

        stage('構建鏡像') {
            steps {
                echo "start build image"
                sh "cp ${SCRIPT_PATH}/build.sh cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cp ${SCRIPT_PATH}/Dockerfile cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cp ${SCRIPT_PATH}/application.properties cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cp ${SCRIPT_PATH}/bootstrap.properties cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/ && ./build.sh ${REPOSITORY_VERSION}"
            }
        }

    }
}

補充了stage(‘構建鏡像’){} 內容和 environment 部分加了個參數 SCRIPT_PATH。

SCRIPT_PATH參數是上面創建的文件夾路徑。

stage(‘構建鏡像’){}這一步是復制相應文件到項目目錄下,并且執行build.sh腳本。

測試

圖片圖片

可以看到鏡像已經打包好,并且已經push到registry了。

瀏覽器訪問http://192.168.31.100:5000/v2/cloud-demo/cloud-demo-m-test-dubbo-service/tags/list。

可以看到registry有cloud-demo/cloud-demo-m-test-dubbo-service:master-7012e1d-2023.05.01.10.16這個鏡像。

5、通過k8s發起 發布/更新 服務 操作

5.1、配置構建K8S資源的描述文件

在 /usr/local/project/.env/cloud-demo-m-test-dubbo-service/ 目錄新增文件 cloud-demo-m-test-dubbo-service.yaml。

文件內容;

apiVersion: apps/v1
kind:Deployment
metadata:
creationTimestamp:null
labels:
    app:cloud-demo-m-test-dubbo-service
name:cloud-demo-m-test-dubbo-service
spec:
replicas:1
selector:
    matchLabels:
      app:cloud-demo-m-test-dubbo-service
strategy:{}
template:
    metadata:
      creationTimestamp:null
      labels:
        app:cloud-demo-m-test-dubbo-service
    spec:
      containers:
      -image:IMAGE_AND_TAG
        name:cloud-demo-m-test-dubbo-service
        resources:{}
        volumeMounts:
        -name:log-path
          mountPath:/logs
      volumes:
      -name:log-path
        hostPath:
          path:/root/k8s/cloud-demo-m-test-dubbo-service/logs
status:{}

---

apiVersion:v1
kind:Service
metadata:
creationTimestamp:null
labels:
    app:cloud-demo-m-test-dubbo-service
name:cloud-demo-m-test-dubbo-service
spec:
ports:
-port:20881
    protocol:TCP
    targetPort:20881
selector:
    app:cloud-demo-m-test-dubbo-service
type:NodePort
status:
loadBalancer:{}

這個文件是構建K8S資源的描述文件,創建deployment 和service,暴露端口20881,掛載/logs目錄到主機。

其中 IMAGE_AND_TAG 是需要替換為相應 容器名:容器標簽 的。

5.2、完善jenkins步驟

pipeline {
    agent any
    
    environment {
        REPOSITORY="git@gitee.com:xxxxxx/cloud-demo.git"
        SCRIPT_PATH="/usr/local/project/.env/cloud-demo-m-test-dubbo-service"
        IMAGE=""
    }
    
    stages {
        stage('拉代碼') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
        
        stage('編譯代碼') {
            steps {
                echo "start compile"
                sh "cd cloud-demo-project && /usr/local/maven/bin/mvn -U clean install"
                echo "compile project ................................"
                sh "cd cloud-demo-dependencies && /usr/local/maven/bin/mvn -U clean install"
                echo "compile dependencies ................................"
                sh "cd cloud-demo-common && /usr/local/maven/bin/mvn -U clean install"
                echo "compile common ................................"
                sh "cd cloud-demo-m-test && /usr/local/maven/bin/mvn -U -am clean install"
                echo "compile m-test ................................"
                sh "cd cloud-demo-m-test/cloud-demo-m-test-common && /usr/local/maven/bin/mvn -U -am clean install"
                echo "compile m-test-dubbo-api ................................"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-api && /usr/local/maven/bin/mvn -U -am clean install"
                echo "compile m-test-dubbo-service ................................"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service && /usr/local/maven/bin/mvn -U -am clean package"
            }
        }

        stage('構建鏡像') {
            steps {
                echo "start build image"
                sh "cp ${SCRIPT_PATH}/build.sh cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cp ${SCRIPT_PATH}/Dockerfile cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cp ${SCRIPT_PATH}/application.properties cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cp ${SCRIPT_PATH}/bootstrap.properties cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "cd cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/ && ./build.sh ${REPOSITORY_VERSION}"
            }
        }

        stage('發布') {
            steps {
                echo "start deploy"
                script {
                    IMAGE = readFile "cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/IMAGE"
                    IMAGE = IMAGE.trim()
                    if (IMAGE == "") {
                        throw new Exception("獲取鏡像名文件失敗,請重試")
                    }
                }
                echo "IMAGE: -- ${IMAGE}"
                sh "cp ${SCRIPT_PATH}/cloud-demo-m-test-dubbo-service.yaml cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/"
                sh "sed -i \"s#IMAGE_AND_TAG#${IMAGE}#g\" cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/cloud-demo-m-test-dubbo-service.yaml"
                sh "kubectl apply -f cloud-demo-m-test/dubbo/cloud-demo-m-test-dubbo-service/cloud-demo-m-test-dubbo-service.yaml"
            }
        }
    }
}

添加了 stage('發布') {} 部分

  • 通過讀取IMAGE文件,獲取鏡像名:鏡像標簽
  • 如果獲取不到鏡像名:鏡像標簽,拋出異常
  • 將cloud-demo-m-test-dubbo-service.yaml文件復制到工作目錄
  • 用鏡像名:鏡像標簽 替換掉 IMAGE_AND_TAG
  • 使用kubectl命令發布/更新服務

5.3、測試

在jenkins上構建項目

圖片圖片

在K8S master服務器上,執行。

kubectl get all

圖片圖片

搞定。

責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2023-09-12 07:06:04

2023-09-14 20:55:52

NodeJSDocker

2023-06-15 10:00:00

Jenkins任務操作

2024-04-08 13:59:03

大模型Replicate

2015-02-09 15:25:52

換膚

2021-12-02 07:50:29

分支服務git worktre

2020-05-14 12:09:56

Centos7EFK部署

2012-07-03 16:03:07

2015-06-09 10:36:13

Cloud FoundAzurePaaS

2023-09-08 23:30:19

2018-01-09 16:45:31

離線網絡網絡安全一鍵式部署

2025-04-29 10:13:58

2025-02-06 09:22:28

2015-07-30 16:18:14

企業網D1Net

2022-07-22 14:32:29

賬號登錄服務鴻蒙

2019-08-06 13:37:55

微服務架構數據

2015-11-03 15:29:49

ONOS開放網絡操作系統SDN

2023-03-05 23:11:07

Go語言服務
點贊
收藏

51CTO技術棧公眾號

91精品久久久久久粉嫩| 少妇又紧又色又爽又刺激视频| 日韩一级淫片| 一区二区三区色| 国产精品香蕉视屏| 韩国av中文字幕| 日韩欧美精品| 欧美sm美女调教| wwwxxx黄色片| 午夜伦理在线视频| 久久综合成人精品亚洲另类欧美 | 国产夫妻在线| 中文字幕二三区不卡| 亚洲综合日韩在线| 国产农村妇女aaaaa视频| 日韩中文字幕高清在线观看| 精品国产123| 天堂网在线免费观看| 色a资源在线| 日本一区二区在线不卡| 国产精品福利视频| 亚洲天堂中文网| 一区二区动漫| 欧美大片免费看| 亚洲午夜精品久久久久久高潮| 试看120秒一区二区三区| 色偷偷久久一区二区三区| 99亚洲精品视频| 玖玖综合伊人| 成人免费毛片app| 91精品久久久久久久久不口人| av资源免费观看| 欧美日本中文| 久久精视频免费在线久久完整在线看| av网站免费在线播放| 深夜福利一区| 日韩一区二区三免费高清| 免费在线观看毛片网站| ririsao久久精品一区| 一色桃子久久精品亚洲| 色综合久久av| 玖玖综合伊人| 91久色porny| 国产精品日韩欧美一区二区| 国产jzjzjz丝袜老师水多| 裸体在线国模精品偷拍| 日韩美女在线观看| 日本午夜视频在线观看| 最新亚洲激情| 欧美精品videossex性护士| 久久噜噜色综合一区二区| 精品国产一区二区三区噜噜噜 | 男人天堂网在线| 99这里只有精品| 国产乱码精品一区二区三区中文| av网站免费大全| 国产精一区二区三区| 91在线视频导航| 国产xxxx在线观看| 国产在线精品免费| 亚洲精品免费在线视频| 99精品视频在线播放免费| 极品少妇一区二区| 成人黄色免费看| 国产精品欧美久久久久天天影视| 加勒比av一区二区| 亚洲综合中文字幕在线| 国产激情无套内精对白视频| 激情综合网最新| 91免费欧美精品| 亚洲精品无遮挡| av电影在线观看一区| 免费一区二区三区| 国产爆初菊在线观看免费视频网站| 国产喷白浆一区二区三区| 色一情一乱一伦一区二区三区丨| 男人影院在线观看| 一区二区三区在线观看网站| 免费拍拍拍网站| 黄色污网站在线观看| 亚洲成a人片综合在线| 欧美国产日韩激情| 韩国美女久久| 欧美巨大另类极品videosbest | 啊v视频在线一区二区三区| 免费国产羞羞网站美图| 国自产拍偷拍福利精品免费一| 久久乐国产精品| 黄色一级片免费在线观看| 日韩精品午夜视频| 91精品国产99久久久久久红楼| 蜜桃视频久久一区免费观看入口 | 久久国产日韩欧美| 国产高清视频在线播放| 亚洲欧美日韩国产中文在线| 大伊香蕉精品视频在线| 日韩经典一区| 欧美成人欧美edvon| 黄色正能量网站| 欧美国产一区二区三区激情无套| 欧美激情精品久久久久久蜜臀| 免费看日韩毛片| 免费观看在线综合色| 99久久一区三区四区免费| 男人的天堂在线免费视频| 亚洲三级理论片| 国产精品视频一区二区三区四区五区| 亚州精品国产| 亚洲精品xxx| 神马久久精品综合| 久久五月激情| 国产不卡一区二区在线观看| 97视频在线观看网站| 亚洲成人av中文| aaa一级黄色片| 中文字幕av一区二区三区人| 欧美国产在线视频| 中文字幕在线天堂| 不卡视频免费播放| 国产福利片一区二区| 成人美女大片| 亚洲成人精品视频在线观看| 免费看特级毛片| 日韩和欧美的一区| 久久av一区二区三区亚洲| 2024最新电影在线免费观看| 欧美色电影在线| 一本加勒比北条麻妃| 亚洲第一伊人| 99理论电影网| 激情影院在线观看| 在线观看网站黄不卡| 日韩精品人妻中文字幕有码 | 97超碰中文字幕| 国产视频一区二区在线| 成年人网站免费视频| 亚洲日本视频在线| 久久综合网hezyo| 亚洲在线精品视频| 中文字幕精品在线不卡| 99免费视频观看| 久久99国内| 91精品国产免费久久久久久| 动漫av一区二区三区| 一区二区三区中文免费| 国产成人美女视频| 999国产精品视频| 国产精品丝袜久久久久久高清| 嫩草研究院在线| 在线视频你懂得一区二区三区| 人人妻人人澡人人爽人人精品| 国产欧美91| 久久精品国产一区二区三区不卡| www成人免费观看| 亚洲成人av中文字幕| 久久久久成人网站| 风间由美性色一区二区三区 | 老鸭窝亚洲一区二区三区| 久久精品久久精品国产大片| 日本黄色免费在线| 亚洲男人天天操| 中文字幕一区二区三区四区免费看| 欧美激情自拍偷拍| 蜜桃福利午夜精品一区| 综合激情视频| 精品999在线观看| 免费观看亚洲| 伊人精品在线观看| 国产精品欧美久久久久天天影视| 亚洲一区在线观看免费观看电影高清| 国产chinese中国hdxxxx| 久久成人亚洲| 一区二区三区av| 欧美日韩国产一区二区在线观看| 国内精品在线一区| 国产区高清在线| 日韩视频免费观看高清完整版在线观看 | 亚洲免费在线视频一区 二区| 苍井空张开腿实干12次| 亚洲影视在线| 9999在线观看| 日韩有码av| 成人妇女淫片aaaa视频| 91吃瓜在线观看| 在线视频日韩精品| 亚洲av无码国产综合专区| 精品福利在线视频| 男人的天堂最新网址| 91精品国产自产拍在线观看蜜| 国产福利不卡| 黑人精品一区| 久久精品国产2020观看福利| 丰满少妇被猛烈进入| 精品久久在线播放| 亚洲天堂最新地址| 国产一区二区三区在线观看精品| www一区二区www免费| 欧美在线电影| 91黄色精品| 伊人色综合一区二区三区影院视频| 久久精品视频导航| 瑟瑟在线观看| 欧美二区三区的天堂| 国产精品7777| 亚洲欧美视频在线观看视频| 欧美双性人妖o0| 青椒成人免费视频| 中国丰满熟妇xxxx性| 久久一区91| 九九九九精品| 色狠狠一区二区三区| 国产做受高潮69| www在线视频| 精品视频在线导航| 国产露脸国语对白在线| 欧美性猛交xxxx富婆弯腰| 欧美成人精品欧美一级私黄| 91丝袜呻吟高潮美腿白嫩在线观看| 少妇一级淫免费播放| 亚洲精品免费观看| 大陆极品少妇内射aaaaaa| 制服丝袜日韩| 国产精品一区二区三区四区五区| 在线观看v片| 久久久之久亚州精品露出| 免费观看在线午夜影视| 亚洲男人av电影| 国产成人精品毛片| 欧美高清dvd| 日韩在线播放中文字幕| 亚洲一区二区三区视频在线播放 | 国产视频第一页| 欧美性猛交xxxxxx富婆| 天天插天天操天天干| 一区二区三区在线观看国产| 自拍偷拍第9页| 国产欧美一区二区精品婷婷| 最新在线黄色网址| 成人中文字幕在线| 亚洲热在线视频| 国产精品亚洲一区二区三区妖精| 中文字幕亚洲欧洲| 日本成人在线不卡视频| 国产美女无遮挡网站| 激情久久五月| 青草全福视在线| 国产精品久久久久9999赢消| 亚洲图片欧洲图片日韩av| 国产videos久久| 你懂的网址一区二区三区| 日本在线一区二区三区| 亚洲最大成人免费视频| 亚洲精品一区二区在线播放∴| 国产99久久精品一区二区永久免费| 任你弄在线视频免费观看| 欧美精品videossex性护士| 2024短剧网剧在线观看| 欧美成人手机在线| 欧美寡妇性猛交xxx免费| 欧美国产极速在线| 神马午夜伦理不卡| 欧美国产日韩在线| 一个人www视频在线免费观看| 91国内产香蕉| 中文字幕资源网在线观看免费 | 欧美极品一区| 日韩精品a在线观看91| 欧美在线视频二区| 日韩成人精品一区| 中文字幕日韩一区二区三区| 欧美成人一品| 六月婷婷在线视频| 国产精品日韩精品欧美精品| 无码内射中文字幕岛国片| 日韩精品午夜视频| 中文字幕永久有效| 国产一区二区电影| 日本免费福利视频| 久久久久99精品国产片| av手机在线播放| 樱花草国产18久久久久| 成人免费看片98| 午夜欧美在线一二页| 国产精品suv一区二区69| 色94色欧美sute亚洲线路二| 中文字幕一级片| 日韩欧美国产一区二区三区 | 成人精品一区二区三区中文字幕| 日韩免费高清一区二区| 国产精品色呦呦| av激情在线观看| 精品国产鲁一鲁一区二区张丽 | 日韩一二三区不卡| 偷拍自拍在线| 日韩最新在线视频| 国产盗摄一区二区| 国产精品一区二区三区免费视频| 欧美经典一区| 麻豆av一区二区| 成人久久电影| 六月婷婷在线视频| 久久超碰97人人做人人爱| 免费观看污网站| 国产精品久久久久久久久图文区 | 国产suv精品一区二区三区88区| 羞羞视频在线观看一区二区| 国产精品一区二区不卡视频| 成人影院天天5g天天爽无毒影院| 国产免费一区二区视频| 免费一级片91| 亚洲av网址在线| 一区二区三区在线视频免费观看| 欧美brazzers| 精品国产乱码久久久久久闺蜜| 成人一区二区不卡免费| 8090成年在线看片午夜| 亚洲免费看片| 精品日本一区二区三区在线观看| 欧美国产91| 9久久婷婷国产综合精品性色| 丁香激情综合国产| 国产黄色片在线| 狠狠色狠狠色综合日日五| 国产裸体无遮挡| 亚洲欧洲日产国码av系列天堂| 成人观看网址| 91中文在线视频| 日本高清免费电影一区| 国产成人精品视频免费看| 国产成人精品综合在线观看| 永久免费未视频| 欧美在线观看一二区| 欧美 日韩 国产 精品| 精品久久国产精品| 日韩毛片在线| 麻豆91蜜桃| 国产在线欧美| 亚洲国产精品狼友在线观看| 亚洲精品老司机| 亚洲怡红院av| 久久综合免费视频| 小说区图片区亚洲| 欧美日韩精品免费在线观看视频| 国产日韩欧美一区| 精品无码人妻少妇久久久久久| 久久久蜜桃精品| 国产小视频在线免费观看| 欧美精品一区二区久久久| 免费黄网站在线| 91精品国产自产在线| 欧美色图在线播放| 国产高潮免费视频| 国产日韩欧美制服另类| 高清乱码免费看污| 日韩精品免费视频| 精精国产xxx在线视频app| 国产精品久久久久久久天堂第1集| 欧美色图首页| 一级黄色电影片| 亚洲国产日日夜夜| 中文字幕人妻色偷偷久久| 精品国产一区二区三区四区在线观看| 99九九久久| 日韩中文一区| 国产美女精品一区二区三区| 中文字幕无码日韩专区免费| 欧美另类一区二区三区| 成人免费网址| av色综合网| 欧美国产专区| 少妇饥渴放荡91麻豆| 福利视频一区二区| www.视频在线.com| 国产日韩一区在线| 欧美黄色一区| 亚洲av无码一区二区三区网址| 岛国av午夜精品| 成人免费高清在线播放| 97久久天天综合色天天综合色hd| 精品白丝av| 最新在线黄色网址| 7777女厕盗摄久久久| 欧美家庭影院| 99在线看视频| 奇米影视7777精品一区二区| 欧美做爰啪啪xxxⅹ性| 日韩欧美成人午夜| 成年男女免费视频网站不卡| 日韩欧美手机在线| 风流少妇一区二区| 91丨九色丨海角社区| 深夜福利亚洲导航| 成人自拍在线| 中文字幕欧美人妻精品一区| 成人免费一区二区三区在线观看| 丰满少妇被猛烈进入| 国产精品久久久久久久久久久新郎 | 这里只有精品99re| 美女福利一区二区三区| 天天爱天天做天天操|