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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【Jenkins】Jenkins在CentOS和k8s(minikube)上的部署记录

發(fā)布時(shí)間:2024/3/12 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Jenkins】Jenkins在CentOS和k8s(minikube)上的部署记录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

    • 一、版本說明
    • 二、部署步驟
    • 三、啟動(dòng)
    • 四、初始配置
    • 五、k8s下的安裝
      • 啟動(dòng)minikube
      • 創(chuàng)建命名空間
      • 通過Helm安裝jenkins
      • 創(chuàng)建持久卷存儲(chǔ)數(shù)據(jù)
      • 創(chuàng)建jenkins用戶
      • 安裝 Jenkins
    • 六、總結(jié)

一、版本說明

  • CentOS Linux 7

  • Jenkins 2.332.2

  • minikube version: v1.25.2

  • MacOS 12.3.1

二、部署步驟

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

這里注意,pkg.jenkins.io的證書過期了,我們要加上--no-check-certificate

[xiaoyu@localhost ~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate --2022-04-22 19:54:23-- https://pkg.jenkins.io/redhat-stable/jenkins.repo 正在解析主機(jī) pkg.jenkins.io (pkg.jenkins.io)... 151.101.74.133, 2a04:4e42:1a::645 正在連接 pkg.jenkins.io (pkg.jenkins.io)|151.101.74.133|:443... 已連接。 警告: 無(wú)法驗(yàn)證 pkg.jenkins.io 的由 “/C=US/O=Let's Encrypt/CN=R3” 頒發(fā)的證書:頒發(fā)的證書已經(jīng)過期。 已發(fā)出 HTTP 請(qǐng)求,正在等待回應(yīng)... 200 OK 長(zhǎng)度:85 正在保存至: “/etc/yum.repos.d/jenkins.repo”100%[=========================================================================================>] 85 --.-K/s 用時(shí) 0s 2022-04-22 19:54:24 (6.71 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [85/85]) sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keysudo yum install fontconfig java-11-openjdksudo yum install jenkinssudo systemctl daemon-reload

上面三條沒有什么問題,注意的是給root權(quán)限即可。

三、啟動(dòng)

以下命令分別為

  • 設(shè)置jenkins開機(jī)啟動(dòng)
  • 啟動(dòng)jenkins服務(wù)
  • 查看jenkins服務(wù)狀態(tài)
[xiaoyu@localhost ~]$ sudo systemctl enable jenkins Created symlink from /etc/systemd/system/multi-user.target.wants/jenkins.service to /usr/lib/systemd/system/jenkins.service. [xiaoyu@localhost ~]$ sudo systemctl start jenkins [xiaoyu@localhost ~]$ sudo systemctl status jenkins ● jenkins.service - Jenkins Continuous Integration ServerLoaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)Active: active (running) since 五 2022-04-22 20:19:45 CST; 10s agoMain PID: 20521 (java)Tasks: 42CGroup: /system.slice/jenkins.service└─20521 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8...422 20:19:28 localhost.localdomain jenkins[20521]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword 422 20:19:28 localhost.localdomain jenkins[20521]: ************************************************************* 422 20:19:28 localhost.localdomain jenkins[20521]: ************************************************************* 422 20:19:28 localhost.localdomain jenkins[20521]: ************************************************************* 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.012+0000 [id=43] INFO h.m.Download...aller 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.012+0000 [id=43] INFO hudson.util....pt #1 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.014+0000 [id=43] INFO hudson.model...23 ms 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.867+0000 [id=28] INFO jenkins.Init...ation 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.884+0000 [id=20] INFO hudson.lifec...nning 422 20:19:45 localhost.localdomain systemd[1]: Started Jenkins Continuous Integration Server. Hint: Some lines were ellipsized, use -l to show in full.

通過增加-l查看完整信息,我們可以看到j(luò)enkins用的是8080端口,初始密碼在/var/lib/jenkins/secrets/initialAdminPassword中,需要root權(quán)限查看。

[xiaoyu@localhost ~]$ sudo systemctl status jenkins -l ● jenkins.service - Jenkins Continuous Integration ServerLoaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)Active: active (running) since 五 2022-04-22 20:19:45 CST; 2min 44s agoMain PID: 20521 (java)Tasks: 35CGroup: /system.slice/jenkins.service└─20521 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=%C/jenkins/war --httpPort=8080422 20:19:28 localhost.localdomain jenkins[20521]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword 422 20:19:28 localhost.localdomain jenkins[20521]: ************************************************************* 422 20:19:28 localhost.localdomain jenkins[20521]: ************************************************************* 422 20:19:28 localhost.localdomain jenkins[20521]: ************************************************************* 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.012+0000 [id=43] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.012+0000 [id=43] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.014+0000 [id=43] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 16,623 ms 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.867+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization 422 20:19:45 localhost.localdomain jenkins[20521]: 2022-04-22 12:19:45.884+0000 [id=20] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running 422 20:19:45 localhost.localdomain systemd[1]: Started Jenkins Continuous Integration Server. [xiaoyu@localhost ~]$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword 9e87859e96cc49b39276d6a63f80df1b

云主機(jī)注意需要放行8080端口,不然無(wú)法訪問。

四、初始配置

瀏覽器訪問服務(wù)器的8080端口,即可訪問jenkins。

直接選擇推薦的插件即可。

創(chuàng)建第一個(gè)用戶。

下一步是配置地址,建議做一層nginx,生產(chǎn)環(huán)境使用域名解析,我這里用的本地虛擬機(jī)就這樣了。

到此,jenkins安裝完成。

五、k8s下的安裝

本文采用MacOS下本地安裝,基于minikebe。

啟動(dòng)minikube

(base) xiaoyu@localhost ~ % minikube start 😄 Darwin 12.3.1 上的 minikube v1.25.2 ? 根據(jù)現(xiàn)有的配置文件使用 hyperkit 驅(qū)動(dòng)程序 👍 Starting control plane node minikube in cluster minikube 🏃 Updating the running hyperkit "minikube" VM ... ? This VM is having trouble accessing https://k8s.gcr.io 💡 To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/ 🐳 正在 Docker 20.10.12 中準(zhǔn)備 Kubernetes v1.23.3…? kubelet.housekeeping-interval=5m 🔎 Verifying Kubernetes components...? Using image gcr.io/k8s-minikube/storage-provisioner:v5? Using image kubernetesui/metrics-scraper:v1.0.7? Using image kubernetesui/dashboard:v2.3.1 🌟 Enabled addons: default-storageclass, storage-provisioner, dashboard? /usr/local/bin/kubectl is version 1.21.2, which may have incompatibilites with Kubernetes 1.23.3.? Want kubectl v1.23.3? Try 'minikube kubectl -- get pods -A' 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

創(chuàng)建命名空間

(base) xiaoyu@localhost ~ % kubectl create namespace jenkins namespace/jenkins created

確定命名空間創(chuàng)建完成。

通過Helm安裝jenkins

Helm 是 Kubernetes 的包管理器,可以簡(jiǎn)化jenkins的安裝。

brew install helm helm repo add jenkinsci https://charts.jenkins.iohelm repo update可以找到j(luò)enkinss包(base) xiaoyu@localhost ~ % helm search repo jenkinsciNAME CHART VERSION APP VERSION DESCRIPTION jenkinsci/jenkins 3.12.0 2.332.2 Jenkins - Build great things at any scale!

創(chuàng)建持久卷存儲(chǔ)數(shù)據(jù)

我們采用持久卷的方式掛載數(shù)據(jù),防止每次minikube重啟的時(shí)候丟失數(shù)據(jù)。

以下內(nèi)容存放在jenkins-volume.yaml中,注意,hostPath下path為絕對(duì)路徑,需要根據(jù)實(shí)際情況更改。

apiVersion: v1 kind: PersistentVolume metadata:name: jenkins-pvnamespace: jenkins spec:storageClassName: jenkins-pvaccessModes:- ReadWriteOncecapacity:storage: 20GipersistentVolumeReclaimPolicy: RetainhostPath:path: /Users/xiaoyu/develop/jenkins-pv/data/

在文件當(dāng)前目錄執(zhí)行kubectl apply -f jenkins-volume.yaml。提示已經(jīng)創(chuàng)建。

(base) xiaoyu@localhost jenkinss-pv % kubectl apply -f jenkins-volume.yamlpersistentvolume/jenkins-pv created

配置權(quán)限

(base) xiaoyu@localhost ~ % minikube ssh _ _ _ _ ( ) ( ) ___ ___ (_) ___ (_)| |/') _ _ | |_ __ /' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)$ sudo chown -R 1000:1000 /Users/xiaoyu/develop/jenkinss-pv/data

創(chuàng)建jenkins用戶

為了保證安全性,一般我們?yōu)槟硞€(gè)單獨(dú)的服務(wù)配置單獨(dú)的管理員用戶,用來(lái)處理單獨(dú)的工作。在k8s中,默認(rèn)配置一個(gè)和命名空間一致的用戶作為這個(gè)命名空間內(nèi)操作的授權(quán)用戶。

基于文件即配置的思想,我們依然創(chuàng)建一個(gè)文件,名稱是jenkins-sa.yaml,當(dāng)然名稱不是固定的,這樣比較好區(qū)分。并將下面內(nèi)容寫入文件內(nèi),我們可以看到k8s是如何配置用戶并分配權(quán)限的。

