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

Kubernetes 中模板化的正確方式 - Kustomize

開發 開發工具
Kustomize 不是一個新工具,它自 2017 年以來一直在建設中,并在 1.14 版本中作為原生 kubectl 子命令引入。是的,你沒聽錯,它現在直接嵌入到你日常使用的工具中,所以你可以扔掉 Helm 命令。

我們總是需要使用 Kubernetes 自定義我們的部署,我不知道為什么,但現在主要的工具是 HELM,它拋棄了我們在 docker 和 Kubernetes 上學到的所有邏輯。在這里給大家介紹一個替代品,叫做 Kustomize。

Kustomize 不是一個新工具,它自 2017 年以來一直在建設中,并在 1.14 版本中作為原生 kubectl 子命令引入。是的,你沒聽錯,它現在直接嵌入到你日常使用的工具中,所以你可以扔掉 helm 命令。

哲學

當使用 Git 作為 VCS、創建 Docker 鏡像或在 Kubernetes 中聲明資源時,Kustomize 試圖遵循你在日常工作中使用的理念。

所以,首先,Kustomize 就像 Kubernetes,它是完全聲明式的!你說你想要什么,系統就會提供給你,你不必遵循命令式的方式并描述希望它如何構建事物。

其次,它像 Docker 一樣工作。你有很多層,每一層都在修改之前的層。多虧了這一點,你可以不斷地寫出高于他人的東西,而不會在你的配置中增加復雜性。構建的結果將是添加基礎和你在其上應用的不同層。

最后,與 Git 一樣,你可以使用遠程庫作為你工作的開始,并在其上添加一些定制。

使用

基礎

要開始使用 Kustomize,你需要有原始的 yaml 文件來描述你要部署到集群中的任何資源。我們這里的示例將這些文件將存儲在文件夾 ./k8s/base/ 中。

這些文件將永遠不會被修改,我們將在它們上面應用自定義來創建新的資源定義。

注意:你可以隨時使用命令 kubectl apply -f ./k8s/base/ 構建基礎模板(例如,用于開發環境)。 在此示例中,我們將使用一個 Service 和一個 Deployment 資源:

apiVersion: v1
kind: Service
metadata:
name: sl-demo-app
spec:
ports:
- name: http
port: 8080
selector:
app: sl-demo-app
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
selector:
matchLabels:
app: sl-demo-app
template:
metadata:
labels:
app: sl-demo-app
spec:
containers:
- name: app
image: foo/bar:latest
ports:
- name: http
containerPort: 8080
protocol: TCP

我們將在該文件夾中添加一個名為 kustomization.yaml 的新文件:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- service.yaml
- deployment.yaml

該文件將是你核心文件,它描述了你使用的資源,這些資源文件是相對于當前文件的路徑。

注意:這個 kustomization.yaml 文件在運行 kubectl apply -f ./k8s/base/ 時可能會導致錯誤,你可以使用參數 --validate=false 運行它,或者干脆不對整個文件夾運行命令。

要將該 base 基礎模板應用到集群,你只需執行以下命令:

$ kubectl apply -k k8s/base

但是這樣會直接將我們的模板應用到集群中,有時候我們可能希望將模板渲染出來看下結果是否正確,這個時候我們可以去直接使用 kustomize 的命令 kustomize build 來實現,所以我們需要單獨安裝下 kustomize,對于 Mac 用戶可以直接使用 brew 命令一鍵安裝,其他系統可以直接前往 Release 頁面下載二進制文件,然后放入 PATH 路徑即可。

$ brew install kustomize

要查看將在你的集群中應用了什么,我們將在本文中主要使用命令 kustomize build 而不是 kubectl apply -k。

kustomize build k8s/base 命令的結果如下,會直接將兩個文件連接在一起:

$ kustomize build k8s/base
apiVersion: v1
kind: Service
metadata:
name: sl-demo-app
spec:
ports:
- name: http
port: 8080
selector:
app: sl-demo-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
selector:
matchLabels:
app: sl-demo-app
template:
metadata:
labels:
app: sl-demo-app
spec:
containers:
- image: foo/bar:latest
name: app
ports:
- containerPort: 8080
name: http
protocol: TCP

定制

現在,我們想要針對特定  場景來定制我們的應用程序,例如,針對我們的生產環境,接下來我們將看到如何通過一些修改來增強我們的基礎。本文的主要目標不是涵蓋 Kustomize 的全部功能,而是作為一個標準示例向你展示此工具背后的理念。

