日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

改造前后端分离的jeecg项目部署到k8s中

發(fā)布時(shí)間:2023/12/24 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 改造前后端分离的jeecg项目部署到k8s中 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

官網(wǎng)地址:http://www.jeecg.com/
開發(fā)文檔地址:http://doc.jeecg.com/2043873
GitHub地址:https://github.com/zhangdaiscott/jeecg-boot

大致步驟如下:
1.創(chuàng)建MySQL,redis等輔助組件
2.創(chuàng)建jeecg-boot后端應(yīng)用
3.創(chuàng)建jeecg-vue前端應(yīng)用

0.說(shuō)明

1.從GitHub上下載項(xiàng)目的zip壓縮包后,解壓縮可以看到,ant-design-vue-jeecg是前端模塊,jeecg-boot是后端模塊
2.按照開發(fā)文檔上的先在本地配置好前后端所需要的環(huán)境。
3.在k8s中創(chuàng)建一個(gè)jeecg-boot的名稱空間,若無(wú)特別說(shuō)明,以下所有服務(wù)都是在該空間創(chuàng)建的
4.部署流程大致是這樣的,先在本地把前后端都跑通,然后再創(chuàng)建Dockerfile和.gitlab-ci文件,往gitlab提交代碼(事先配置好gitlab-runner),創(chuàng)建鏡像,推送到倉(cāng)庫(kù),自動(dòng)發(fā)布更新到k8s上(首次需要用yaml文件創(chuàng)建有關(guān)pod,service等)
5.我這里采用了倆git倉(cāng)庫(kù),前端一個(gè),后端一個(gè)

1.創(chuàng)建MySQL,redis等輔助組件

說(shuō)白了也就是創(chuàng)建好MySQL服務(wù),redis服務(wù),后端項(xiàng)目中連接需要使用。
我這里采用的是在k8s中創(chuàng)建的,當(dāng)然也可以創(chuàng)建普通的那種應(yīng)用。

以下說(shuō)的都是在k8s中創(chuàng)建舉例的
MySQL和Redis服務(wù),均創(chuàng)建了服務(wù)類型是nodeport的service,然后使用宿主機(jī)上的軟件連接進(jìn)行測(cè)試。等整個(gè)項(xiàng)目跑起來(lái)運(yùn)行后再換成service是clusterip的服務(wù)類型

MySQL創(chuàng)建創(chuàng)建好后,需要導(dǎo)入相應(yīng)的sql文件。
sql文件名稱:jeecg-bootdbjeecgboot-mysql-5.7.sql

但是等后端項(xiàng)目運(yùn)行后會(huì)碰到一個(gè)問(wèn)題,有些數(shù)據(jù)表明是需要大寫的,主要是qrtz開頭的數(shù)據(jù)表名

導(dǎo)入sql文件后,把所有qrtz開頭的數(shù)據(jù)表名全部換成大寫的數(shù)據(jù)表名,避免后端項(xiàng)目啟動(dòng)后連接數(shù)據(jù)庫(kù)提示有些表不存在

最后啟動(dòng)MySQL和Redis服務(wù)。

2.后端項(xiàng)目

0.項(xiàng)目結(jié)構(gòu)

├─jeecg-boot-parent(父POM: 項(xiàng)目依賴、modules組織)
│  ├─jeecg-boot-base(共通模塊: 工具類、config、權(quán)限、查詢過(guò)濾器、注解、接口等)
│  ├─jeecg-boot-module-demo    示例代碼
│  ├─jeecg-boot-module-system (系統(tǒng)管理權(quán)限等功能) -- 默認(rèn)作為啟動(dòng)項(xiàng)目
│  ├─jeecg-boot-starter(微服務(wù)starter模塊,不需要微服務(wù)可以刪掉) (我這邊操作的時(shí)候給刪除了)
│  ├─jeecg-cloud-module(微服務(wù)生態(tài)模塊,不需要微服務(wù)可以刪掉)(我這邊操作的時(shí)候給刪除了)

1.修改項(xiàng)目配置文件(數(shù)據(jù)庫(kù)配置、redis配置)
配置文件: jeecg-boot-module-system/src/main/resources/application-dev.yml

2.啟動(dòng)項(xiàng)目&訪問(wèn)
本地啟動(dòng):jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java,右鍵執(zhí)行啟動(dòng)。
通過(guò) http://localhost:8080/jeecg-boot/doc.html 訪問(wèn)后臺(tái),默認(rèn)進(jìn)入swagger文檔首頁(yè)

本地運(yùn)行

本地啟動(dòng)后的日志顯示

3.創(chuàng)建Dockerfile文件
需要說(shuō)明的是需要的項(xiàng)目只有jeecg-boot-module-system,所以把Dockerfile文件創(chuàng)建在jeecg-boot-module-system根目錄下

Dockerfile文件具體文件內(nèi)容如下:

FROM jdd.io/jre:1.8.275
MAINTAINER 1103324414@qq.com
ADD target/jeecg-boot-module-system-2.4.3.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar" ]

說(shuō)明:開頭第一行是使用的基礎(chǔ)鏡像,創(chuàng)建方式詳看地址:https://www.cnblogs.com/sanduzxcvbnm/p/13220054.html
基礎(chǔ)鏡像中只有jdk環(huán)境,其他的都沒(méi)有了。

4.創(chuàng)建.gitlab-ci文件
這個(gè)文件創(chuàng)建在整個(gè)項(xiàng)目的根目錄下
需要注意的是gitlab-runner使用的構(gòu)建鏡像環(huán)境,需要包含開發(fā)文檔中說(shuō)的后端項(xiàng)目需要使用的那些軟件。

我這邊圖省事兒,前后端構(gòu)建項(xiàng)目使用的是同一個(gè)構(gòu)建鏡像,包含的軟件就比較多了:jdk,maven,curl,docker,nodejs,yarn等,具體構(gòu)建方式可以看地址:https://www.cnblogs.com/sanduzxcvbnm/p/13220054.html

還有注意的一點(diǎn),jeecg需要使用到一些私服的依賴,詳看地址:http://doc.jeecg.com/2043876

<mirrors>
   <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>*,!jeecg,!jeecg-snapshots,!getui-nexus</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror> 
 </mirrors>

所以在構(gòu)建剛才的鏡像時(shí),添加的maven需要修改以下settings.xml配置文件。
我這邊采取的方式是事先準(zhǔn)備好已經(jīng)修改好的settings.xml配置文件,然后在構(gòu)建過(guò)程中copy到鏡像中,替換原有的配置文件

FROM alpine:latest
MAINTAINER sandu <1103324414@qq.com>
COPY localtime /etc/localtime
COPY timezone /etc/timezone
RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
RUN ["apk","update"]
RUN ["apk","add","curl"]
RUN ["apk","add","openjdk8"]
RUN ["apk","add","maven"]
RUN ["apk","add","nodejs"]
COPY settings.xml /usr/share/java/maven-3/conf/settings.xml
RUN ["apk","add","docker"]

構(gòu)建好這個(gè)鏡像后,修改gitlab-runner使用的鏡像,然后重啟gitlab-runner

注意:不能把這個(gè)鏡像跟后端dockerfile文件中使用的鏡像混為一談,這倆是里面安裝的軟件不一樣

.gitlab-ci.yml文件內(nèi)容如下:

variables:
  DOCKER_DRIVER: overlay2
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"

cache:
  paths:
    - .m2/repository/

stages:
  - package
  - build