--- apiVersion: v1 kind: ServiceAccount metadata:name: jenkinsnamespace: jenkins --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:annotations:rbac.authorization.kubernetes.io/autoupdate: "true"labels:kubernetes.io/bootstrapping: rbac-defaultsname: jenkins rules: - apiGroups:- '*'resources:- statefulsets- services- replicationcontrollers- replicasets- podtemplates- podsecuritypolicies- pods- pods/log- pods/exec- podpreset- poddisruptionbudget- persistentvolumes- persistentvolumeclaims- jobs- endpoints- deployments- deployments/scale- daemonsets- cronjobs- configmaps- namespaces- events- secretsverbs:- create- get- watch- delete- list- patch- update - apiGroups:- ""resources:- nodesverbs:- get- list- watch- update --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:annotations:rbac.authorization.kubernetes.io/autoupdate: "true"labels:kubernetes.io/bootstrapping: rbac-defaultsname: jenkins roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: jenkins subjects: - apiGroup: rbac.authorization.k8s.iokind: Groupname: system:serviceaccounts:jenkins (base) xiaoyu@localhost jenkinss-pv % kubectl apply -f jenkins-sa.yamlserviceaccount/jenkins createdclusterrole.rbac.authorization.k8s.io/jenkins createdclusterrolebinding.rbac.authorization.k8s.io/jenkins created

以上操作分別完成了創(chuàng)建用戶、創(chuàng)建權(quán)限、綁定權(quán)限操作。

安裝 Jenkins

和上面操作一樣,新建文件jenkins-values.yaml。