首先,我們將創建文件夾 k8s/overlays/prod,其中包含一個 kustomization.yaml 文件,包含以下內容:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

bases:
- ../../base

如果我們構建它,我們將看到與之前構建 base 時相同的結果。

$ kustomize build k8s/overlays/prod

為 Deployment 定義環境變量

在 base 中,我們沒有定義任何環境變量,現在我們將添加 env 變量到 base 中去,要做到這一點,非常簡單,我們只需要創建我們想要在 base 之上應用的 yaml 塊,并在 kustomization.yaml 中引用它。

custom-env.yaml 包含的環境變量如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
template:
spec:
containers:
- name: app # (1)
env:
- name: CUSTOM_ENV_VARIABLE
value: Value defined by Kustomize ??

注意:這里的 name (1) 非常重要,可以讓 Kustomize 找到需要修改的正確容器。

你可以看到這個 yaml 文件本身是無效的,但它只描述了我們想在之前的 base 上添加的內容。

我們只需將此文件添加到 k8s/overlays/prod/kustomization.yaml 中的 patches 屬性下面即可:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- ../../base

patches:
- path: custom-env.yaml

如果現在我們來構建,將會得到下面的結果:

$ kustomize build k8s/overlays/prod
apiVersion: v1
kind: Service
metadata:
name: sl-demo-app
spec:
ports:
- name: http
port: 8080
selector:
app: sl-demo-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
selector:
matchLabels:
app: sl-demo-app
template:
metadata:
labels:
app: sl-demo-app
spec:
containers:
- env:
- name: CUSTOM_ENV_VARIABLE
value: Value defined by Kustomize ??
image: foo/bar:latest
name: app
ports:
- containerPort: 8080
name: http
protocol: TCP

可以看到我們上面定義的 env 塊已應用在我們的 base 之上了,現在 CUSTOM_ENV_VARIABLE 將出現在我們的 deployment.yaml 中。

patches 屬性中可以直接指定一個 yaml 文件,也可以直接在該屬性這里修改資源,補丁可以包括容器鏡像、端口、環境變量等。比如可以在 kustomization.yaml 文件中添加以下內容:

patches:
- target:
kind: Deployment
name: sl-demo-app
patch: |-
- op: replace
path: /spec/template/spec/containers/0/image
value: my-image:latest

上述內容將基礎資源中名為 sl-demo-app 的 Deployment 的容器鏡像修改為 my-image:latest。

更改副本數量

接下來我們想添加有關副本數量的信息,像之前一樣,僅包含定義副本所需的額外信息的塊或 yaml 就足夠了:

# replica-and-rollout-strategy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
replicas: 10
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate

和以前一樣,我們將它添加到 kustomization.yaml 中的 patches 列表中:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- ../../base

patches:
- path: custom-env.yaml
- path: replica-and-rollout-strategy.yaml

同樣執行命令 kustomize build k8s/overlays/prod 后會得到如下結果:

$ kustomize build k8s/overlays/prod
apiVersion: v1
kind: Service
metadata:
name: sl-demo-app
spec:
ports:
- name: http
port: 8080
selector:
app: sl-demo-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
replicas: 10
selector:
matchLabels:
app: sl-demo-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: sl-demo-app
spec:
containers:
- env:
- name: CUSTOM_ENV_VARIABLE
value: Value defined by Kustomize ??
image: foo/bar:latest
name: app
ports:
- containerPort: 8080
name: http
protocol: TCP

可以看到副本數和 rollingUpdate 策略已經應用在 base 之上了。

通過命令行使用 Secret 定義

我們經常會從命令行將一些變量設置為 Secret 數據,這里我們使用 kustomize 的一個子命令來編輯 kustomization.yaml 并為創建一個 Secret,如下所示:

$ cd k8s/overlays/prod
$ kustomize edit add secret sl-demo-app --from-literal=db-password=12345

上面的命令會修改 kustomization.yaml 文件并在其中添加一個 SecretGenerator,內容如下所示:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- ../../base

patches:
- path: custom-env.yaml
- path: replica-and-rollout-strategy.yaml
secretGenerator:
- literals:
- db-password=12345
name: sl-demo-app
type: Opaque

同樣如果從示例項目的根文件夾運行 kustomize build k8s/overlays/prod 命令將獲得以下輸出。