maven_step:
  tags:
    - maven
  stage: package
  script:
    - mvn clean package -Dmaven.test.skip=true # 編譯整個(gè)項(xiàng)目
  artifacts:
    paths:
      - jeecg-boot-module-system/target/*.jar # 注意這行,只要其中一個(gè)jar包,供下面的docker使用
  only:
    - develop

docker_step:
  tags:
    - docker
  stage: build
  script:
    - export TAG=`date "+%Y%m%d%H%M%S"`
    - docker login -u admin -p admin123 jdd.io
    - cd jeecg-boot-module-system
    - docker build -t jdd.io/demo:$TAG .
    - docker push jdd.io/demo:$TAG
  only:
    - develop

構(gòu)建的思路如下:先編譯打包整個(gè)項(xiàng)目,然后切換到所需要jar包的目錄下,然后根據(jù)這個(gè)目錄下的Dockerfile文件制作docker鏡像,并上傳到Nexus鏡像倉(cāng)庫(kù),這里指的是jeecg-boot-module-system

流水線上顯示的效果,需要事先配置好gitlab-runner




后期可以在增加上自動(dòng)發(fā)布到k8s上,如下這個(gè)僅供展示,實(shí)際中未操作:(新增加curl一行)

docker_step:
  tags:
    - docker
  stage: build
  script:
    - export TAG=`date "+%Y%m%d%H%M%S"`
    - docker login -u admin -p admin123 jdd.io
    - cd jeecg-boot-module-system
    - docker build -t jdd.io/demo:$TAG .
    - docker push jdd.io/demo:$TAG
    - curl -X PUT -H "content-type:application/json" -H "Cookie:KuboardUsername=admin;KuboardAccessKey=4jz66jfsa6t6.5wjsz733f73p5fei4h4fpbmnfp72ytbc" http://192.168.2.163:10080/kuboard-api/cluster/develop/kind/CICDApi/admin/resource/updateImageTag -d '{"kind":"deployments","namespace":"test","name":"web-spring","images":{"jdd.io/demo":"jdd.io/demo:'$TAG'"}}'
  only:
    - develop

pod啟動(dòng)后的日志展示,里面出現(xiàn)的是pod的地址,因?yàn)閜od的特性,所以訪問(wèn)后端使用的話,還需要?jiǎng)?chuàng)建一個(gè)service,采用clusterip服務(wù)類型

以后訪問(wèn)后端,直接使用ClusterIP+服務(wù)端口的形式就可以了。

當(dāng)然可以先創(chuàng)建service,采用NodePort的服務(wù)類型,然后通過(guò)宿主機(jī)IP+NodePort的形式,直接訪問(wèn)后端應(yīng)用,比如接口文檔,查看以下效果,地址:http://宿主機(jī)IP:NodePort/jeecg-boot/doc.html

3.創(chuàng)建前端

前端最主要的是使用生成的dist文件夾,這里結(jié)合nginx,把兩者直接整個(gè)進(jìn)同一個(gè)鏡像中,這樣一來(lái),啟動(dòng)這個(gè)容器,nginx直接就啟動(dòng)了,nginx訪問(wèn)路徑正好是vue的dist文件夾里面的東西

關(guān)于vue配置文件的說(shuō)明

vue.config.js文件中的配置是在本地開發(fā)的時(shí)候使用的,此處映射地址配置到后臺(tái)端口即可,如果后臺(tái)項(xiàng)目名字修改了的話,直接改“/jeecg-boot”

.env文件是用來(lái)選擇項(xiàng)目構(gòu)建時(shí)使用哪個(gè)配置文件的,主要是有關(guān).env.development和.env.production文件的,這里寫的是哪個(gè),項(xiàng)目采用的就是哪個(gè)配置文件,這里寫的是NODE_ENV=production,說(shuō)明采用的是.env.production文件

3.關(guān)于.env.production文件中的配置
這個(gè)地址應(yīng)該是配置連接后端項(xiàng)目的,也就是后端項(xiàng)目啟動(dòng)后日志中顯示的那個(gè)地址。但是在這里做了特殊的設(shè)置,主要是跟下面的Dockerfile文件中nginx的配置和后期創(chuàng)建的Ingress有關(guān),稍后再詳講解這個(gè)。

直接在前端項(xiàng)目根目錄下創(chuàng)建Dockerfile文件,文件內(nèi)容如下:

# build stage
FROM node:lts-alpine as build-stage # 采用alpine鏡像,多階段構(gòu)建方式
MAINTAINER 1103324414@qq.com
COPY .  /app/ # 把跟目錄下所有文件拷貝到上面鏡像的/app目錄下,該目錄不存在的話會(huì)自動(dòng)創(chuàng)建
WORKDIR /app/ # 切換容器中的當(dāng)前工作目錄
RUN npm config set registry https://registry.npm.taobao.org/ && yarn install && yarn run build # 設(shè)置nodejs倉(cāng)庫(kù)源,安裝依賴,打包


# production stage
FROM nginx:stable-alpine as production-stage
# 拷貝dist目錄下的所有文件到/usr/share/nginx/html/目錄下,不包含dist文件夾
COPY --from=build-stage /app/dist /usr/share/nginx/html/
ENV LANG en_US.UTF-8
# 設(shè)置nginx中的配置文件內(nèi)容
RUN echo "server {  
                      listen       80; 
                      location ^~ /jeecg-boot { 
                      proxy_pass              http://10.3.255.203:8080/jeecg-boot/; 
                      proxy_set_header        Host jeecg-boot-system; 
                      proxy_set_header        X-Real-IP $remote_addr; 
                      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
                  } 
                  #解決Router(mode: 'history')模式下,刷新路由地址不能找到頁(yè)面的問(wèn)題 
                  location / { 
                     root   /usr/share/nginx/html/; 
                     index  index.html index.htm; 
                     if (!-e $request_filename) { 
                         rewrite ^(.*)$ /index.html?s=$1 last; 
                         break; 
                      } 
                  } 
                  access_log  /var/log/nginx/access.log ; 
              } " > /etc/nginx/conf.d/default.conf

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

說(shuō)明:
1.nginx.conf文件中沒(méi)有server{}塊,默認(rèn)包含/etc/nginx/conf.d/*.conf, 有個(gè)默認(rèn)的default.conf,這里直接替換默認(rèn)的default.conf了。
2.如下這塊是配置的nginx代理后端模塊的,proxy_pass中寫的地址,端口就是后端項(xiàng)目啟動(dòng)的service服務(wù),ClusterIP+服務(wù)端口,詳看上面的圖

location ^~ /jeecg-boot { 
    proxy_pass              http://10.3.255.203:8080/jeecg-boot/; 
    proxy_set_header        Host jeecg-boot-system; 
    proxy_set_header        X-Real-IP $remote_addr; 
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
} 

然后創(chuàng)建.gitlab-ci.yml文件,具體內(nèi)容如下:

variables:
  DOCKER_DRIVER: overlay2
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"

cache:
  key: ${CI_BUILD_REF_NAME}
  paths:
    - node_modules/

stages:
  - build

docker_step:
  tags:
    - docker
  stage: build
  script:
    - export TAG=`date "+%Y%m%d%H%M%S"`
    - docker build -t jdd.io/jeecg-vue:$TAG .
    - docker login -u admin -p admin123 jdd.io
    - docker push jdd.io/jeecg-vue:$TAG
    - curl -X PUT -H "content-type:application/json" -H "Cookie:KuboardUsername=admin;KuboardAccessKey=hx35mfx3b7p6.w6wm38cbikdd4yeweexfcsfybd4zmk2s" http://192.168.2.163:10080/kuboard-api/cluster/develop/kind/CICDApi/admin/resource/updateImageTag -d '{"kind":"deployments","namespace":"jeecg","name":"my-vue","images":{"jdd.io/jeecg-vue":"jdd.io/jeecg-vue:'$TAG'"}}'
  only:
    - develop

構(gòu)建的思路如下:直接根據(jù)這個(gè)目錄下的Dockerfile文件制作docker鏡像,并上傳到Nexus鏡像倉(cāng)庫(kù),然后自動(dòng)更新到k8s中(需要事先使用yaml文件創(chuàng)建好對(duì)應(yīng)的pod,下面會(huì)講述)

檢查方式是登錄進(jìn)入,查看nginx是否啟動(dòng),若啟動(dòng)則說(shuō)明沒(méi)問(wèn)題。

gitlab上使用gitlab-runner自動(dòng)化構(gòu)建的信息如下:
先配置好gitlab-runner(前后端用的是同一個(gè)gitlab-runner)





給前端pod配置一個(gè)service,這里也采用的是服務(wù)類型是ClusterIP的方式,注意,這里的容器端口就是nginx啟動(dòng)后監(jiān)聽的80端口,服務(wù)端口是供下面Ingress域名使用的端口,這里采用80端口,是為了在瀏覽器中輸入域名訪問(wèn)時(shí)不用加端口號(hào)了

然后再配置一個(gè)Ingress,用來(lái)供外部訪問(wèn),這個(gè)域名就是前端訪問(wèn)后端的.env.production配置文件中設(shè)置需要的,本機(jī)電腦上hosts文件需要添加一個(gè)解析

集群中任意一臺(tái)主機(jī)ip都可以

本機(jī)電腦訪問(wèn)的話直接使用瀏覽器打開域名:www.demovue.com就可以了。

問(wèn)題:為啥前端的.env.production配置文件中訪問(wèn)后端的地址需要配置域名,而不是直接配置后端的svc ip地址?
一開始確實(shí)是這樣配置的,但是在登錄頁(yè)面需要輸入驗(yàn)證碼,這個(gè)驗(yàn)證碼是從后端獲取的,但是此時(shí)客戶端是本機(jī)瀏覽器,不是vue, 瀏覽器中驗(yàn)證碼訪問(wèn)的地址是svc ip地址,這肯定是訪問(wèn)不通的
同時(shí)結(jié)合nginx配置考慮,訪問(wèn)后端是通過(guò)nginx代理訪問(wèn)的。

以上兩者結(jié)合起來(lái),需要配置域名。

瀏覽器訪問(wèn)vue主頁(yè),vue訪問(wèn)后端的時(shí)候,不是直接訪問(wèn)后端,而是訪問(wèn)后端時(shí)配置的是域名,然后vue又繞道nginx來(lái)訪問(wèn)后端。

4.有關(guān)yaml文件

1.后端

# cat Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-demo
  namespace: jeecg
  labels:
    app: my-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-demo
  template:
    metadata:
      labels:
        app: my-demo
    spec:
      containers:
        - name: my-demo
          image: 'jdd.io/demo:20210421194224'
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 8080
          resources:
            requests:
              cpu: 400m
              memory: 600Mi
            limits:
              cpu: 800m
              memory: 800Mi
      imagePullSecrets:
      - name: regcred
# Service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-demo
  namespace: jeecg
spec:
  type: NodePort
  selector:
    app: my-demo
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 30080

前端yaml文件

# Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-vue
  namespace: jeecg
  labels:
    app: my-vue
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-vue
  template:
    metadata:
      labels:
        app: my-vue
    spec:
      containers:
        - name: my-vue
          image: jdd.io/jeecg-vue:20210421232150
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
          resources:
            requests:
              cpu: 400m
              memory: 600Mi
            limits:
              cpu: 800m
              memory: 800Mi
      imagePullSecrets:
      - name: regcred
# Service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-vue
  namespace: jeecg
spec:
  type: ClusterIP
  selector:
    app: my-vue
  ports:
    - port: 80
      targetPort: 80
# Ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  labels:
    app: my-demo
    k8s.kuboard.cn/name: my-demo
  name: my-demo
  namespace: jeecg
spec:
  rules:
    - host: www.demovue.com
      http:
        paths:
          - backend:
              serviceName: my-demo
              servicePort: 80
            path: /

最終效果

問(wèn)題

1.構(gòu)造出來(lái)的docker鏡像太大
后端鏡像有500多M,前端鏡像有39.3M

從后端Dockerfile文件入手,逐步排查
首先使用的FROM基礎(chǔ)鏡像,這個(gè)基礎(chǔ)鏡像只是用來(lái)提供java運(yùn)行環(huán)境的,只要jre就可以,沒(méi)必要用jdk
改造文章參考:https://www.cnblogs.com/sanduzxcvbnm/p/13220054.html
先運(yùn)行依賴鏡像:

docker run -it alpine:latest 

替換里面的鏡像源文件,更新:

echo "https://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories
echo "https://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
apk update

然后搜索jdk

apk search jdk

通過(guò)觀察發(fā)現(xiàn)java8的有好多個(gè)。
逐個(gè)安裝排查
先安裝openjdk8-jre

apk add openjdk8-jre


通過(guò)觀察,安裝openjdk8-jre的同時(shí)也會(huì)安裝openjdk8-jre-lib和openjdk8-jre-base,結(jié)果是:OK: 106 MiB in 61 packages

卸載openjdk8-jre,安裝openjdk8

apk del openjdk8-jre
apk add openjdk8


通過(guò)觀察可以得知,安裝openjdk8的同時(shí),也會(huì)安裝openjdk8-jre,openjdk8-jre-lib和openjdk8-jre-base。結(jié)果是:OK: 125 MiB in 62 packages

最終采用安裝openjdk8-jre來(lái)構(gòu)建Dockerfile文件中的基礎(chǔ)鏡像 (# alpine中安裝軟件默認(rèn)是沒(méi)有開啟緩存的,所以裝完也不用清緩存)

FROM alpine:latest
MAINTAINER sandu <1103324414@qq.com>
COPY localtime /etc/localtime
COPY timezone /etc/timezone
RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
RUN ["apk","update"]
RUN ["apk","add","openjdk8-jre"]

制作基礎(chǔ)鏡像:

docker build -t jdd.io/jre:1.8.0_275 -f Dockerfile_alpine .

制作后的鏡像大小112MB,基本上是達(dá)到要求

若是還想進(jìn)一步降低大小的話,只能安裝openjdk8-jre較低版本的了。
因?yàn)槲募?etc/apk/repositories采用的是alpine的最新鏡像庫(kù)文件,所以只有1.8.0_275這一個(gè)最新版本。
想要安裝低版本的,首先查看網(wǎng)站http://mirrors.aliyun.com/alpine/中各個(gè)不同的alpine版本鏡像,找到所需要安裝的那個(gè)jre1.8版本,使用這個(gè)版本的鏡像源,然后再安裝,這里就不在操作了。

然后使用后端的Dockerfile文件制作鏡像,最后得到的鏡像大小如下:

以上步驟都是單獨(dú)操作獲取的數(shù)據(jù),在gitlab上使用gitlab-runner構(gòu)建編譯查看得知,后端鏡像大小是252MB。之前相比,鏡像大小減小了一半多。

前端鏡像,單獨(dú)編譯出的dist目錄有17M,再加上使用的nginx鏡像:nginx:stable-alpine ,有22.6MB
這兩者加一塊兒大約有39.6M,比開頭說(shuō)的39.3M多了0.3M, 所以前端使用的鏡像沒(méi)必要精簡(jiǎn)


2.增加使用使用服務(wù)狀態(tài)探針進(jìn)行健康檢查
Dockerfile文件中需要用EXPOSE暴露端口
參考文章:https://www.cnblogs.com/sanduzxcvbnm/p/14710189.html

3.首頁(yè)訪問(wèn)慢
開啟Nginx壓縮,解決前端訪問(wèn)慢問(wèn)題,官方文檔:http://doc.jeecg.com/2043891

項(xiàng)目中采用的是nginx和vue的dist打包在一起,nginx配置文件沒(méi)有從中分離出來(lái),這里采用得方式是在原有Dockefile文件基礎(chǔ)上修改默認(rèn)得nginx.conf文件

4.前端Dockerfile文件整理
可以試著把yarn install && yarn build的功能放在.gitlab-ci.yml文件中來(lái)執(zhí)行,順便打包dist文件夾供下載,并且提供到下一步docker鏡像使用
若是這樣的話,Dockerfile文件中也可以把nginx配置文件nginx.conf和default.conf給單獨(dú)提出來(lái),使用的時(shí)候COPY進(jìn)去?;蛘咧苯影裠efault.conf中內(nèi)容給整合進(jìn)nginx.conf中。

這樣一來(lái)gitlab-runner使用的基礎(chǔ)鏡像還得修改,增加安裝nodejs和yarn,通過(guò)查看,安裝的兩者版本vue前端項(xiàng)目的要求


不過(guò)經(jīng)檢查后發(fā)現(xiàn),安裝的nodejs并沒(méi)有npm命令,所以還得再安裝npm.

然后更換gitlab-runner使用的鏡像

接下來(lái)是創(chuàng)建nginx.conf文件,整合進(jìn)default.conf文件的內(nèi)容,先.gitlab-ci.yml文件,確保vue編譯成功dist目錄后打包壓縮,供下一步的Dockerfile文件文件使用

gitlab上實(shí)際操作信息如下:






接下來(lái)修改Dockerfile文件內(nèi)容
需要注意的是牽涉到把上一步的壓縮包dist.tar.gz整合到鏡像中來(lái),所以壓縮包dist.tar.gz怎么壓縮是有講究的
1.若是壓縮包解壓后是一個(gè)dist文件夾,那么nginx.conf文件就得修改,root /usr/share/nginx/html/;就得換成root /usr/share/nginx/html/dist/;
2.若是壓縮包解壓后是dist文件夾下的內(nèi)容,不包含dist文件夾,則Dockerfile文件和nginx.conf文件都不用修改

這里采用的是第二種方法,所以.gitlab-ci.yml文件關(guān)于制作壓縮包還得再次修改一下

variables:
  DOCKER_DRIVER: overlay2
  
cache:
  key: ${CI_BUILD_REF_NAME}
  paths:
    - node_modules/

stages:
  - package
  - build


yarn_step:
  tags:
    - yarn
  stage: package
  script:
    - npm config set registry https://registry.npm.taobao.org/
    - yarn install
    - yarn build
    - cd dist && tar -zcvf ../dist.tar.gz * # 打包整個(gè)dist文件(包含目錄dist)和打包dist下的文件(不包含目錄dist)跟DOckerfile文件中ADD有關(guān),進(jìn)而影響到nginx.conf文件
  artifacts:
    paths:
      - dist.tar.gz
  only:
    - develop

docker_step:
  tags:
    - docker
  stage: build
  script:
    - export TAG=`date "+%Y%m%d%H%M%S"`
    - docker build -t jdd.io/jeecg-vue:$TAG .
    - docker login -u admin -p admin123 jdd.io
    - docker push jdd.io/jeecg-vue:$TAG
#    - curl -X PUT -H "content-type:application/json" -H "Cookie:KuboardUsername=admin;KuboardAccessKey=4jz66jfsa6t6.5wjsz733f73p5fei4h4fpbmnfp72ytbc" http://192.168.2.163:10080/kuboard-api/cluster/develop/kind/CICDApi/admin/resource/updateImageTag -d '{"kind":"deployments","namespace":"test","name":"web-spring","images":{"jdd.io/demo":"jdd.io/demo:'$TAG'"}}'
    - curl -X PUT -H "content-type:application/json" -H "Cookie:KuboardUsername=admin;KuboardAccessKey=hx35mfx3b7p6.w6wm38cbikdd4yeweexfcsfybd4zmk2s" http://192.168.2.163:10080/kuboard-api/cluster/develop/kind/CICDApi/admin/resource/updateImageTag -d '{"kind":"deployments","namespace":"jeecg","name":"my-vue","images":{"jdd.io/jeecg-vue":"jdd.io/jeecg-vue:'$TAG'"}}'
  only:
    - develop

Dockerfile文件內(nèi)容
COPY命令會(huì)覆蓋源文件,ADD命令會(huì)把壓縮包dist.tar.gz自動(dòng)解壓縮到/usr/share/nginx/html/ (不含dist文件夾)

FROM nginx:stable-alpine
MAINTAINER 1103324414@qq.com
COPY nginx.conf /etc/nginx/nginx.conf
ADD dist.tar.gz /usr/share/nginx/html/
ENV LANG en_US.UTF-8
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

nginx.conf文件內(nèi)容如下

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid    /var/run/nginx.pid;

events {
    worker_connections  65535;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    server_tokens off;

    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6].";

    # include /etc/nginx/conf.d/*.conf;
    server {
      listen       80; # 注意:不加域名
      location ^~ /jeecg-boot {
        proxy_pass              http://10.3.255.203:8080/jeecg-boot/; # 使用的是后端SVC cluster ip
        proxy_set_header        Host jeecg-boot-system;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      }
      #解決Router(mode: 'history')模式下,刷新路由地址不能找到頁(yè)面的問(wèn)題
      location / {
         root   /usr/share/nginx/html/;
         index  index.html index.htm;
         if (!-e $request_filename) {
             rewrite ^(.*)$ /index.html?s=$1 last;
             break;
          }
      }
      access_log  /var/log/nginx/default_access.log  main;
    }
}

最終效果





制作出來(lái)的前端鏡像大小還是跟原來(lái)的一樣,39.3M

用瀏覽器訪問(wèn)網(wǎng)址:http://www.demovue.com進(jìn)行測(cè)試,可以明顯感覺(jué)到頁(yè)面打開速度加快了好多

總結(jié)

以上是生活随笔為你收集整理的改造前后端分离的jeecg项目部署到k8s中的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

有码一区二区三区 | 久久精品国产99国产 | 国产护士av | 97在线视频免费看 | 精品国产免费人成在线观看 | 亚洲成人黄色av | 99亚洲国产| 欧美 日韩 视频 | 久草91视频 | 五月婷婷综 | 最新亚洲视频 | 国产 视频 久久 | a视频在线观看免费 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 丁香激情婷婷 | 日本h视频在线观看 | 久久久国产99久久国产一 | 麻豆成人精品视频 | av电影中文字幕在线观看 | 免费国产ww| 精品一区电影国产 | 国产高清不卡在线 | 日本在线观看中文字幕 | 日韩高清免费电影 | 亚洲一二三在线 | 天天干天天搞天天射 | 天天se天天cao天天干 | 国内成人综合 | 免费在线黄色av | 免费在线观看av | 国产精品高清一区二区三区 | 免费在线成人av电影 | 日韩日韩日韩日韩 | 三上悠亚一区二区在线观看 | a在线观看视频 | 精品国偷自产国产一区 | 国产精品毛片久久久久久久久久99999999 | 国模一二三区 | 99久久久久久久久 | 国产免费人人看 | 成人黄大片视频在线观看 | 国产视频一区二区在线播放 | 97超碰国产精品女人人人爽 | 国产黄色一级片在线 | 久久这里只有精品久久 | 99久热在线精品视频观看 | 国产又黄又猛又粗 | 欧美性色网站 | 成年美女黄网站色大片免费看 | 亚洲精品乱码久久久久久写真 | 国产精品精品 | 亚洲午夜精品一区 | 中文在线免费一区三区 | 免费久久99精品国产 | 中文字幕亚洲精品在线观看 | 婷婷丁香久久五月婷婷 | 国产99久久九九精品免费 | 九九在线视频免费观看 | 久久久三级视频 | 蜜桃av综合网 | 国产精品美女免费视频 | 精品亚洲午夜久久久久91 | 久久人人爽人人片av | 亚洲精品国产精品乱码在线观看 | 国产成人久久久77777 | 91视频国产免费 | 美女久久 | 在线观看中文字幕亚洲 | 欧美少妇xx | 婷婷视频在线观看 | 久久www免费人成看片高清 | 狠狠操操操 | 欧美精品免费在线观看 | 91九色蝌蚪视频网站 | 91综合久久一区二区 | 超碰在线网 | 少妇啪啪av入口 | 亚洲欧美成人在线 | 在线观看日韩精品视频 | 五月天免费网站 | 99免费国产| 五月婷婷伊人网 | 久久草精品 | 麻豆久久久久 | 中文字幕色婷婷在线视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 天天操天天射天天操 | 久久爽久久爽久久av东京爽 | 久久久av电影| 成人精品一区二区三区中文字幕 | 免费看的黄色网 | 亚洲欧洲成人精品av97 | 日韩久久精品一区二区 | 波多野结衣在线视频免费观看 | 国产xx在线 | 成人黄色电影在线观看 | 伊人国产在线播放 | 99中文字幕在线观看 | 好看的国产精品视频 | 久热久草在线 | 青草草在线 | 亚洲日韩欧美一区二区在线 | 日韩在线观看视频网站 | 狠狠地操 | 中文字幕色在线 | 日韩在线不卡 | 99re国产| av线上看| 99热只有精品在线观看 | 亚在线播放中文视频 | 日韩高清三区 | 人人爽久久涩噜噜噜网站 | av丝袜天堂 | 国产人成看黄久久久久久久久 | 免费一级日韩欧美性大片 | 亚洲成人黄色网址 | 国产一区二区三区四区大秀 | 福利一区视频 | 亚洲精品小视频在线观看 | 午夜精品视频免费在线观看 | 国产午夜在线 | 九九精品视频在线 | 高清av网站 | 97精品国产aⅴ| 成年免费在线视频 | 免费福利在线播放 | 国产高清视频色在线www | 色综合天天色 | 91尤物在线播放 | 精品国产一区二 | www.888.av| 美女视频黄是免费的 | 成年人看片网站 | a天堂在线看 | 操久久免费视频 | 国产99在线| 欧美日韩视频在线观看免费 | 国产人免费人成免费视频 | 亚洲一级片在线看 | 精品一区二区免费在线观看 | 久久精品视频日本 | 国产精品18久久久久vr手机版特色 | 奇米影视777影音先锋 | 久久综合狠狠综合久久综合88 | 久久精品99国产精品亚洲最刺激 | 中文字幕在线播放日韩 | 99久久99久久精品 | 国产丝袜 | 国产精品美女免费 | www黄色软件 | 99热这里只有精品免费 | 在线观看成人一级片 | 国内精品久久天天躁人人爽 | 欧美成a人片在线观看久 | 综合精品久久久 | 中文字幕在线国产精品 | 色婷五月 | 久久第四色 | 91九色网址| 四虎成人免费影院 | 日日狠狠 | 久久精品艹| 免费高清av在线看 | 国产伦理一区二区 | 激情五月综合网 | 福利网在线 | 国产亚洲成人精品 | 日本aaaa级毛片在线看 | 99在线免费观看 | 国产精品理论视频 | 国产午夜精品一区二区三区在线观看 | 亚州精品成人 | 99久久精品国产一区二区三区 | 欧美黄色软件 | 久久再线视频 | 国产日韩精品在线观看 | 久精品在线 | av大全在线观看 | 久久伦理视频 | 欧美精品中文 | 欧美激情在线看 | 国产成人在线综合 | 激情综合一区 | 午夜精品久久久久久久99无限制 | 亚洲aⅴ免费在线观看 | 在线观看亚洲电影 | 国产精品videoxxxx | 黄色一级大片在线免费看国产一 | 四虎在线视频免费观看 | 久久伊人爱 | 丁香婷婷色综合亚洲电影 | 国产一区在线播放 | 欧美色噜噜噜 | 蜜桃视频色 | 成年人在线观看免费视频 | 午夜视频在线观看一区二区 | 久久成人午夜 | 国产一级黄色av | 成人在线小视频 | 欧美激情在线看 | 久久精品播放 | 麻豆国产精品一区二区三区 | 久久爽久久爽久久av东京爽 | 中文av影院 | 欧美极度另类性三渗透 | 国产视频在线观看免费 | 久久久久伦理电影 | 国产精品视频999 | 国产精品久久久久影视 | 草久久影院 | av免费在线观| 久久久久久视频 | 国产又粗又猛又黄又爽的视频 | 日韩欧美在线观看一区二区 | 久久国产免费 | 日韩成人免费在线 | 最近中文字幕在线播放 | 欧美日韩在线看 | av免费网 | 爱av在线网 | 久久99亚洲精品久久久久 | 在线免费中文字幕 | 婷婷综合影院 | 成人天堂网 | 一区二区毛片 | 毛片网在线 | 亚洲一区二区三区毛片 | 黄色影院在线播放 | a√天堂资源 | 黄色免费观看网址 | 亚洲免费av电影 | 久久精品电影网 | 91在线视频在线 | 97人人添人澡人人爽超碰动图 | 一区二区在线不卡 | 日韩一区二区三区高清免费看看 | 日韩免费电影一区二区三区 | 久草视频免费 | 久久久国产精品亚洲一区 | 天天操 夜夜操 | 日日干天天爽 | av电影免费| 午夜资源站 | 免费进去里的视频 | 91经典在线 | 欧美一区二区三区在线 | www.超碰 | 日本精品一区二区在线观看 | 久久黄色影视 | 在线观看黄 | 黄色av三级在线 | 久久久久麻豆v国产 | 97网站| 国产999精品久久久久久麻豆 | 欧美成人精品三级在线观看播放 | 国产亚洲精品久久久网站好莱 | 久久精品亚洲国产 | 亚洲精品视频网址 | 亚洲国产精品传媒在线观看 | 在线免费色 | 国产91电影在线观看 | 三级黄在线 | a在线观看免费视频 | 久久精品成人热国产成 | 在线观看亚洲视频 | 国产精品18videosex性欧美 | 亚洲手机av | 国产 日韩 在线 亚洲 字幕 中文 | 天天干天天爽 | 国产精品高潮久久av | 免费又黄又爽视频 | 久草网在线观看 | 九九九视频精品 | 亚洲国产97在线精品一区 | 一区二区三区在线不卡 | 在线 国产 亚洲 欧美 | 国产精品1区2区3区在线观看 | 婷婷激情小说网 | 亚洲一级影院 | 中文字幕国产精品一区二区 | 亚洲不卡av一区二区三区 | 成人毛片一区二区三区 | 国产欧美高清 | 人人插人人做 | 人成电影网 | 欧美视频国产视频 | 婷婷国产一区二区三区 | 亚洲国产中文字幕在线视频综合 | 热久久这里只有精品 | 狠狠色丁香 | 欧美亚洲一区二区在线 | 色婷婷福利 | av导航福利| 最新av网站在线观看 | 久久婷婷激情 | 久久久久免费电影 | 国产成人精品一区二 | 天天·日日日干 | 99亚洲国产精品 | 人人超在线公开视频 | 夜夜嗨av色一区二区不卡 | 人人爽人人做 | 精品亚洲免a | 亚洲黄色成人网 | av大全免费在线观看 | 日韩.com| 伊人宗合网 | 久久免费视频精品 | 欧美性护士 | 免费影视大全推荐 | 成年美女黄网站色大片免费看 | 精品福利视频在线观看 | 国产一区二区精品 | 免费在线观看亚洲视频 | 91理论片午午伦夜理片久久 | 日韩资源在线 | 福利二区视频 | 国产精品网在线观看 | 午夜精品久久 | 欧美日韩免费网站 | 精品国产一区二区在线 | 激情狠狠干 | 中文字幕在线观看第二页 | 伊人影院得得 | 99久久9| 高清不卡免费视频 | www.五月天婷婷 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | www.久久久com | 欧美吞精 | av 一区二区三区 | 五月婷婷激情网 | 91精品久久久久久综合乱菊 | 国产91精品一区二区绿帽 | 最近中文字幕久久 | 精品人妖videos欧美人妖 | 免费看国产精品 | 99亚洲视频| 大片网站久久 | 超碰人人在线观看 | 91在线视频免费 | 久久综合色一综合色88 | 丁香影院在线 | 久久精品免费电影 | 午夜av色| 国产伦精品一区二区三区照片91 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 日韩欧美一区二区三区黑寡妇 | 亚洲婷婷综合色高清在线 | 日日草天天干 | 91九色国产视频 | 国产黄色观看 | 五月婷婷.com | 亚洲第五色综合网 | 狠狠干天天 | 成人免费观看视频大全 | 精品国产精品国产偷麻豆 | 不卡的一区二区三区 | 久久久久9999亚洲精品 | 亚洲精品午夜久久久久久久久久久 | 国产精品久久久久永久免费观看 | 国产精品一区二区久久精品爱涩 | 97在线影院| 国产精品久久久久久影院 | 日韩视频在线观看视频 | 久久国语 | 国内精品在线一区 | 免费看的毛片 | 91色国产在线 | 久久永久免费 | 国产精品99久久久久久有的能看 | 亚洲午夜精品一区二区三区电影院 | 九九热在线精品 | 午夜精品一区二区三区在线观看 | 国产剧情一区 | 日韩欧美精品在线观看视频 | 日韩精品久久久久久久电影99爱 | 天堂网一区 | 精品久久久久一区二区国产 | 亚洲精品视频免费在线观看 | 精品一区二区在线免费观看 | 欧美男女爱爱视频 | 免费观看黄色12片一级视频 | 色婷婷激情网 | 夜夜爽www| 国产理论影院 | 国产精品久久久久一区 | www.综合网.com | 成人理论在线观看 | 国产综合在线观看视频 | 国产剧情一区二区 | 911国产精品 | 亚洲国产中文字幕在线视频综合 | 99电影456麻豆 | 日韩毛片在线免费观看 | 五月亚洲| 91精品啪啪 | 久久久久久久久久久久影院 | 日韩高清不卡在线 | 日韩有码在线观看视频 | 日韩免费视频一区二区 | 色婷婷亚洲婷婷 | 精品999在线 | 国产 一区二区三区 在线 | 91精品国产乱码久久 | 国产成人精品一区二区在线观看 | 久草免费在线 | 四虎最新入口 | 久人人 | 精品国产免费看 | 超碰国产在线播放 | 91亚洲精品久久久久图片蜜桃 | 国产在线欧美 | 欧美成人基地 | 青青视频一区 | 在线成人高清电影 | 日韩黄色免费 | 伊人午夜视频 | 亚洲资源一区 | 国产精品久久久久久一区二区三区 | 成人黄色片在线播放 | 看片一区二区三区 | 91av蜜桃 | 国产黄色一级片在线 | 天天干,夜夜操 | 日韩高清在线一区二区 | 亚洲激情视频在线观看 | 欧美在线1区 | 超碰在线免费97 | 正在播放国产精品 | 激情视频久久 | 亚洲精品麻豆 | 亚洲国产日韩av | 西西444www大胆高清图片 | 99精品在线免费观看 | 中文字幕在线观看第一区 | 一区二区三区 中文字幕 | 亚洲精品欧美成人 | 日韩资源在线观看 | 午夜黄色影院 | av不卡免费看 | 国产91亚洲精品 | 色狠狠干 | 久久第四色 | 中国精品一区二区 | 国产一区av在线 | 午夜美女福利 | 国产乱对白刺激视频在线观看女王 | 中文字幕 国产精品 | 免费看搞黄视频网站 | 国产精品精品国产 | 天堂av最新网址 | 欧美另类z0zx | 日韩一三区 | 欧美激情视频一区二区三区免费 | 国产一区电影在线观看 | 国产高清视频在线播放一区 | 久久黄视频 | 奇米网网址 | 国产精品美女久久久久久久久 | 99精品视频在线 | 人人添人人| av在线之家电影网站 | 亚洲中字幕 | 日精品在线观看 | 亚洲无线视频 | 天天躁天天操 | 天天曰视频 | av成人免费在线观看 | 亚洲国产美女精品久久久久∴ | 91在线观看黄 | 久久视频这里有精品 | 国产特级毛片aaaaaa高清 | 亚洲美女精品 | 国产精品久久久久久久久费观看 | 中文字幕在线观看免费高清完整版 | 久久综合中文色婷婷 | 免费在线色视频 | 国产99精品在线观看 | 日韩特黄一级欧美毛片特黄 | 成人免费视频视频在线观看 免费 | 婷婷色六月天 | 99视频精品视频高清免费 | 亚洲人精品午夜 | 国产另类av| 成人黄色影片在线 | 国产黄影院色大全免费 | 精品国产午夜 | 国模精品在线 | 91精品一区二区三区久久久久久 | 色诱亚洲精品久久久久久 | 国内久久久久久 | 日韩电影一区二区在线观看 | 国产高清精品在线 | 91黄色视屏 | 天天综合网 天天 | 久久超级碰 | 在线午夜| 日韩av图片 | 五月开心激情网 | 日日干,天天干 | 国产免费xvideos视频入口 | 欧美激情亚洲综合 | 中文字幕在线免费 | 欧美日韩国产一区二区三区 | 美女网站黄在线观看 | 日本一区二区三区视频在线播放 | 在线 你懂 | 最新婷婷色| 欧美亚洲国产精品久久高清浪潮 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 天天干天天干天天干 | 97超碰免费| 高清av免费看 | www.久久久久 | 欧美激情精品久久久久久变态 | 欧美日韩另类在线观看 | 97偷拍视频 | 成人黄色片免费看 | 九九99视频 | 黄色aaa毛片 | 久久久久免费视频 | 日韩欧美国产精品 | 婷婷在线网站 | 久久精品精品电影网 | 国内综合精品午夜久久资源 | 国产日韩精品一区二区在线观看播放 | 色94色欧美| 精品99免费视频 | 亚洲黄色软件 | 黄色三级免费网址 | 精品久久久久一区二区国产 | 91久久国产自产拍夜夜嗨 | 国产高清福利在线 | 婷婷久久一区二区三区 | 最新午夜 | 亚洲爱爱视频 | 天天干.com| 久久免费中文视频 | 日本精品二区 | 日韩av电影国产 | 久久高清精品 | 色就干| 久久国产精品免费一区二区三区 | 高清免费在线视频 | 国产精品日韩久久久久 | www最近高清中文国语在线观看 | 亚洲撸撸| 中文十次啦| 2019中文字幕网站 | 国产精品久久久久aaaa | 97精品国产手机 | 欧美aa一级片 | 天天色天天操综合网 | 麻豆久久 | 久久久久国产成人精品亚洲午夜 | 四虎www. | 国产日产欧美在线观看 | 亚洲视频在线视频 | av网站免费线看精品 | 99热九九这里只有精品10 | 久久国产精品免费视频 | 国产精品入口久久 | 久久久国际精品 | www.伊人网| 99热99热| 日韩在线免费观看视频 | 精品uu| 国产精品99久久久精品免费观看 | 欧美精品乱码久久久久久 | 91亚洲精品在线观看 | 免费a v在线 | 中文在线亚洲 | 日日躁天天躁 | 欧美精品一区二区三区一线天视频 | 国产免费不卡 | 在线国产能看的 | 久久呀| 最近最新最好看中文视频 | 久久高清毛片 | 日韩91av | 五月天丁香亚洲 | 欧美日韩免费在线观看视频 | www色婷婷com| 色婷婷午夜| 国产最新视频在线观看 | 日本在线视频网址 | 日韩精品一区二区免费视频 | 色99视频 | 国产999久久久 | av久久在线 | 在线视频观看你懂的 | 亚洲日韩欧美一区二区在线 | 91观看视频 | 中文字幕日韩无 | 中文字幕中文字幕在线中文字幕三区 | 亚洲免费不卡 | 亚洲激情在线播放 | 99国产在线视频 | 欧美精品在线观看免费 | 极品久久久久久久 | 国产一区自拍视频 | 久草在线视频新 | 成人播放器 | 午夜三级影院 | 午夜精品久久久久久久99 | 97精产国品一二三产区在线 | 亚洲欧洲精品在线 | 国产一区二区三区四区大秀 | 成人黄色大片在线免费观看 | 国产精品区免费视频 | 国产免费xvideos视频入口 | 国产很黄很色的视频 | 久久久久久久久久久久久9999 | 中文字幕第一页在线vr | 日韩欧美网址 | 国产黄色在线看 | 91成人短视频在线观看 | 在线观看av网 | 欧美另类交人妖 | 69久久99精品久久久久婷婷 | 一区二区三高清 | 国产精品三级视频 | 国产二区精品 | 久久综合色天天久久综合图片 | 操天天操| 欧美特一级片 | 亚洲第一久久久 | 在线色资源| 51久久成人国产精品麻豆 | 国产精品久免费的黄网站 | 国产精品久久久久久久久久久杏吧 | 9999毛片 | 久久久久久久久影院 | 国产一级在线看 | 久久国产精品影片 | 欧美一区二区在线免费看 | 欧美日韩大片在线观看 | 久久,天天综合 | 六月婷婷久香在线视频 | 一区中文字幕电影 | 亚洲一区精品二人人爽久久 | 色多多视频在线观看 | 在线观看视频你懂 | h视频在线看 | 激情欧美xxxx | 毛片网站免费在线观看 | 婷婷丁香狠狠爱 | 2022国产精品视频 | av中文字幕在线播放 | 99精品视频免费 | 国产丝袜在线 | 久草爱视频 | 国产精品一区二区精品视频免费看 | 国内精品在线看 | 天天干天天射天天爽 | 一区二区三区四区五区在线 | 久久亚洲电影 | 91av视频在线播放 | 8x成人免费视频 | 久久草 | 在线免费观看视频一区二区三区 | 色91在线视频 | 精品影院一区二区久久久 | 久久久久亚洲精品 | 在线免费观看欧美日韩 | 超碰在线人人艹 | 一区二区三区免费在线播放 | 国产视频精品视频 | 久久久久久久久久久精 | 国产手机av在线 | 中文在线www | 96精品高清视频在线观看软件特色 | 久久精品国产一区二区三区 | 久久网站av| 99热这里是精品 | 成人一区在线观看 | 香蕉成人在线视频 | 久久精品国产v日韩v亚洲 | 99综合视频 | 蜜臀久久99精品久久久久久网站 | 91激情 | 精品欧美一区二区在线观看 | 美女视频又黄又免费 | 99精品视频免费看 | 国产男女无遮挡猛进猛出在线观看 | 国产精品都在这里 | 中文不卡视频在线 | 亚洲一区精品人人爽人人躁 | 亚洲成人动漫在线观看 | 夜夜澡人模人人添人人看 | 国产一级做a爱片久久毛片a | www.69xx| 精品视频123区在线观看 | 最近久乱中文字幕 | 丁香免费视频 | 日本在线观看中文字幕 | 成人在线免费观看视视频 | 国产美女精品视频免费观看 | 亚洲第一伊人 | 97在线免费视频 | 99久久国产免费免费 | 国产永久免费 | 欧美一区二区三区在线播放 | 免费av片在线| 国产精品无av码在线观看 | 欧美在线91| 一区二区三区 中文字幕 | www.黄色| 国产在线精品二区 | 久久精品www人人爽人人 | 国产精品原创av片国产免费 | 亚洲精品97 | 91大神免费在线观看 | 久草在线国产 | 98涩涩国产露脸精品国产网 | 波多野结衣一区 | 国产片免费在线观看视频 | 99视频免费看 | 国产破处在线视频 | 欧美激情综合色综合啪啪五月 | 在线观看自拍 | 香蕉视频久久 | 五月婷婷综合在线视频 | 91最新在线 | 中文字幕不卡在线88 | 欧美亚洲国产一卡 | 久久成人黄色 | 天天草天天色 | 青春草免费在线视频 | 91免费看黄 | 波多野结衣小视频 | 国产精品一区二区三区免费看 | 亚洲精品免费观看 | 国产黄色精品在线 | 射射色 | 成人毛片一区二区三区 | 亚洲热视频 | 中文字幕一区二区三区久久 | 99久久久久久久久 | 91成人蝌蚪 | 一本一道久久a久久精品蜜桃 | 天天干,狠狠干 | 久久国产精品免费一区二区三区 | 国产亚洲精品日韩在线tv黄 | 免费a v在线 | 特黄特色特刺激视频免费播放 | 亚洲午夜精品久久久久久久久 | 色婷婷激情电影 | 亚洲视频www| 欧美动漫一区二区三区 | www.av在线.com | 免费av成人在线 | 伊人av综合 | 超碰大片 | 9999免费视频 | 国产麻豆精品传媒av国产下载 | 欧美国产大片 | 久久精品一二三区白丝高潮 | 在线视频国产区 | 成人黄色在线电影 | 91精品日韩| www.天天射.com | 色福利网| 亚洲成av人片在线观看香蕉 | 免费视频二区 | 色爽网站| 国产日本高清 | 国产手机视频在线播放 | 国产中的精品av小宝探花 | 国产成人精品电影久久久 | 韩国中文三级 | 亚洲国产精品va在线看黑人 | 色婷婷久久久 | 最近2019好看的中文字幕免费 | 99爱视频在线观看 | 激情综合网婷婷 | avcom在线 | 怡红院av久久久久久久 | 天天插天天操天天干 | 亚洲天堂视频在线 | 久久综合九九 | 深爱激情av | 久久天天躁夜夜躁狠狠躁2022 | 在线精品在线 | 久久精品视频中文字幕 | 91丨九色丨高潮丰满 | 九九九热 | 久久久影片 | 99国产精品久久久久老师 | 亚洲美女免费精品视频在线观看 | 高清av不卡 | 国产日韩在线播放 | av电影免费观看 | ww视频在线观看 | 免费成人在线视频网站 | 久久美女精品 | 午夜精品视频一区 | 欧美精品一区二区三区四区在线 | 亚洲自拍自偷 | 伊人久久电影网 | 四虎国产精品免费观看视频优播 | av免费看在线 | 欧美激情视频免费看 | 99r精品视频在线观看 | 国产成人一区二区三区久久精品 | 亚洲电影久久 | 日韩精品一区二区在线观看视频 | 久久久精选 | 久久久久久免费网 | 99精品欧美一区二区三区 | 日韩欧美视频一区 | 亚洲色影爱久久精品 | 国产欧美精品一区二区三区四区 | 91九色免费视频 | 国产福利91精品一区二区三区 | 天天综合网久久综合网 | 成人一级在线 | 国产午夜影院 | 欧美专区日韩专区 | 久久另类小说 | 精品一区二区电影 | 最近2019好看的中文字幕免费 | 亚洲一级片 | 一区二区三区久久 | 99精品在线免费在线观看 | 亚洲精品一区二区三区四区高清 | 久久视频国产精品免费视频在线 | 五月婷婷影视 | 日韩久久片 | 欧美日韩国产高清视频 | 超碰在线天天 | 国产黄色视 | 国产精品一区免费在线观看 | 综合色站 | 亚洲日本va中文字幕 | 国产免费视频一区二区裸体 | 午夜av在线 | 成人小视频在线免费观看 | 99在线免费视频 | 国产成人在线免费观看 | 久久精品一二区 | 精品国产午夜 | 精品黄色在线观看 | 久久久久美女 | 亚洲 欧美变态 另类 综合 | 激情在线网站 | 久色免费视频 | a爱爱视频| 久久久久久久久久免费 | 国产99免费| 国产精品伦一区二区三区视频 | 四虎天堂| 91中文字幕永久在线 | 97超级碰碰碰碰久久久久 | 黄色一级大片在线免费看产 | 精品麻豆入口免费 | 热久久电影 | 99视频在线免费看 | 免费视频成人 | 最新精品视频在线 | 精品一区二区三区在线播放 | 91精品秘密在线观看 | 一区二区三区动漫 | 国内精品久久久久影院一蜜桃 | 欧美日韩一区久久 | 久久综合欧美 | www.色就是色| 综合网婷婷 | a黄在线观看 | 久久激情五月丁香伊人 | 日韩av在线一区二区 | 欧美日韩亚洲一 | 叶爱av在线 | 欧美日韩高清国产 | 久久九九影视网 | 中文字幕在线高清 | 久久久久久久久毛片精品 | 欧美一级性生活视频 | 亚洲电影图片小说 | 国产专区视频 | 免费网站在线观看成人 | 7777xxxx| 在线色亚洲 | 玖操| 日韩高清三区 | 国产va饥渴难耐女保洁员在线观看 | 中文字幕亚洲五码 | 国产一二三四在线观看视频 | 日韩视频一二三区 | 麻豆视频91 | 久久尤物电影视频在线观看 | 国产色婷婷精品综合在线手机播放 | 国产精品中文在线 | 狠狠干天天 | 亚洲精品高清视频在线观看 | 九九热免费精品视频 | 黄色网在线播放 | 日韩久久精品一区二区 | 91视频 - 88av| 国产最新网站 | 三级性生活视频 | 美女视频a美女大全免费下载蜜臀 | 奇米影视777影音先锋 | 在线精品亚洲一区二区 | 免费av黄色 | 久久人人爽人人爽 | 久久区二区 | 激情综合中文娱乐网 | 激情图片qvod | 亚洲色图av| 久操久 | 91黄视频在线观看 | 黄污在线观看 | 日韩国产精品久久久久久亚洲 | 国产精品久久久久久影院 | 午夜久久久精品 | 伊人伊成久久人综合网站 | 成人久久久久久久久 | 精品视频久久久 | 在线观看www视频 | 国产福利小视频在线 | 国产区精品视频 | 狠狠干免费 | 探花视频免费观看 | 国产视频一区在线 | 亚洲精品456在线播放 | 中国一区二区视频 | 午夜精品久久久久久久99无限制 | 日本护士撒尿xxxx18 | 久久成年人| 日韩成人精品 | 在线观看免费日韩 | 国产 欧美 日产久久 | 国产在线观看你懂得 | 又黄又刺激的视频 | 精品一区二区av | 欧美一级电影在线观看 | 久久久亚洲麻豆日韩精品一区三区 | 91av在线不卡 | 欧美韩国在线 | 久久视频网址 | 视频在线一区 | 久久久国内精品 | 欧美性生活免费 | 成人免费在线观看av | 欧美日韩一区久久 | 国产精品麻豆果冻传媒在线播放 | 国产看片网站 | 不卡av电影在线观看 | 国产精品成人一区二区 | 久久久久久久av | 激情丁香综合 | 中文在线字幕免费观 | 狠狠操天天射 | 中文字幕第一页在线vr | 国产亲近乱来精品 | 久久久久久久久久久影视 | 亚洲成人高清在线 | 久久久久久97三级 | 国产97色| 亚洲狠狠婷婷综合久久久 | 中文字幕在线观看视频网站 | 91精品久久久久久久久久入口 | 日韩区欠美精品av视频 | 国产精品免费视频网站 | 伊人看片 | 国产粉嫩在线 | 久久精选| 欧美日韩精品在线一区二区 | 欧美综合在线视频 | 久久艹国产视频 | 手机看片午夜 | 国模精品在线 | 国产精品久久久久一区 | 99精品国产aⅴ | 久久久久久美女 | 天天干中文字幕 | 日本黄色黄网站 | 久久99九九99精品 | 国产女教师精品久久av | 国产欧美精品一区二区三区四区 | 亚洲三区在线 | 亚洲精品自拍视频在线观看 | 五月婷婷开心中文字幕 | 激情伊人 | 久久高清免费视频 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 日本99久久| 在线小视频 | 色婷婷狠狠干 | 国产精品岛国久久久久久久久红粉 | 波多野结依在线观看 | 亚洲少妇激情 | 超碰在线亚洲 | 精品999| 黄色a级片在线观看 | 久久精品欧美一区二区三区麻豆 |