# Default values for jenkins. # This is a YAML-formatted file. # Declare name/value pairs to be passed into your templates. # name: value## Overrides for generated resource names # See templates/_helpers.tpl # nameOverride: # fullnameOverride: # namespaceOverride:# For FQDN resolving of the controller service. Change this value to match your existing configuration. # ref: https://github.com/kubernetes/dns/blob/master/docs/specification.md clusterZone: "cluster.local"renderHelmLabels: truecontroller:# Used for label app.kubernetes.io/componentcomponentName: "jenkins-controller"image: "jenkins/jenkins"# tag: "2.332.2-jdk11"tagLabel: jdk11imagePullPolicy: "Always"imagePullSecretName:# Optionally configure lifetime for controller-containerlifecycle:# postStart:# exec:# command:# - "uname"# - "-a"disableRememberMe: falsenumExecutors: 0# configures the executor mode of the Jenkins node. Possible values are: NORMAL or EXCLUSIVEexecutorMode: "NORMAL"# This is ignored if enableRawHtmlMarkupFormatter is truemarkupFormatter: plainTextcustomJenkinsLabels: []# The default configuration uses this secret to configure an admin user# If you don't need that user or use a different security realm then you can disable itadminSecret: truehostNetworking: false# When enabling LDAP or another non-Jenkins identity source, the built-in admin account will no longer exist.# If you disable the non-Jenkins identity store and instead use the Jenkins internal one,# you should revert controller.adminUser to your preferred admin user:adminUser: "admin"# adminPassword: <defaults to random>admin:existingSecret: ""userKey: xiaoyuqingnianpasswordKey: xiaoyuqingnian# This values should not be changed unless you use your custom image of jenkins or any devired from. If you want to use# Cloudbees Jenkins Distribution docker, you should set jenkinsHome: "/var/cloudbees-jenkins-distribution"jenkinsHome: "/var/jenkins_home"# This values should not be changed unless you use your custom image of jenkins or any devired from. If you want to use# Cloudbees Jenkins Distribution docker, you should set jenkinsRef: "/usr/share/cloudbees-jenkins-distribution/ref"jenkinsRef: "/usr/share/jenkins/ref"# Path to the jenkins war file which is used by jenkins-plugin-cli.jenkinsWar: "/usr/share/jenkins/jenkins.war"# Overrides the default arguments passed to the war# overrideArgs:# - --httpPort=8080resources:requests:cpu: "50m"memory: "256Mi"limits:cpu: "2000m"memory: "4096Mi"# Overrides the init container default values# initContainerResources:# requests:# cpu: "50m"# memory: "256Mi"# limits:# cpu: "2000m"# memory: "4096Mi"# Environment variables that get added to the init container (useful for e.g. http_proxy)# initContainerEnv:# - name: http_proxy# value: "http://192.168.64.1:3128"# containerEnv:# - name: http_proxy# value: "http://192.168.64.1:3128"# Set min/max heap here if needed with:# javaOpts: "-Xms512m -Xmx512m"# jenkinsOpts: ""# If you are using the ingress definitions provided by this chart via the `controller.ingress` block the configured hostname will be the ingress hostname starting with `https://` or `http://` depending on the `tls` configuration.# The Protocol can be overwritten by specifying `controller.jenkinsUrlProtocol`.# jenkinsUrlProtocol: "https"# If you are not using the provided ingress you can specify `controller.jenkinsUrl` to change the url definition.# jenkinsUrl: ""# If you set this prefix and use ingress controller then you might want to set the ingress path below# jenkinsUriPrefix: "/jenkins"# Enable pod security context (must be `true` if podSecurityContextOverride, runAsUser or fsGroup are set)usePodSecurityContext: true# Note that `runAsUser`, `fsGroup`, and `securityContextCapabilities` are# being deprecated and replaced by `podSecurityContextOverride`.# Set runAsUser to 1000 to let Jenkins run as non-root user 'jenkins' which exists in 'jenkins/jenkins' docker image.# When setting runAsUser to a different value than 0 also set fsGroup to the same value:runAsUser: 1000fsGroup: 1000# If you have PodSecurityPolicies that require dropping of capabilities as suggested by CIS K8s benchmark, put them heresecurityContextCapabilities: {}# drop:# - NET_RAW# Completely overwrites the contents of the `securityContext`, ignoring the# values provided for the deprecated fields: `runAsUser`, `fsGroup`, and# `securityContextCapabilities`. In the case of mounting an ext4 filesystem,# it might be desirable to use `supplementalGroups` instead of `fsGroup` in# the `securityContext` block: https://github.com/kubernetes/kubernetes/issues/67014#issuecomment-589915496# podSecurityContextOverride:# runAsUser: 1000# runAsNonRoot: true# supplementalGroups: [1000]# # capabilities: {}# Container securityContextcontainerSecurityContext:runAsUser: 1000runAsGroup: 1000readOnlyRootFilesystem: trueallowPrivilegeEscalation: falseservicePort: 8080targetPort: 8080# For minikube, set this to NodePort, elsewhere use LoadBalancer# Use ClusterIP if your setup includes ingress controllerserviceType: ClusterIP# Use Local to preserve the client source IP and avoids a second hop for LoadBalancer and Nodeport type services,# but risks potentially imbalanced traffic spreading.serviceExternalTrafficPolicy:# Jenkins controller service annotationsserviceAnnotations: {}# Jenkins controller custom labelsstatefulSetLabels: {}# foo: bar# bar: foo# Jenkins controller service labelsserviceLabels: {}# service.beta.kubernetes.io/aws-load-balancer-backend-protocol: https# Put labels on Jenkins controller podpodLabels: {}# Used to create Ingress record (should used with ServiceType: ClusterIP)# nodePort: <to set explicitly, choose port between 30000-32767# Enable Kubernetes Startup, Liveness and Readiness Probes# if Startup Probe is supported, enable it too# ~ 2 minutes to allow Jenkins to restart when upgrading plugins. Set ReadinessTimeout to be shorter than LivenessTimeout.healthProbes: trueprobes:startupProbe:httpGet:path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'port: httpperiodSeconds: 10timeoutSeconds: 5failureThreshold: 12livenessProbe:failureThreshold: 5httpGet:path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'port: httpperiodSeconds: 10timeoutSeconds: 5# If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.# It delays the initial liveness probe while Jenkins is starting# initialDelaySeconds: 60readinessProbe:failureThreshold: 3httpGet:path: '{{ default "" .Values.controller.jenkinsUriPrefix }}/login'port: httpperiodSeconds: 10timeoutSeconds: 5# If Startup Probe is not supported on your Kubernetes cluster, you might want to use "initialDelaySeconds" instead.# It delays the initial readyness probe while Jenkins is starting# initialDelaySeconds: 60# PodDisruptionBudget configpodDisruptionBudget:enabled: false# For Kubernetes v1.5+, use 'policy/v1beta1'# For Kubernetes v1.21+, use 'policy/v1'apiVersion: "policy/v1beta1"annotations: {}labels: {}# maxUnavailable: "0"agentListenerEnabled: trueagentListenerPort: 50000agentListenerHostPort:agentListenerNodePort:agentListenerExternalTrafficPolicy:agentListenerLoadBalancerSourceRanges:- 0.0.0.0/0disabledAgentProtocols:- JNLP-connect- JNLP2-connectcsrf:defaultCrumbIssuer:enabled: trueproxyCompatability: true# Kubernetes service type for the JNLP agent service# agentListenerServiceType is the Kubernetes Service type for the JNLP agent service,# either 'LoadBalancer', 'NodePort', or 'ClusterIP'# Note if you set this to 'LoadBalancer', you *must* define annotations to secure it. By default# this will be an external load balancer and allowing inbound 0.0.0.0/0, a HUGE# security risk: https://github.com/kubernetes/charts/issues/1341agentListenerServiceType: "ClusterIP"# Optionally assign an IP to the LoadBalancer agentListenerService LoadBalancer# GKE users: only regional static IPs will work for Service Load balancer.agentListenerLoadBalancerIP:agentListenerServiceAnnotations: {}# Example of 'LoadBalancer' type of agent listener with annotations securing it# agentListenerServiceType: LoadBalancer# agentListenerServiceAnnotations:# service.beta.kubernetes.io/aws-load-balancer-internal: "True"# service.beta.kubernetes.io/load-balancer-source-ranges: "172.0.0.0/8, 10.0.0.0/8"# LoadBalancerSourcesRange is a list of allowed CIDR values, which are combined with ServicePort to# set allowed inbound rules on the security group assigned to the controller load balancerloadBalancerSourceRanges:- 0.0.0.0/0# Optionally assign a known public LB IP# loadBalancerIP: 1.2.3.4# Optionally configure a JMX port# requires additional javaOpts, ie# javaOpts: ># -Dcom.sun.management.jmxremote.port=4000# -Dcom.sun.management.jmxremote.authenticate=false# -Dcom.sun.management.jmxremote.ssl=false# jmxPort: 4000# Optionally configure other ports to expose in the controller containerextraPorts: []# - name: BuildInfoProxy# port: 9000# List of plugins to be install during Jenkins controller startinstallPlugins:- kubernetes:1.31.3- workflow-aggregator:2.6- git:4.10.2- configuration-as-code:1414.v878271fc496f# Set to false to download the minimum required version of all dependencies.installLatestPlugins: true# Set to true to download latest dependencies of any plugin that is requested to have the latest version.installLatestSpecifiedPlugins: false# List of plugins to install in addition to those listed in controller.installPluginsadditionalPlugins: []# Enable to initialize the Jenkins controller only once on initial installation.# Without this, whenever the controller gets restarted (Evicted, etc.) it will fetch plugin updates which has the potential to cause breakage.# Note that for this to work, `persistence.enabled` needs to be set to `true`initializeOnce: false# Enable to always override the installed plugins with the values of 'controller.installPlugins' on upgrade or redeployment.# overwritePlugins: true# Configures if plugins bundled with `controller.image` should be overwritten with the values of 'controller.installPlugins' on upgrade or redeployment.overwritePluginsFromImage: true# Enable HTML parsing using OWASP Markup Formatter Plugin (antisamy-markup-formatter), useful with ghprb plugin.# The plugin is not installed by default, please update controller.installPlugins.enableRawHtmlMarkupFormatter: false# Used to approve a list of groovy functions in pipelines used the script-security plugin. Can be viewed under /scriptApprovalscriptApproval: []# - "method groovy.json.JsonSlurperClassic parseText java.lang.String"# - "new groovy.json.JsonSlurperClassic"# List of groovy init scripts to be executed during Jenkins controller startinitScripts: []# - |# print 'adding global pipeline libraries, register properties, bootstrap jobs...'# 'name' is a name of an existing secret in same namespace as jenkins,# 'keyName' is the name of one of the keys inside current secret.# the 'name' and 'keyName' are concatenated with a '-' in between, so for example:# an existing secret "secret-credentials" and a key inside it named "github-password" should be used in Jcasc as ${secret-credentials-github-password}# 'name' and 'keyName' must be lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-',# and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc')additionalExistingSecrets: []# - name: secret-name-1# keyName: username# - name: secret-name-1# keyName: passwordadditionalSecrets: []# - name: nameOfSecret# value: secretText# Generate SecretClaim resources in order to create Kubernetes secrets from HashiCorp Vault using kube-vault-controller.# 'name' is name of the secret that will be created in Kubernetes. The Jenkins fullname is prepended to this value.# 'path' is the fully qualified path to the secret in Vault# 'type' is an optional Kubernetes secret type. Defaults to 'Opaque'# 'renew' is an optional secret renewal time in secondssecretClaims: []# - name: secretName # required# path: testPath # required# type: kubernetes.io/tls # optional# renew: 60 # optional# Name of default cloud configuration.cloudName: "kubernetes"# Below is the implementation of Jenkins Configuration as Code. Add a key under configScripts for each configuration area,# where each corresponds to a plugin or section of the UI. Each key (prior to | character) is just a label, and can be any value.# Keys are only used to give the section a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label# characters: lowercase letters, numbers, and hyphens. The keys become the name of a configuration yaml file on the controller in# /var/jenkins_home/casc_configs (by default) and will be processed by the Configuration as Code Plugin. The lines after each |# become the content of the configuration yaml file. The first line after this is a JCasC root element, eg jenkins, credentials,# etc. Best reference is https://<jenkins_url>/configuration-as-code/reference. The example below creates a welcome message:JCasC:defaultConfig: trueconfigScripts: {}# welcome-message: |# jenkins:# systemMessage: Welcome to our CI\CD server. This Jenkins is configured and managed 'as code'.# Ignored if securityRealm is defined in controller.JCasC.configScripts and# ignored if controller.enableXmlConfig=true as controller.securityRealm takes precedencesecurityRealm: |-local:allowsSignup: falseenableCaptcha: falseusers:- id: "${chart-admin-username}"name: "Jenkins Admin"password: "${chart-admin-password}"# Ignored if authorizationStrategy is defined in controller.JCasC.configScriptsauthorizationStrategy: |-loggedInUsersCanDoAnything:allowAnonymousRead: false# Optionally specify additional init-containerscustomInitContainers: []# - name: custom-init# image: "alpine:3.7"# imagePullPolicy: Always# command: [ "uname", "-a" ]sidecars:configAutoReload:# If enabled: true, Jenkins Configuration as Code will be reloaded on-the-fly without a reboot. If false or not-specified,# jcasc changes will cause a reboot and will only be applied at the subsequent start-up. Auto-reload uses the# http://<jenkins_url>/reload-configuration-as-code endpoint to reapply config when changes to the configScripts are detected.enabled: trueimage: kiwigrid/k8s-sidecar:1.15.0imagePullPolicy: IfNotPresentresources: {}# limits:# cpu: 100m# memory: 100Mi# requests:# cpu: 50m# memory: 50Mi# How many connection-related errors to retry onreqRetryConnect: 10# env:# - name: REQ_TIMEOUT# value: "30"# SSH port value can be set to any unused TCP port. The default, 1044, is a non-standard SSH port that has been chosen at random.# Is only used to reload jcasc config from the sidecar container running in the Jenkins controller pod.# This TCP port will not be open in the pod (unless you specifically configure this), so Jenkins will not be# accessible via SSH from outside of the pod. Note if you use non-root pod privileges (runAsUser & fsGroup),# this must be > 1024:sshTcpPort: 1044# folder in the pod that should hold the collected dashboards:folder: "/var/jenkins_home/casc_configs"# If specified, the sidecar will search for JCasC config-maps inside this namespace.# Otherwise the namespace in which the sidecar is running will be used.# It's also possible to specify ALL to search in all namespaces:# searchNamespace:containerSecurityContext:readOnlyRootFilesystem: trueallowPrivilegeEscalation: false# Allows you to inject additional/other sidecarsother: []## The example below runs the client for https://smee.io as sidecar container next to Jenkins,## that allows to trigger build behind a secure firewall.## https://jenkins.io/blog/2019/01/07/webhook-firewalls/#triggering-builds-with-webhooks-behind-a-secure-firewall#### Note: To use it you should go to https://smee.io/new and update the url to the generete one.# - name: smee# image: docker.io/twalter/smee-client:1.0.2# args: ["--port", "{{ .Values.controller.servicePort }}", "--path", "/github-webhook/", "--url", "https://smee.io/new"]# resources:# limits:# cpu: 50m# memory: 128Mi# requests:# cpu: 10m# memory: 32Mi# Name of the Kubernetes scheduler to useschedulerName: ""# Node labels and tolerations for pod assignment# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-featurenodeSelector: {}terminationGracePeriodSeconds:terminationMessagePath:terminationMessagePolicy:tolerations: []affinity: {}# Leverage a priorityClass to ensure your pods survive resource shortages# ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/priorityClassName:podAnnotations: {}# Add StatefulSet annotationsstatefulSetAnnotations: {}# StatefulSet updateStrategy# ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategiesupdateStrategy: {}ingress:enabled: false# Override for the default paths that map requests to the backendpaths: []# - backend:# serviceName: ssl-redirect# servicePort: use-annotation# - backend:# serviceName: >-# {{ template "jenkins.fullname" . }}# # Don't use string here, use only integer value!# servicePort: 8080# For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'# For Kubernetes v1.19+, use 'networking.k8s.io/v1'apiVersion: "extensions/v1beta1"labels: {}annotations: {}# kubernetes.io/ingress.class: nginx# kubernetes.io/tls-acme: "true"# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress# ingressClassName: nginx# Set this path to jenkinsUriPrefix above or use annotations to rewrite path# path: "/jenkins"# configures the hostname e.g. jenkins.example.comhostName:tls:# - secretName: jenkins.cluster.local# hosts:# - jenkins.cluster.local# often you want to have your controller all locked down and private# but you still want to get webhooks from your SCM# A secondary ingress will let you expose different urls# with a differnt configurationsecondaryingress:enabled: false# paths you want forwarded to the backend# ex /github-webhookpaths: []# For Kubernetes v1.14+, use 'networking.k8s.io/v1beta1'# For Kubernetes v1.19+, use 'networking.k8s.io/v1'apiVersion: "extensions/v1beta1"labels: {}annotations: {}# kubernetes.io/ingress.class: nginx# kubernetes.io/tls-acme: "true"# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress# ingressClassName: nginx# configures the hostname e.g. jenkins-external.example.comhostName:tls:# - secretName: jenkins-external.example.com# hosts:# - jenkins-external.example.com# If you're running on GKE and need to configure a backendconfig# to finish ingress setup, use the following values.# Docs: https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfigbackendconfig:enabled: falseapiVersion: "extensions/v1beta1"name:labels: {}annotations: {}spec: {}# Openshift routeroute:enabled: falselabels: {}annotations: {}# path: "/jenkins"# controller.hostAliases allows for adding entries to Pod /etc/hosts:# https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/hostAliases: []# - ip: 192.168.50.50# hostnames:# - something.local# - ip: 10.0.50.50# hostnames:# - other.local# Expose Prometheus metricsprometheus:# If enabled, add the prometheus plugin to the list of plugins to install# https://plugins.jenkins.io/prometheusenabled: false# Additional labels to add to the ServiceMonitor objectserviceMonitorAdditionalLabels: {}# Set a custom namespace where to deploy ServiceMonitor resource# serviceMonitorNamespace: monitoringscrapeInterval: 60s# This is the default endpoint used by the prometheus pluginscrapeEndpoint: /prometheus# Additional labels to add to the PrometheusRule objectalertingRulesAdditionalLabels: {}# An array of prometheus alerting rules# See here: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/# The `groups` root object is added by default, simply add the rule entriesalertingrules: []# Set a custom namespace where to deploy PrometheusRule resourceprometheusRuleNamespace: ""# Can be used to disable rendering controller test resources when using helm templatetestEnabled: truehttpsKeyStore:jenkinsHttpsJksSecretName: ''enable: falsehttpPort: 8081path: "/var/jenkins_keystore"fileName: "keystore.jks"password: "password"# Convert keystore.jks files content to base64 ( cat keystore.jks | base64 ) and put the output herejenkinsKeyStoreBase64Encoded: |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agent:enabled: truedefaultsProviderTemplate: ""# URL for connecting to the Jenkins contollerjenkinsUrl:# connect to the specified host and port, instead of connecting directly to the Jenkins controllerjenkinsTunnel:kubernetesConnectTimeout: 5kubernetesReadTimeout: 15maxRequestsPerHostStr: "32"namespace:image: "jenkins/inbound-agent"tag: "4.11.2-4"workingDir: "/home/jenkins/agent"nodeUsageMode: "NORMAL"customJenkinsLabels: []# name of the secret to be used for image pullingimagePullSecretName:componentName: "jenkins-agent"websocket: falseprivileged: falserunAsUser:runAsGroup:resources:requests:cpu: "512m"memory: "512Mi"limits:cpu: "512m"memory: "512Mi"# You may want to change this to true while testing a new imagealwaysPullImage: false# Controls how agent pods are retained after the Jenkins build completes# Possible values: Always, Never, OnFailurepodRetention: "Never"# Disable if you do not want the Yaml the agent pod template to show up# in the job Console Output. This can be helpful for either security reasons# or simply to clean up the output to make it easier to read.showRawYaml: true# You can define the volumes that you want to mount for this container# Allowed types are: ConfigMap, EmptyDir, HostPath, Nfs, PVC, Secret# Configure the attributes as they appear in the corresponding Java class for that type# https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumesvolumes: []# - type: ConfigMap# configMapName: myconfigmap# mountPath: /var/myapp/myconfigmap# - type: EmptyDir# mountPath: /var/myapp/myemptydir# memory: false# - type: HostPath# hostPath: /var/lib/containers# mountPath: /var/myapp/myhostpath# - type: Nfs# mountPath: /var/myapp/mynfs# readOnly: false# serverAddress: "192.0.2.0"# serverPath: /var/lib/containers# - type: PVC# claimName: mypvc# mountPath: /var/myapp/mypvc# readOnly: false# - type: Secret# defaultMode: "600"# mountPath: /var/myapp/mysecret# secretName: mysecret# Pod-wide environment, these vars are visible to any container in the agent pod# You can define the workspaceVolume that you want to mount for this container# Allowed types are: DynamicPVC, EmptyDir, HostPath, Nfs, PVC# Configure the attributes as they appear in the corresponding Java class for that type# https://github.com/jenkinsci/kubernetes-plugin/tree/master/src/main/java/org/csanchez/jenkins/plugins/kubernetes/volumes/workspaceworkspaceVolume: {}## DynamicPVC example# type: DynamicPVC# configMapName: myconfigmap## EmptyDir example# type: EmptyDir# memory: false## HostPath example# type: HostPath# hostPath: /var/lib/containers## NFS example# type: Nfs# readOnly: false# serverAddress: "192.0.2.0"# serverPath: /var/lib/containers## PVC example# type: PVC# claimName: mypvc# readOnly: false## Pod-wide environment, these vars are visible to any container in the agent podenvVars: []# - name: PATH# value: /usr/local/binnodeSelector: {}# Key Value selectors. Ex:# jenkins-agent: v1# Executed command when side container gets startedcommand:args: "${computer.jnlpmac} ${computer.name}"# Side container namesideContainerName: "jnlp"# Doesn't allocate pseudo TTY by defaultTTYEnabled: false# Max number of spawned agentcontainerCap: 10# Pod namepodName: "default"# Allows the Pod to remain active for reuse until the configured number of# minutes has passed since the last step was executed on it.idleMinutes: 0# Raw yaml template for the Pod. For example this allows usage of toleration for agent pods.# https://github.com/jenkinsci/kubernetes-plugin#using-yaml-to-define-pod-templates# https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/yamlTemplate: ""# yamlTemplate: |-# apiVersion: v1# kind: Pod# spec:# tolerations:# - key: "key"# operator: "Equal"# value: "value"# Defines how the raw yaml field gets merged with yaml definitions from inherited pod templates: merge or overrideyamlMergeStrategy: "override"# Timeout in seconds for an agent to be onlineconnectTimeout: 100# Annotations to apply to the pod.annotations: {}# Disable the default Jenkins Agent configuration.# Useful when configuring agents only with the podTemplates value, since the default podTemplate populated by values mentioned above will be excluded in the rendered template.disableDefaultAgent: false# Below is the implementation of custom pod templates for the default configured kubernetes cloud.# Add a key under podTemplates for each pod template. Each key (prior to | character) is just a label, and can be any value.# Keys are only used to give the pod template a meaningful name. The only restriction is they may only contain RFC 1123 \ DNS label# characters: lowercase letters, numbers, and hyphens. Each pod template can contain multiple containers.# For this pod templates configuration to be loaded the following values must be set:# controller.JCasC.defaultConfig: true# Best reference is https://<jenkins_url>/configuration-as-code/reference#Cloud-kubernetes. The example below creates a python pod template.podTemplates: {}# python: |# - name: python# label: jenkins-python# serviceAccount: jenkins# containers:# - name: python# image: python:3# command: "/bin/sh -c"# args: "cat"# ttyEnabled: true# privileged: true# resourceRequestCpu: "400m"# resourceRequestMemory: "512Mi"# resourceLimitCpu: "1"# resourceLimitMemory: "1024Mi"# Here you can add additional agents # They inherit all values from `agent` so you only need to specify values which differ additionalAgents: {} # maven: # podName: maven # customJenkinsLabels: maven # # An example of overriding the jnlp container # # sideContainerName: jnlp # image: jenkins/jnlp-agent-maven # tag: latest # python: # podName: python # customJenkinsLabels: python # sideContainerName: python # image: python # tag: "3" # command: "/bin/sh -c" # args: "cat" # TTYEnabled: truepersistence:enabled: true## A manually managed Persistent Volume and Claim## Requires persistence.enabled: true## If defined, PVC must be created manually before volume will be boundexistingClaim:## jenkins data Persistent Volume Storage Class## If defined, storageClassName: <storageClass>## If set to "-", storageClassName: "", which disables dynamic provisioning## If undefined (the default) or set to null, no storageClassName spec is## set, choosing the default provisioner. (gp2 on AWS, standard on## GKE, AWS & OpenStack)##storageClass: jenkins-pvannotations: {}labels: {}accessMode: "ReadWriteOnce"size: "8Gi"volumes:# - name: nothing# emptyDir: {}mounts:# - mountPath: /var/nothing# name: nothing# readOnly: truenetworkPolicy:# Enable creation of NetworkPolicy resources.enabled: false# For Kubernetes v1.4, v1.5 and v1.6, use 'extensions/v1beta1'# For Kubernetes v1.7, use 'networking.k8s.io/v1'apiVersion: networking.k8s.io/v1# You can allow agents to connect from both within the cluster (from within specific/all namespaces) AND/OR from a given external IP rangeinternalAgents:allowed: truepodLabels: {}namespaceLabels: {}# project: myprojectexternalAgents: {}# ipCIDR: 172.17.0.0/16# except:# - 172.17.1.0/24## Install Default RBAC roles and bindings rbac:create: truereadSecrets: falseserviceAccount:create: false# The name of the service account is autogenerated by defaultname: jenkinsannotations: {}imagePullSecretName:serviceAccountAgent:# Specifies whether a ServiceAccount should be createdcreate: false# The name of the ServiceAccount to use.# If not set and create is true, a name is generated using the fullname templatename:annotations: {}imagePullSecretName:## Backup cronjob configuration ## Ref: https://github.com/maorfr/kube-tasks backup:# Backup must use RBAC# So by enabling backup you are enabling RBAC specific for backupenabled: false# Used for label app.kubernetes.io/componentcomponentName: "backup"# Schedule to run jobs. Must be in cron time format# Ref: https://crontab.guru/schedule: "0 2 * * *"labels: {}serviceAccount:create: truename:annotations: {}# Example for authorization to AWS S3 using kube2iam or IRSA# Can also be done using environment variables# iam.amazonaws.com/role: "jenkins"# "eks.amazonaws.com/role-arn": "arn:aws:iam::123456789012:role/jenkins-backup"# Set this to terminate the job that is running/failing continously and set the job status to "Failed"activeDeadlineSeconds: ""image:repository: "maorfr/kube-tasks"tag: "0.2.0"# Additional arguments for kube-tasks# Ref: https://github.com/maorfr/kube-tasks#simple-backupextraArgs: []# Add existingSecret for AWS credentialsexistingSecret: {}## Example for using an existing secret# jenkinsaws:## Use this key for AWS access key ID# awsaccesskey: jenkins_aws_access_key## Use this key for AWS secret access key# awssecretkey: jenkins_aws_secret_key# Add additional environment variables# jenkinsgcp:## Use this key for GCP credentials# gcpcredentials: credentials.jsonenv: []# Example environment variable required for AWS credentials chain# - name: "AWS_REGION"# value: "us-east-1"resources:requests:memory: 1Gicpu: 1limits:memory: 1Gicpu: 1# Destination to store the backup artifacts# Supported cloud storage services: AWS S3, Minio S3, Azure Blob Storage, Google Cloud Storage# Additional support can added. Visit this repository for details# Ref: https://github.com/maorfr/skbndestination: "s3://jenkins-data/backup"# By enabling only the jenkins_home/jobs folder gets backed up, not the whole jenkins instanceonlyJobs: false# Enable backup pod security context (must be `true` if runAsUser or fsGroup are set)usePodSecurityContext: true# When setting runAsUser to a different value than 0 also set fsGroup to the same value:runAsUser: 1000fsGroup: 1000securityContextCapabilities: {}# drop:# - NET_RAW checkDeprecation: trueawsSecurityGroupPolicies:enabled: falsepolicies:- name: ""securityGroupIds: []podSelector: {} chart=jenkinsci/jenkins (base) xiaoyu@localhost jenkinss-pv % helm install jenkins -n jenkins -f jenkins-values.yaml $chartNAME: jenkinsLAST DEPLOYED: Thu Apr 28 09:52:04 2022NAMESPACE: jenkinsSTATUS: deployedREVISION: 1NOTES:1. Get your 'admin' user password by running: kubectl exec --namespace jenkins -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/chart-admin-password && echo2. Get the Jenkins URL to visit by running these commands in the same shell: echo http://127.0.0.1:8080 kubectl --namespace jenkins port-forward svc/jenkins 8080:80803. Login with the password from step 1 and the username: admin4. Configure security realm and authorization strategy5. Use Jenkins Configuration as Code by specifying configScripts in your values.yaml file, see documentation: http:///configuration-as-code and examples: https://github.com/jenkinsci/configuration-as-code-plugin/tree/master/demosFor more information on running Jenkins on Kubernetes, visit:https://cloud.google.com/solutions/jenkins-on-container-engineFor more information about Jenkins Configuration as Code, visit:https://jenkins.io/projects/jcasc/NOTE: Consider using a custom image with pre-installed plugins