apiVersion: v1
data:
db-password: MTIzNDU=
kind: Secret
metadata:
name: sl-demo-app-gkmm8tkdd7
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
name: sl-demo-app
spec:
ports:
- name: http
port: 8080
selector:
app: sl-demo-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
replicas: 10
selector:
matchLabels:
app: sl-demo-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: sl-demo-app
spec:
containers:
- env:
- name: CUSTOM_ENV_VARIABLE
value: Value defined by Kustomize ??
image: foo/bar:latest
name: app
ports:
- containerPort: 8080
name: http
protocol: TCP

注意上面生成的 Secret 對象名稱是 sl-demo-app-gkmm8tkdd7 而不是 sl-demo-app,這是正常的,如果 Secret 內容發生變化,就可以觸發 Deployment 的滾動更新。

如果想在我們的 Deployment 中使用這個 Secret,我們只需要像以前一樣添加一個使用 Secret 的新層定義即可。比如我們將 db-password 值以環境變量的方式注入 pod,則可以聲明如下的層文件:

# database-secret.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
template:
spec:
containers:
- name: app
env:
- name: "DB_PASSWORD"
valueFrom:
secretKeyRef:
name: sl-demo-app
key: db.password

然后在 kustomization.yaml 文件 pathes 中添加上面的層文件:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- ../../base

patches:
- path: custom-env.yaml
- path: replica-and-rollout-strategy.yaml
- path: database-secret.yaml

secretGenerator:
- literals:
- db-password=12345
name: sl-demo-app
type: Opaque

構建后可以得到如下的結果:

$ kustomize build k8s/overlays/prod
apiVersion: v1
data:
db-password: MTIzNDU=
kind: Secret
metadata:
name: sl-demo-app-gkmm8tkdd7
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
name: sl-demo-app
spec:
ports:
- name: http
port: 8080
selector:
app: sl-demo-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sl-demo-app
spec:
replicas: 10
selector:
matchLabels:
app: sl-demo-app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: sl-demo-app
spec:
containers:
- env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
key: db.password
name: sl-demo-app-gkmm8tkdd7
- name: CUSTOM_ENV_VARIABLE
value: Value defined by Kustomize ??
image: foo/bar:latest
name: app
ports:
- containerPort: 8080
name: http
protocol: TCP

可以看到 Deployment 中新增了 DB_PASSWORD 這部分內容,使用的 secretKeyRef.name 名稱則為 Secret 的名稱。

更改鏡像

與 Secret 一樣,有一個自定義指令允許直接從命令行更改鏡像或標簽,如果你是通過 CI/CD 來發布應用這將非常有用,如下所示:

$ cd k8s/overlays/prod
$ TAG_VERSION=3.4.5 # (1)
$ kustomize edit set image foo/bar=foo/bar:$TAG_VERSION

這里的 TAG_VERSION 通常是我們的 CI/CD 系統來定義的,上面的命令執行后,kustomization.yaml 文件中會新增一個 images 的屬性,里面包括 newName 和 newTag 兩個屬性:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- ../../base

patches:
- path: custom-env.yaml
- path: replica-and-rollout-strategy.yaml
- path: database-secret.yaml

secretGenerator:
- literals:
- db-password=12345
name: sl-demo-app
type: Opaque
images:
- name: foo/bar
newName: foo/bar
newTag: 3.4.5

同樣執行 build 命令后得到的 Deployment 中的 image 就是 foo/bar:3.4.5。

總結

通過上面的這些簡單示例我們可以了解如何利用 Kustomize 的強大功能來定義 Kubernetes 資源文件,甚至無需使用模板系統。我們所做的所有修改文件都將應用在原始文件之上,而無需使用花括號和命令式修改對其進行更改。

Kustomize 中還有很多高級用法,例如 mixins 和繼承邏輯或其他允許為每個創建的對象定義名稱、標簽或命名空間的指令,我們后續再來介紹。

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

2024-01-29 01:15:11

HelmKubernetesKustomize

2020-11-05 11:00:21

KubernetesKustomize開源

2024-08-07 10:14:35

2023-08-23 19:11:01

Kubernetes系統云原生

2024-04-09 08:04:42

C#結構await

2022-11-24 09:55:12

Kubernetes監控

2017-08-02 10:43:39

深度學習TensorFlowRNN

2010-02-26 14:05:57

WCF通信方式

2015-08-25 09:38:46

IDC環境建設環境

2018-04-12 08:37:27

2009-11-26 11:25:08

PHP引號

2019-12-12 10:46:15

Kubernetes容器系統