上面已經(jīng)提示部署完成了,接下來(lái)獲取初始密碼。

(base) xiaoyu@localhost jenkinss-pv % jsonpath="{.data.jenkins-admin-password}"(base) xiaoyu@localhost jenkinss-pv % secret=$(kubectl get secret -n jenkins jenkins -o jsonpath=$jsonpath)(base) xiaoyu@localhost jenkinss-pv % echo $(echo $secret | base64 --decode)By8cnPs8g8s1vO4MgCYRIw

得到初始密碼之后,獲取jenkins的URL。

(base) xiaoyu@localhost jenkinss-pv % jsonpath="{.spec.ports[0].nodePort}"(base) xiaoyu@localhost jenkinss-pv % NODE_PORT=$(kubectl get -n jenkins -o jsonpath=$jsonpath services jenkins)(base) xiaoyu@localhost jenkinss-pv % jsonpath="{.items[0].status.addresses[0].address}"(base) xiaoyu@localhost jenkinss-pv % NODE_IP=$(kubectl get nodes -n jenkins -o jsonpath=$jsonpath)(base) xiaoyu@localhost jenkinss-pv % echo http://$NODE_IP:$NODE_PORT/loginhttp://192.168.64.3:/login

獲取jenkins的pod信息。

(base) xiaoyu@localhost jenkinss-pv % kubectl get pods -n jenkinsNAME READY STATUS RESTARTS AGEjenkins-0 2/2 Running 0 4h52m

同樣配置在控制面板中我們也可以看到,注意切換命名空間。

配置接口轉(zhuǎn)發(fā)。

(base) xiaoyu@localhost jenkinss-pv % kubectl -n jenkins port-forward jenkins-0 8080:8080Forwarding from 127.0.0.1:8080 -> 8080Forwarding from [::1]:8080 -> 8080

這樣就可以訪問到了,用戶名admin,密碼對(duì)應(yīng)上面的查到的密碼。

六、總結(jié)

本文介紹了兩種jenkins的部署方式,其中基于k8s的部署方式是重點(diǎn),后續(xù)的jenkins的實(shí)踐也是基于在k8s上展開的。

總結(jié)

以上是生活随笔為你收集整理的【Jenkins】Jenkins在CentOS和k8s(minikube)上的部署记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

91亚洲综合 | 日本特黄一级 | 四虎在线观看视频 | 国产精品成人a免费观看 | 天天射天天干 | 精品欧美一区二区三区久久久 | 色综合天天综合 | 蜜臀av在线一区二区三区 | 日韩欧美精品在线视频 | 波多野结衣在线播放一区 | 免费高清在线一区 | 亚洲在线视频观看 | 久久综合色天天久久综合图片 | 亚洲午夜在线视频 | 国产麻豆剧果冻传媒视频播放量 | 日本黄色黄网站 | 一区二区三区免费在线观看视频 | 久久五月情影视 | 天天干天天干天天操 | 中文字幕欧美激情 | 亚洲伦理一区二区 | 96国产精品视频 | 99久久日韩精品免费热麻豆美女 | 欧美另类网站 | 久久久91精品国产一区二区三区 | 一区二区三区免费在线观看视频 | 91免费版成人 | 免费国产在线精品 | 精品国产伦一区二区三区观看说明 | 外国av网 | 欧美一二三区播放 | 国产亚洲视频中文字幕视频 | 天天干天天天 | 日韩在线色视频 | 国产精品久久久久久超碰 | 欧美色图视频一区 | 天天av综合网 | 欧美在线观看视频一区二区三区 | 欧美成人精品欧美一级乱黄 | 欧美一区二区在线刺激视频 | 成人蜜桃网 | 麻豆视频国产在线观看 | 亚洲四虎在线 | 麻豆精品传媒视频 | 国产精品99蜜臀久久不卡二区 | 久久99久久99精品中文字幕 | 亚洲另类在线视频 | 精品国产伦一区二区三区免费 | 综合久久一本 | 五月天高清欧美mv | 日本不卡一区二区 | 99精品视频免费看 | 好看av在线 | 国产99久久久国产精品免费看 | 天天躁天天操 | 91视频高清 | 激情五月av| 国产精品永久在线观看 | 中文字幕成人av | 国产精品久久久久久久久久久久午夜 | 久久免费99 | 精品久久久久久亚洲综合网站 | 中文字幕在线观看视频免费 | www..com毛片 | 99精品视频免费看 | 久久99网站| 久久免费国产精品 | 午夜影院三级 | 在线观看av国产 | 国产精品都在这里 | 美女视频黄色免费 | 国产高清在线不卡 | 91看国产| 在线精品亚洲 | 久久国产成人午夜av影院潦草 | 国产精品视频在线看 | 午夜精品久久久久久久久久久久 | 日韩精品中字 | 亚洲欧美日韩精品久久久 | 免费看片网页 | 精品国产日本 | 国产成人性色生活片 | 成人精品视频 | 久草精品视频 | 午夜精品久久久久久 | 国偷自产视频一区二区久 | 一级片色播影院 | 999成人| 亚洲开心色 | www蜜桃视频 | 久久日韩精品 | 成人啪啪18免费游戏链接 | 男女激情麻豆 | 友田真希x88av | 亚洲作爱视频 | 最近久乱中文字幕 | 黄色资源在线 | 在线播放视频一区 | 国产乱码精品一区二区蜜臀 | 一区二区三区日韩视频在线观看 | 国产香蕉视频在线观看 | 久久精品伊人 | 国产.精品.日韩.另类.中文.在线.播放 | 欧产日产国产69 | 国产精品福利视频 | 亚洲毛片一区二区三区 | 91九色成人蝌蚪首页 | 精品久久久成人 | 国产精品久久久久毛片大屁完整版 | 伊人夜夜| 欧美日韩不卡一区二区三区 | 亚洲精品久久久久中文字幕m男 | 国际精品网 | 天天射天天操天天色 | 国产精品乱码久久久久久1区2区 | 夜夜爱av| 国产美女免费视频 | 婷婷av电影| 丰满少妇一级 | 久久久久综合网 | 亚洲成人999 | 国产精品精品国产 | 欧美性一级观看 | 偷拍福利视频一区二区三区 | 国产精品免费久久 | 又黄又爽又无遮挡的视频 | 开心综合网 | 日本夜夜草视频网站 | 亚洲专区在线播放 | 亚洲免费不卡 | 免费精品在线观看 | 91成人免费观看视频 | 午夜视频在线观看欧美 | 手机在线免费av | 狠日日| 色婷婷狠狠五月综合天色拍 | av在线播放观看 | 免费黄色激情视频 | 中文字幕电影一区 | 91香蕉国产 | 91看片淫黄大片91 | 国产色久 | 精品在线免费观看 | 日本久久免费视频 | 日韩性色 | 国产精品一区二区精品视频免费看 | 91福利专区| 福利av在线 | 国产高清日韩 | 女人18毛片a级毛片一区二区 | 日韩精品一区二区三区在线播放 | 久久99这里只有精品 | 国产一级片免费观看 | 日本爱爱片 | 视频一区二区视频 | 四虎在线免费观看视频 | 成人av影视在线 | 色网站国产精品 | 欧美在线你懂的 | 亚洲精品乱码久久 | 九色自拍视频 | 久久精品国产亚洲精品 | 久久免费精品视频 | 黄色com| 免费视频网 | 亚洲精品男人天堂 | 久久不射电影院 | 久久精品国产成人 | 久久99精品国产 | 免费在线观看av的网站 | 免费亚洲视频在线观看 | 五月天六月色 | 中文字幕欧美日韩va免费视频 | 美女黄频在线观看 | 激情伊人五月天 | 精久久久久 | 最近能播放的中文字幕 | 黄免费网站| 久久久人人爽 | 婷婷去俺也去六月色 | 深爱婷婷久久综合 | 中文字幕麻豆 | 黄色免费网站下载 | 99久久久久成人国产免费 | 久久久久久久免费 | 久久99国产精品久久 | 91av视频网| 福利一区二区在线 | 亚洲国产97在线精品一区 | 国产伦精品一区二区三区… | 国产在线视频资源 | 超碰免费97 | 91在线在线观看 | av超碰在线观看 | 欧美乱码精品一区 | 日韩在线色视频 | 日日爱av| 成年人在线观看免费视频 | 三级a视频 | 国产九九精品视频 | 久久免费一 | 亚洲最新精品 | 免费观看www小视频的软件 | 最新91在线视频 | 国产露脸91国语对白 | 国产精品少妇 | 一区二区三区在线视频111 | 黄色毛片电影 | av中文字幕在线电影 | 在线成人看片 | 亚洲成人av电影在线 | 91精品国产综合久久福利 | av色综合网 | 成年人免费av网站 | 国产精品久久久久久久久久久久午 | 中文字幕在线观看完整 | 精品国产免费观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 99久久婷婷 | 欧美成年网站 | 久久男女视频 | 婷婷久久五月 | 日韩黄色在线观看 | 免费看成年人 | 91视频91自拍 | 国产 日韩 欧美 在线 | 一区av在线播放 | 91少妇精拍在线播放 | 91久久精品一区二区三区 | 精品综合久久久 | 黄色不卡av | 在线视频观看你懂的 | 久久国产网站 | 99视频精品在线 | 亚洲乱码久久久 | 在线观看的a站 | 日日干天天干 | 在线成人免费电影 | 在线观看免费黄色 | 97视频网址| 免费在线一区二区 | 日韩欧美大片免费观看 | 色wwww| 91黄色免费网站 | 国产91精品一区二区绿帽 | 国产午夜精品一区二区三区四区 | 精品国产乱码久久 | 日韩电影精品 | 黄色成人在线 | 天天做天天射 | 免费观看丰满少妇做爰 | 人人看人人做人人澡 | 亚洲伦理一区 | 国产黄色在线 | 国产一在线精品一区在线观看 | 亚洲三级在线 | 久久久久国产精品一区 | 91麻豆免费看 | 日韩高清免费在线观看 | 亚洲国产精品电影 | 操操操人人 | 日韩城人在线 | 青青河边草免费直播 | 2019中文最近的2019中文在线 | 精品国产亚洲在线 | 色哟哟国产精品 | 成年人国产精品 | 中文在线免费看视频 | 国产精品久久久久毛片大屁完整版 | 国产精品高潮呻吟久久av无 | 91视视频在线直接观看在线看网页在线看 | 中文资源在线播放 | 国产另类xxxxhd高清 | 国产精品日韩 | a国产精品 | 九九爱免费视频在线观看 | 亚洲视频免费在线观看 | 欧美日韩国产二区三区 | 欧美一级日韩三级 | 黄色三级免费片 | 一本一道久久a久久精品 | 欧美午夜久久 | 日本久久91 | 狠狠的操 | 黄色com| www.国产在线视频 | 免费av影视 | 青青河边草免费观看 | 精品亚洲国产视频 | 久99久精品 | 99热精品久久| 亚洲第一成网站 | 91成人在线观看喷潮 | 五月天综合色 | 天天天干天天天操 | 日本在线观看一区二区 | 午夜精品久久久久久久99水蜜桃 | 操操色| 青青草国产成人99久久 | 成人精品电影 | 久久久久久99精品 | 国产一区在线免费 | 美女网站黄在线观看 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 中文字幕在线观看一区二区三区 | 天天插夜夜操 | 国产精品一区二区电影 | 天堂黄色片 | 久久久精品视频网站 | 精品国产亚洲日本 | 日日干美女 | 综合色爱| 五月婷婷六月丁香 | 国产午夜精品一区二区三区嫩草 | 激情视频在线观看网址 | 亚洲开心激情 | 成人小视频在线观看免费 | 91激情视频在线观看 | 日本女人的性生活视频 | 亚洲国产资源 | 狠狠色噜噜狠狠狠合久 | 狠狠狠色狠狠色综合 | 一区二区三区动漫 | 999视频网站 | 夜夜骑日日操 | 色婷婷久久久 | 日韩欧美在线一区 | 国产精品久久嫩一区二区免费 | 香蕉久草 | 这里只有精品视频在线观看 | 91福利视频免费观看 | 97精品国产97久久久久久久久久久久 | 婷婷色中文网 | 中文字幕字幕中文 | 久久久久国产精品www | 五月天视频网站 | 国产精品video爽爽爽爽 | 91精品国产92久久久久 | 色婷婷欧美 | 精品一二三区 | 国内精品福利视频 | 在线精品视频免费播放 | av专区在线 | 麻豆久久久久 | 亚洲国产日韩一区 | 丁香色综合 | 欧女人精69xxxxxx | 婷婷伊人综合 | 一区二区视频在线播放 | 五月在线视频 | 中文字幕免费久久 | 久久综合久久久久88 | 色噜噜日韩精品一区二区三区视频 | www免费 | 国产高清一区二区 | 波多野结衣精品在线 | 久福利| 亚洲片在线观看 | 91精品国产自产91精品 | 97精品视频在线 | 免费看一级特黄a大片 | 天天干.com| 人人舔人人射 | 国产成人精品av | 婷婷色吧 | 亚洲va在线va天堂va偷拍 | a电影在线观看 | 91精品一区二区在线观看 | 国产成人a亚洲精品 | 欧美日韩中文国产一区发布 | 精品欧美日韩 | 中文字幕丝袜一区二区 | 午夜精品久久久久久久久久久久久久 | 国产青春久久久国产毛片 | 色综合久久综合中文综合网 | 伊人色**天天综合婷婷 | 日韩素人在线观看 | 久久久精品欧美一区二区免费 | 黄色大片入口 | 日韩欧美一区二区三区在线观看 | av三级在线免费观看 | 久久久麻豆精品一区二区 | 手机av在线不卡 | 久久免费av | 成人av片免费观看app下载 | 亚洲精品乱码久久久久久蜜桃91 | 中文字幕精品一区久久久久 | 国产精品日韩久久久久 | 99精品欧美一区二区蜜桃免费 | 久久精品美女视频网站 | 午夜电影av | 91精品黄色 | 在线观看黄色大片 | 91在线91 | 亚洲乱码中文字幕综合 | 亚洲砖区区免费 | 亚州国产精品 | 日本中文字幕在线视频 | 成人av在线电影 | 在线观看一区二区精品 | 中文字幕制服丝袜av久久 | 婷婷丁香激情综合 | 天堂在线视频免费观看 | 免费在线播放 | 午夜少妇一区二区三区 | 超碰97在线资源站 | 亚洲涩涩涩| 99热官网 | 亚洲手机天堂 | 日韩精品专区在线影院重磅 | 日韩视频一区二区三区在线播放免费观看 | 高清免费在线视频 | 久久99精品久久久久蜜臀 | 国产一区视频免费在线观看 | 国产精品系列在线播放 | 97超碰免费 | 日韩av播放在线 | 九九九九精品 | 亚洲精品午夜一区人人爽 | 亚洲国产69| 国内精品久久久久久久久久久 | 久久xx视频 | 国产精品一区免费观看 | 亚洲第一av在线 | 日韩美女一级片 | 又黄又爽的视频在线观看网站 | 极品美女被弄高潮视频网站 | 久久国产精品精品国产色婷婷 | 午夜精品视频在线 | 国产69精品久久久久久久久久 | 国产精品完整版 | wwwww.国产 | 丁香伊人网 | 欧美日韩一区二区视频在线观看 | 成人午夜电影在线播放 | 国产精品免费在线观看视频 | 国产成人精品一区二 | 在线观看中文字幕2021 | 深夜国产在线 | 欧美人人爱 | 四虎影视国产精品免费久久 | 久草在线视频免赞 | 久久久久久美女 | 日韩精品免费在线观看 | 色视频成人在线观看免 | 免费热情视频 | 一区二区三区在线影院 | 十八岁以下禁止观看的1000个网站 | 九九久久精品视频 | 99人久久精品视频最新地址 | 亚洲精品一区二区精华 | 2020天天干夜夜爽 | 国产亚洲精品久久久久久久久久 | 免费看的黄色小视频 | 99婷婷狠狠成为人免费视频 | 久青草视频在线观看 | 亚洲激情网站免费观看 | 精品久久久成人 | 99热只有精品在线观看 | 久久久福利视频 | 精品国产一区二区三区久久久久久 | 日韩电影一区二区在线观看 | 天堂网中文在线 | 色永久免费视频 | 日本久久久久久久久久 | 婷婷激情小说网 | 成人av影院在线观看 | 麻豆精品传媒视频 | 国产精品精品久久久 | 久久久99精品免费观看乱色 | 国产一级视频免费看 | 天天综合网久久 | 国产精品免费一区二区 | av.com在线 | 亚欧日韩av | 正在播放亚洲精品 | 色婷婷啪啪免费在线电影观看 | 亚洲一区尤物 | 亚洲国产精品99久久久久久久久 | 国产v视频 | 91人人爽久久涩噜噜噜 | 国产视频在线免费观看 | 黄色av电影网 | 久久久国产精品一区二区三区 | 亚洲 综合 国产 精品 | av电影在线观看 | 亚洲黄色一级电影 | 国产黄| .国产精品成人自产拍在线观看6 | 最近更新的中文字幕 | 中文字幕人成不卡一区 | 天天干 夜夜操 | 波多野结衣在线视频免费观看 | 天天操欧美 | 日日干视频 | jizz18欧美18| 日韩v在线91成人自拍 | 天天舔夜夜操 | 特黄特色特刺激视频免费播放 | 国产一级精品视频 | a级片在线播放 | 亚洲视频资源在线 | 亚洲精品av中文字幕在线在线 | 五月婷婷中文字幕 | 超级碰碰视频 | 成人一级片在线观看 | 在线观看免费一区 | 日韩资源在线 | 亚洲理论影院 | 日韩av图片 | 久久久天堂 | www.久久爱.cn | 国产精品成人自产拍在线观看 | 国产成人av免费在线观看 | 国产精品密入口果冻 | 日韩精品一区二区三区中文字幕 | 国产精品久久久久av免费 | 91中文字幕永久在线 | 国产一区二区久久久久 | www.亚洲精品在线 | 在线免费观看国产 | 国产区在线视频 | 精品国产成人在线影院 | www久久精品 | 天天操一操 | 人人添人人澡人人澡人人人爽 | 久久黄色小说视频 | 久久伊人免费视频 | 国模精品在线 | 一区二区三区电影 | 中文字幕在线播放第一页 | av福利在线看 | 国产精品视频永久免费播放 | 国产91免费观看 | 亚洲激情六月 | 久久夜av | 91爱爱电影 | 成人9ⅰ免费影视网站 | 精品国产日本 | 中文字幕 国产视频 | 亚洲欧美国产精品久久久久 | 日韩3区 | 国产亚洲精品精品精品 | 久久精品一级片 | 黄网站色欧美视频 | 五月婷婷黄色网 | av电影免费在线 | 欧美在线观看视频一区二区 | 91成人在线视频观看 | 伊人在线视频 | 精品不卡av | 免费观看xxxx9999片 | 日本久久电影网 | 亚州天堂 | 国产精品成人自产拍在线观看 | 成人a v视频 | 欧美另类xxx | 国产清纯在线 | 99视频在线精品国自产拍免费观看 | 69视频在线播放 | 最新日韩视频 | 久草在线资源网 | 亚洲最新视频在线 | 天天色天天骑天天射 | 人人精久 | 欧美激情视频在线免费观看 | 久久国产精品色婷婷 | 亚洲天堂自拍视频 | 国产精品久久久久四虎 | 在线观看亚洲视频 | 亚洲日本在线一区 | 亚洲精品视频免费在线观看 | av电影不卡在线 | 免费a级黄色毛片 | 在线观看视频你懂的 | 国产69精品久久99不卡的观看体验 | 日本精品一区二区三区在线播放视频 | 国产黄色成人 | 久久免费黄色网址 | 国产男女无遮挡猛进猛出在线观看 | 国产精品久久久久影院日本 | 国产亚洲欧美日韩高清 | 国产资源在线观看 | 中文字幕五区 | 婷婷av在线 | 在线成人看片 | 最新av电影网址 | 久久久久久久久久久久久国产精品 | 91自拍成人 | 黄色特一级 | 亚洲作爱视频 | 三上悠亚一区二区在线观看 | 成人毛片久久 | 韩国av在线| 午夜视频在线观看一区二区三区 | 国产一区视频在线观看免费 | 色中色综合 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 97碰碰视频 | 国产色婷婷在线 | 超碰在线个人 | 有码一区二区三区 | 中文字幕在线视频网站 | 久久 亚洲视频 | a级国产乱理论片在线观看 伊人宗合网 | 日韩国产精品一区 | 久草在线资源观看 | 亚洲天堂在线观看完整版 | 亚洲在线黄色 | 黄色片免费在线 | 婷婷久月 | 日韩一区二区免费播放 | 亚洲精品理论片 | 91久久国产综合精品女同国语 | 亚洲精品在线播放视频 | 99久久精品免费一区 | 色视频网站免费观看 | 精品久操| 亚洲免费av在线 | 夜夜夜草 | 成人免费共享视频 | 亚洲综合成人专区片 | 久久综合久久综合这里只有精品 | 久久免费在线观看视频 | www中文在线 | 日韩免费在线视频观看 | 欧美日韩一区二区免费在线观看 | 亚洲一区精品二人人爽久久 | 久久人网 | 西西大胆免费视频 | 国产第一页福利影院 | 亚洲欧洲国产视频 | 在线观看国产永久免费视频 | 91精品国产99久久久久久久 | 黄在线免费观看 | 免费看成人| 亚洲国产免费网站 | 国产一区成人在线 | 爱爱一区| 黄色三级免费观看 | jizzjizzjizz亚洲 | 国产精品中文字幕在线播放 | 久久激情电影 | 国产一区二区三区四区大秀 | 99久久精品国产网站 | 国产精品久久一区二区三区不卡 | 在线观看免费91 | 中文字幕日韩在线播放 | 欧美成a人片在线观看久 | 国产色拍| 日本婷婷色 | 亚洲h色精品 | 69视频永久免费观看 | 欧美一区二区视频97 | 国内外成人在线 | 黄色小说视频网站 | 午夜视频久久久 | 手机看片国产日韩 | 看av免费网站 | 视频一区二区免费 | 一区二区三区精品久久久 | 91福利免费| 国产视频在线看 | 国产精品黑丝在线观看 | 色吊丝在线永久观看最新版本 | 亚洲综合色视频在线观看 | 日韩黄色免费在线观看 | 日本久久成人中文字幕电影 | 免费观看完整版无人区 | 91久色蝌蚪 | 97日日碰人人模人人澡分享吧 | 久久99精品国产 | 精品日韩中文字幕 | 日韩va欧美va亚洲va久久 | 在线视频a | 在线欧美a | 99久久99久久精品 | 国产成人精品一区在线 | 人人玩人人弄 | 黄色亚洲片 | 日韩三级中文字幕 | 日韩欧美在线视频一区二区 | 一区中文字幕在线观看 | 欧美一级片在线观看视频 | 丁香五婷 | 天天综合色网 | 91九色porny在线 | 97超碰人人模人人人爽人人爱 | 久久国产乱 | 国色综合| 日韩天堂在线观看 | 色资源二区在线视频 | 精品国产免费一区二区三区五区 | 色婷婷国产 | 日韩三级视频在线观看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 欧美日韩视频在线播放 | 天堂久色 | 人人插人人射 | 亚洲综合成人婷婷小说 | 国产原创在线视频 | av三级在线播放 | 男女拍拍免费视频 | 欧美精品在线一区二区 | 亚洲精选在线 | 三级av免费| 波多野结衣一区二区三区中文字幕 | 日韩在线不卡视频 | 成人在线播放视频 | 天堂激情网 | 精品国内自产拍在线观看视频 | 亚洲精品伦理在线 | 久久久久久久久久久久久久免费看 | 亚洲成人免费在线 | 国产成人免费高清 | 一区二区三区四区五区六区 | 手机在线视频福利 | 91成人在线视频 | 欧美激情视频在线免费观看 | 欧美日韩国产精品一区二区 | 波多野结衣一区二区三区中文字幕 | av一二三区| 91传媒视频在线观看 | 超碰av在线| 国产97av| 粉嫩av一区二区三区四区在线观看 | 91精品国产一区二区三区 | 国产精品青草综合久久久久99 | 91精品久久久久久综合乱菊 | 美女黄频在线观看 | 青草视频在线播放 | 国产精品日韩在线 | 国产成人av在线影院 | 久久久久久久久影院 | 免费十分钟 | 干av在线 | 97超碰人人模人人人爽人人爱 | 欧美日韩精品国产 | 亚洲黄色免费在线看 | 国语精品久久 | 91人网站 | 国产在线2020 | 日韩视频在线观看视频 | 九九视频精品免费 | 91av视频播放| 99久久电影| 粉嫩一区二区三区粉嫩91 | 色99久久 | 91麻豆操 | 超碰在线免费福利 | 狠狠色丁香久久婷婷综合丁香 | 午夜精品麻豆 | 久久国产色 | 少妇bbbb揉bbbb日本 | 亚洲国产精品va在线看黑人 | 久久激情五月激情 | 中国一级特黄毛片大片久久 | 天堂网av 在线 | 黄色最新网址 | 99操视频 | 91探花在线视频 | 日韩三级中文字幕 | 久久国产精品一国产精品 | 免费在线观看av网站 | 免费在线观看国产黄 | 久艹视频在线观看 | 久久成人精品电影 | 亚洲欧美综合精品久久成人 | 在线黄色av | 00av视频 | 亚洲成人黄色在线 | 国产成人香蕉 | 99久久99久久精品国产片果冰 | 一区二区三区精品在线视频 | 黄色美女免费网站 | 激情五月婷婷综合网 | 欧美a√在线 | 久久你懂得 | 亚洲好视频 | 日韩精品一区二区三区在线播放 | 久久私人影院 | 狠狠狠狠狠狠狠干 | 一区二区三区在线视频观看58 | 日批视频在线观看免费 | 久久久久亚洲天堂 | 久久久久国产视频 | 国产精品综合在线 | 黄色大全免费网站 | 手机在线永久免费观看av片 | 国产黄色一级大片 | 欧洲成人av| 成人aⅴ视频 | 精品一区二区电影 | 婷婷国产在线 | 欧美一级久久 | 欧美激情综合五月色丁香 | 欧美日韩国产伦理 | 亚洲免费在线 | 精品国产123 | 国产精品99久久久久久大便 | 国产精品网站一区二区三区 | 欧美9999| 国产 精品 资源 | 精品视频在线播放 | 中文字幕之中文字幕 | 手机看片 | 成年在线观看 | 99精品视频网站 | 人人爽人人舔 | 亚洲精品一区二区三区在线观看 | 国产在线一卡 | 国产精品久久99精品毛片三a | 日韩欧美一区二区不卡 | 天天操天天操天天爽 | 精品国产免费看 | 日韩欧美精品在线观看视频 | 中国黄色一级大片 | 日韩精品一区二区三区丰满 | 国产精品永久免费视频 | 国产精品女主播一区二区三区 | av高清网站在线观看 | 久久99久久99精品免观看粉嫩 | 日韩在线观看中文 | 三级av网站 | 日韩在线中文字幕视频 | 久热免费在线观看 | 中文字幕在线视频国产 | 亚洲理论电影 | 日韩精品1区2区 | 久99久视频| 日批在线观看 | 香蕉97视频观看在线观看 | 国产视频在线看 | 一区免费视频 | 欧美狠狠色 | 久久av免费观看 | 久草在线 | 手机在线视频福利 | av怡红院 | 91精品国产乱码 | 国产一性一爱一乱一交 | 日本黄色免费电影网站 | 人人看人人草 | 九九欧美视频 | 伊人色播 | 国产三级午夜理伦三级 | av品善网 | 国产毛片久久久 | 久久污视频| 国产美女视频免费 | 日韩一区二区三区不卡 | 这里只有精品视频在线观看 | 久久午夜色播影院免费高清 | 日韩视频中文字幕 | 在线观看福利网站 | 日韩欧美在线综合网 | www欧美xxxx | 欧美一级性生活 | 久久久精品国产免费观看一区二区 | 久久国产99 | 国产视频久久久久 | www99久久| 国产又粗又猛又色又黄视频 | 天天操网址 | 波多野结衣视频一区 | 91视频免费观看 | 国内精品久久久久久 | 999久久国精品免费观看网站 | 手机成人av在线 | 天天干天天弄 | 精品在线观看一区二区三区 | 午夜精品久久久久久久爽 | 亚洲黄色成人 | 伊人影院得得 | 国产专区在线 | 日本中文字幕系列 | 亚州av网站大全 | 91夫妻视频 | 九九视频一区 | 一区二区三区在线免费观看 | 国产黄色片久久 | 韩国三级av在线 | 欧美999| 精品亚洲va在线va天堂资源站 | 三级黄色片在线观看 | 亚洲人成在线电影 | 999色视频| 国产一区二区三区高清播放 | 91看片成人| 成 人 黄 色 视频 免费观看 | 国产黄色片免费看 | 亚洲九九爱| 三级黄色免费 | 亚洲精品综合在线观看 | 极品美女被弄高潮视频网站 | 五月天开心 | 正在播放亚洲精品 | 亚洲精品一区二区网址 | 国产无遮挡又黄又爽在线观看 | 国产一区免费在线 | 国产精品白虎 | 国产精品每日更新 | 国产91全国探花系列在线播放 | 在线观看视频在线 | 久久婷婷一区二区三区 | 99视频在线免费观看 | 中文字幕三区 | 黄网站大全 | 国产特级毛片aaaaaa高清 | 亚洲精品五月 | 久久a v电影 | 欧美国产日韩一区二区三区 | 国产精品99在线播放 | 18久久久| 亚洲影院色 | 亚洲一区二区视频在线 | 成人av影视在线 | 91av在线电影 | 黄色av成人在线观看 | 九九在线视频免费观看 | 亚洲综合视频在线观看 | 在线精品观看国产 | 欧美 高跟鞋交 xxxxhd | 黄色毛片视频免费观看中文 | 日韩在线第一 | 黄色免费国产 | 成年人在线免费看视频 | av免费网站观看 | 少妇自拍av| 人人爱人人爽 | 天天干夜夜爽 | 久久免费福利 | 黄色免费网站大全 | 在线看一区二区 | 国产精品女人久久久 | 黄色aa久久 | 中文字幕免费一区二区 | 国产高清日韩欧美 | 成 人 黄 色 视频 免费观看 | 欧美日韩一区二区视频在线观看 | 欧美日韩亚洲国产一区 | 久久电影中文字幕视频 | 97高清免费视频 | 国产一区二区在线视频观看 | 一区二区三区在线不卡 | 亚洲久草在线视频 | 美州a亚洲一视本频v色道 | 午夜999 | 96av在线视频| 在线影院av | 色就是色综合 | 久久精彩免费视频 | 国产成人久久精品 | 成人av网站在线播放 | 一区二区精品在线 | 国产美女无遮挡永久免费 | 9在线观看免费高清完整 | www黄色软件| 日韩av在线网站 | 久久综合九色欧美综合狠狠 | 亚洲永久精品视频 | 精品国产精品一区二区夜夜嗨 | 天天se天天cao天天干 | 免费观看v片在线观看 | 日韩欧美国产激情在线播放 | 国产精品视频在线看 | 欧美成人一二区 | 天天在线视频色 | av播放在线 | 国产精品 中文字幕 亚洲 欧美 | 国产午夜精品理论片在线 | 日日弄天天弄美女bbbb | 蜜臀aⅴ国产精品久久久国产 | 人人爽人人片 | 成年人天堂com| 免费能看的黄色片 | 欧美精品三级在线观看 | 久久99最新地址 | 亚洲视频精品 | 日韩精品视频在线观看免费 | 久久久久久国产精品久久 | 亚洲一区二区精品3399 | 欧美精品久久久久久久久久丰满 | 99人久久精品视频最新地址 | 欧美日韩裸体免费视频 | 99九九热只有国产精品 | 国产精品一二 | 精品免费久久久久 | 人人爽人人爽人人片 | 久久久精品电影 | 狠狠色丁香婷婷综合久小说久 | a天堂最新版中文在线地址 久久99久久精品国产 | 久久伊人操 | 九九热中文字幕 | 国产资源网 | 亚洲精品高清一区二区三区四区 | 国产日韩在线看 | 欧美成人影音 |