2018-07-11 15:32:57

KubernetesDNS方式

2025-04-17 09:09:29

2020-01-18 09:44:35

無服務器Kubernetes云服務

2017-07-05 18:27:27

開發編程程序員

2010-06-13 15:10:49

MySQL loadd

2010-09-02 16:28:03

SQL刪除

2010-07-05 15:12:30

SQL Server主

2024-09-02 08:17:18

點贊
收藏

51CTO技術棧公眾號

国产成人亚洲精品无码h在线| 91传媒在线免费观看| 成年人免费观看视频网站| 一区二区视频免费完整版观看| 中文字幕乱码久久午夜不卡| 91精品天堂| 精品人妻一区二区三区免费看| 日韩理论电影| 亚洲精品一区二区三区99| 日本在线视频www| 怡红院红怡院欧美aⅴ怡春院| 成人高清视频在线| 国产精品自拍视频| 成人免费区一区二区三区| 日韩精品一区二区三区免费观看| 精品国产一区二区三区四区四 | 亚洲av成人片无码| 国产私拍福利精品视频二区| 亚洲综合色网站| 午夜精品一区二区在线观看的| 亚洲爆乳无码一区二区三区| 日韩av电影天堂| 久久久亚洲国产天美传媒修理工| 亚洲色图 激情小说| 久久精品色播| 欧美电影免费观看完整版 | 国产伦精品一区二区三区免费迷| 日韩av免费在线播放| 免费在线视频观看| 色喇叭免费久久综合网| 亚洲免费人成在线视频观看| 国产乱淫av麻豆国产免费| yy6080久久伦理一区二区| 午夜欧美大尺度福利影院在线看| 中文字幕超清在线免费观看| 成人高清免费在线播放| 97se狠狠狠综合亚洲狠狠| 99精彩视频| 国产乱色精品成人免费视频| 免费的成人av| 国产精品久久久久久久app| 在线观看国产亚洲| 亚洲激情专区| 欧美精品电影在线| 国产精品老熟女一区二区| 色琪琪久久se色| 中文国产成人精品久久一| 手机免费看av| 精品久久精品| 国产一区二区三区直播精品电影 | 欧美激情中文字幕| 欧美一区免费视频| 精品视频一二三| 久久久午夜精品| 日本视频一区二区不卡| 蜜桃免费在线| 国产日韩欧美一区二区三区综合| 秋霞久久久久久一区二区| 人成免费电影一二三区在线观看| 99精品视频在线观看| 国产精品一级久久久| 内射后入在线观看一区| 菠萝蜜视频在线观看一区| 国产欧美在线一区二区| 五月婷婷丁香六月| 久久综合色鬼综合色| 欧美日韩电影一区二区三区| 黄色的视频在线免费观看| 国产三级欧美三级日产三级99| 日本精品一区二区| 免费不卡视频| 亚洲最新视频在线播放| 国产精品又粗又长| www.com.cn成人| 欧美亚洲高清一区二区三区不卡| 自拍偷拍一区二区三区四区| 成人影院网站ww555久久精品| 日韩午夜激情免费电影| 五月天激情小说| 九九视频免费观看视频精品| 一本色道久久88精品综合| 成人免费精品动漫网站| 亚洲精品女人| 国产精品久久中文| www.久久久久久| 99精品久久免费看蜜臀剧情介绍| 青青草原成人| 中文字幕中文字幕在线十八区 | 国产 欧美 日韩 一区| av资源新版天堂在线| 色av成人天堂桃色av| 999久久久精品视频| 久久男人av| 中文字幕国内精品| 欧美激情一区二区视频| 国产日韩免费| 91色视频在线观看| 四虎在线视频| 中文字幕亚洲电影| 人人干视频在线| 欧美性生活一级| 亚洲国产私拍精品国模在线观看| 337人体粉嫩噜噜噜| 国产精品v欧美精品v日本精品动漫| 国产91精品高潮白浆喷水| 亚洲最大成人在线视频| av中文字幕在线不卡| youjizz.com亚洲| 竹内纱里奈兽皇系列在线观看| 欧美日韩极品在线观看一区| 久久一区二区电影| 外国成人激情视频| 国产精品6699| 天天操天天干天天爱| 综合久久久久综合| 波多野结衣作品集| 国产精品极品在线观看| 日韩中文字幕在线播放| 久久精品无码av| 国产成人精品一区二区三区四区| 亚洲精品乱码久久久久久蜜桃91| av福利在线导航| 91精品国产色综合久久ai换脸| 精品国产av无码| 伊人久久大香线蕉综合热线| 国产精品无av码在线观看| 日韩av免费观影| 亚洲成人免费av| 波多野结衣免费观看| 精品一区二区三区在线| 97超级碰在线看视频免费在线看| 97超视频在线观看| 欧美国产精品一区二区三区| 99热成人精品热久久66| 婷婷成人综合| 97在线视频一区| 色wwwwww| 亚洲国产另类av| 熟妇女人妻丰满少妇中文字幕| 日韩理论电影| 国产欧美久久久久久| porn视频在线观看| 色猫猫国产区一区二在线视频| 捆绑凌虐一区二区三区| 亚洲精选久久| 久久久福利视频| 午夜伦理福利在线| 精品剧情在线观看| 久久久久国产精品夜夜夜夜夜| 国产原创一区二区三区| 91麻豆天美传媒在线| 国产精品777777在线播放| 中文国产成人精品| 国产又粗又猛视频免费| 亚洲欧美日本在线| 四川一级毛毛片| 欧美日韩亚洲一区三区| 成人欧美一区二区三区在线观看 | 亚洲欧美综合视频| 激情成人亚洲| 久久久久无码国产精品一区| 欧美理论影院| 中文字幕免费精品一区| 国产又粗又猛视频| 亚洲综合丝袜美腿| 久久人妻一区二区| 丝袜美腿亚洲一区| 一区二区三区在线观看www| 激情五月综合婷婷| 国内精品小视频| 日韩精品123| 欧美三级电影在线看| 日本一二三区在线观看| 国产91丝袜在线播放| 成人一区二区免费视频| 精品国产乱码久久久久久1区2匹| 国产精品最新在线观看| 在线观看小视频| 亚洲精品理论电影| 中文字幕 国产| 亚洲综合色网站| 成都免费高清电影| 国产精品99久久久久久久vr| 黄色国产一级视频| 欧美日韩国产一区二区三区不卡| 国产成人综合av| 尤物在线网址| 亚洲欧美日韩在线高清直播| 97人妻精品一区二区三区视频| 亚洲影院久久精品| 99久久久无码国产精品衣服| 国产一区二区电影| 免费在线观看毛片网站| 欧美成人高清| 日韩成人av网站| 91成人入口| 国产精品偷伦免费视频观看的| 色黄网站在线观看| 伊人久久五月天| 懂色av蜜臀av粉嫩av分享吧| 欧美日韩一区二区三区四区| 日韩av在线播| 亚洲欧美另类综合偷拍| 国产又粗又猛又爽又黄av| 粉嫩av亚洲一区二区图片| 色一情一乱一伦一区二区三区日本| 欧美一区国产在线| 日韩精品一区二区三区丰满| 久久激情av| 91热精品视频| 亚洲第一会所| 韩国v欧美v日本v亚洲| 浪潮av一区| 亚洲无限av看| 亚洲色图 校园春色| 欧美一区二区三区视频在线观看 | 欧美亚洲另类在线一区二区三区| 中文在线综合| 成人午夜一级二级三级| 免费高清视频在线一区| 2019亚洲男人天堂| 国产精品—色呦呦| 久久av在线播放| 888av在线| 伊人久久综合97精品| 免费国产在线观看| 亚洲激情电影中文字幕| 亚洲国产剧情在线观看| 欧美日本不卡视频| 中文字幕av无码一区二区三区| 欧美视频在线观看免费网址| 国产情侣在线视频| 亚洲国产乱码最新视频| 国产小视频在线看| 亚洲一区二区在线观看视频| 福利所第一导航| 亚洲欧洲制服丝袜| 大地资源高清在线视频观看| 中文字幕不卡的av| jizz18女人高潮| 中文字幕av一区二区三区高 | 欧美日韩在线网站| 视频在线观看成人| 日本欧美视频| 亚洲欧美丝袜| 婷婷综合五月| 国产91视频一区| 亚洲一区二区| 久久亚洲国产成人精品无码区 | 亚洲精品中文字幕无码蜜桃| 久久不射中文字幕| 男女视频一区二区三区| 日韩vs国产vs欧美| 校园春色 亚洲色图| 美女视频黄 久久| 中文字幕 欧美日韩| 国内精品在线播放| 极品人妻一区二区| 成人国产一区二区三区精品| 91精品国产自产| 国产欧美精品一区二区三区四区| 国产第一页精品| 亚洲欧美日韩在线不卡| 国产一级做a爱免费视频| 天天综合网天天综合色| 6080午夜伦理| 欧美日韩卡一卡二| 亚洲成a人片在线| 国产视频一区在线| 欧美成人性生活视频| 欧美精品videossex性护士| 亚洲天堂av在线| 国产日本欧美一区| 国产精品毛片久久久| 欧美一区二区三区四区五区六区| 欧美成人自拍| 福利视频一区二区三区四区| 亚洲免费网站| 天堂av2020| 97精品超碰一区二区三区| 久久精品色妇熟妇丰满人妻| 夜夜嗨av一区二区三区网页| 日韩美一区二区| 91精品国产综合久久久蜜臀图片 | 免费不卡av在线| 日韩专区中文字幕一区二区| 中文字幕线观看| 久久一区二区视频| 成人免费视频网站入口::| 精品免费在线视频| 91在线视频国产| 亚洲美女中文字幕| 污污的网站在线看| 国产成人精品久久久| 人人爱人人干婷婷丁香亚洲| 欧美日韩大片一区二区三区| 中文字幕一区二区三区久久网站| 日本www在线播放| 国产一区二区三区日韩| aa片在线观看视频在线播放| 亚洲视频香蕉人妖| 精品人妻一区二区三区潮喷在线 | 黑人精品xxx一区| 国产乱淫a∨片免费观看| 亚洲欧洲激情在线| 女人天堂av在线播放| 国产精品久久久久99| 国产日韩三级| 强开小嫩苞一区二区三区网站| 久久久久国产精品午夜一区| 亚洲熟妇一区二区| 国产精品久久久久桃色tv| 伊人久久综合视频| 日韩亚洲国产中文字幕欧美| p色视频免费在线观看| 欧美中文字幕在线| 国产 日韩 欧美 综合 一区| 青少年xxxxx性开放hg| 久久一日本道色综合久久| av2014天堂网| 亚洲永久精品大片| 国产精品视频第一页| 中文字幕在线国产精品| 日韩在线短视频| 欧美一区二区三区四区五区六区| 999在线观看精品免费不卡网站| 免费黄色av网址| 亚洲精品日韩综合观看成人91| 91在线精品入口| 精品久久久999| 日韩福利影视| 影音欧美亚洲| 久久成人18免费观看| 天堂网av2018| 欧美日韩夫妻久久| 在线观看av的网站| 国产成人精品久久二区二区| 岳的好大精品一区二区三区| 黄色片久久久久| 久久精品人人爽人人爽| 69国产精品视频免费观看| 亚洲图片在区色| 日韩不卡在线| 亚洲精品一区二区三区蜜桃久| 日本成人中文字幕在线视频 | 香蕉视频黄色片| 欧美一级bbbbb性bbbb喷潮片| 久久动漫网址| 国内外成人激情视频| 久久久不卡网国产精品二区| 无码人妻av一区二区三区波多野| 国产亚洲精品美女久久久| 91精品国产高清一区二区三密臀| 一个人www视频在线免费观看| 国产精品777| 欧美三级美国一级| 麻豆三级在线观看| 国产精品国产三级国产aⅴ原创| 91禁在线观看| 欧美成人精品一区二区| 日韩三级精品| 青青草精品视频在线| 91在线观看一区二区| 久久久久久亚洲av无码专区| 中文字幕亚洲专区| 国产精品亚洲欧美一级在线| www.18av.com| av一区二区三区在线| www五月天com| 久久精品视频一| 久久综合社区| 亚洲精品高清无码视频| 亚洲欧美在线aaa| 色婷婷av一区二区三区之红樱桃| 日本午夜在线亚洲.国产| 日韩在线不卡| 永久免费未满蜜桃| 色老汉av一区二区三区| 国产精品久久麻豆| 国产精品美女黄网| 丝袜美腿亚洲一区二区图片| 97成人资源站| 亚洲激情在线视频| 久久免费影院| 男人天堂av片| 中文字幕久久午夜不卡| 亚洲经典一区二区三区| 国产成人综合一区二区三区| 欧美午夜久久| 91麻豆精品国产91久久综合| 日韩精品中文字幕一区二区三区| jizz内谢中国亚洲jizz| 8x8x华人在线| 国产三级精品在线| 色综合视频在线| 92国产精品视频| 视频一区国产视频| 久久久久久久久久久网| 深夜福利亚洲导航| 五月国产精品|