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

聊聊Kubernetes有狀態應用管理

云計算 云原生
StatefulSet這個控制器的主要作用之一,就是使用Pod模板創建Pod的時候,對它們進行編號,并且按照編號順序完成作業,當StatefulSet的控制循環發現Pod的實際狀態和期望狀態不一致的時候,也會按著順序對Pod進行操作。

?我們在《Kubernetes工作負載管理》中主要介紹了無狀態應用的管理,當時也有提到有狀態應用,但是由于那時候還沒有解釋數據如何持久化就沒有做深度的介紹,而在這章,我們會著重介紹如何進行有狀態應用的管理。

什么是有狀態應用

實例之間的不等關系以及實例對外數據有依賴關系的應用,就被稱為"有狀態應用"。

所謂實例之間的不等關系即對分布式應用來說,各實例,各應用之間往往有比較大的依賴關系,比如某個應用必須先于其他應用啟動,否則其他應用將不能啟動等。

對外數據有依賴關系的應用,最顯著的就是數據庫應用,對于數據庫應用,我們是需要持久化保存其數據的,如果是無狀態應用,在數據庫重啟數據和應用就失去了聯系,這顯然是違背我們的初衷,不能投入生產的。

所以,為了解決Kubernetes中有狀態應用的有效支持,Kubernetes使用StatefulSet來編排管理有狀態應用。 StatefulSet類似于ReplicaSet,不同之處在于它可以控制Pod的啟動順序,它為每個Pod設置唯一的標識。其具有一下功能:

  • 穩定的,唯一的網絡標識符
  • 穩定的,持久化存儲
  • 有序的,優雅部署和縮放
  • 有序的,自動滾動更新

StatefulSet的設計很容易理解,它把現實世界抽象為以下兩種情況:(1)、拓撲狀態。這就意味著應用之間是不對等關系,應用要按某種順序啟動,即使應用重啟,也必須按其規定的順序重啟,并且重啟后其網絡標識必須和原來的一樣,這樣才能保證原訪問者能通過同樣的方法訪問新的Pod;(2)、存儲狀態 。這就意味著應用綁定了存儲數據,不論什么時候,不論什么情況,對應用來說,只要存儲里的數據沒有變化,讀取到的數據應該是同一份;

所以StatefulSet的核心功能就是以某種方式記錄Pod的狀態,然后在Pod被重新創建時,通過某種方法恢復其狀態。

如何使用StatefulSet

在《Kubernetes應用訪問管理》中,我們介紹了Service,它是為一組Pod提供外部訪問的一種方式。通常,我們使用 Service訪問Pod有一下兩種方式:(1)、通過Cluster IP,這個Clustre IP就相當于VIP,我們訪問這個IP,就會將請求轉發到后端Pod上;(2)、通過DNS方式,通過這種方式首先得確保Kubernetes集群中有DNS服務。這個時候我們只要訪問"my-service.my-namespace.svc,cluster.local",就可以訪問到名為my-service的Service所代理的后端Pod;

而對于第二種方式,有下面兩種處理方法:(1)、Normal Service,即解析域名,得到的是Cluster IP,然后再按照方式一訪問;(2)、Headless Service,即解析域名,得到的是后端某個Pod的IP地址,這樣就可以直接訪問;

而在使用StatefulSet的時候,主要用到Headless Service,還記得Headless Service怎么定義的嗎?

我們只需要把ClusterIP設置為None即可,如下:

apiVersion: v1
kind: Service
metadata:
name: nginx-headless-service
labels:
name: nginx-headless-service
spec:
clusterIP: None
selector:
name: nginx
ports:
- port: 8000
targetPort: 80

了解了Headless Service,還需要了解PV、PVC是怎么使用的,如果忘記了,可以移步《Kubernetes數據持久化管理》回顧,這里就不再贅述了。

下面,我們開始使用StatefulSet。

首先,我們創建兩個個PV,因為準備為有狀態應用創建兩個副本,如下:

apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-pv01
labels:
storage: pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /data/k8s
server: 192.168.205.128
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: nginx-pv02
labels:
storage: pv
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /data/k8s
server: 192.168.205.128

然后編寫StatefulSet需要的YAML文件,如下:

apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
role: stateful

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "nginx"
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
role: stateful
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi

注意上面的 YAML 文件中和volumeMounts進行關聯的是一個新的屬性:volumeClaimTemplates,該屬性會自動聲明一個 pvc 對象和 pv 進行管理,而serviceName: "nginx"表示在執行控制循環的時候,用nginx這個Headless Service來保存Pod的可解析身份。

創建完成后,可以看到會起兩個Pod:

$ kubectl get pod | grep web
web-0 1/1 Running 0 2m45s
web-1 1/1 Running 0 2m41s

從這兩個Pod的命令可以看到,它們的名字不像Deployment那樣隨機生成的字符串,而是0,1這樣的序號。這是因為StatefulSet要保證每個Pod順序,確保每次重啟或者更新,每個Pod依然保持以前的數據,不會錯亂。所以StatefulSet會以[statefulset-name]-[index]規則進行命名,其中index從0開始。而且每個Pod的創建是有順序的,如上只有web-0進入running狀態后,web-1才創建。

當兩個Pod都進入running狀態后,就可以查看其各自的網絡身份了,我們通過kubectl exec來查看,如下:

$ kubectl exec web-0 -- sh -c 'hostname'
web-0
$ kubectl exec web-1 -- sh -c 'hostname'
web-1

可以看到這兩個pod的hostname和pod的名字是一致的,都被分配為對應的編號,接下來我們用DNS的方式來訪問Headless Service。

我們先啟動一個調試Pod,如下:

apiVersion: v1
kind: Pod
metadata:
name: dnsutils
namespace: default
spec:
containers:
- name: dnsutils
image: lansible/dnstools
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always

然后進入dnsutils容器進行解析,如下:

$ kubectl exec -it dnsutils -- /bin/sh
/ # nslookup web-0.nginx
Server: 10.96.0.10
Address: 10.96.0.10#53

Name: web-0.nginx.default.svc.cluster.local
Address: 172.16.51.247

/ # nslookup web-1.nginx
Server: 10.96.0.10
Address: 10.96.0.10#53

Name: web-1.nginx.default.svc.cluster.local
Address: 172.16.51.251

/ #

從nslookup的結果分析,在訪問web-0.nginx的時候解析的是web-0這個Pod的IP,另一個亦然。這表示,如果我們在應用中配置web-0.nginx,則只會調用web-0這個Pod,在配置有狀態應用,比如Zookeeper的時候,我們需要在配置文件里指定zkServer,這時候就可以指定類似:zk-0.zookeeper,zk-1.zookeeper。

如果我們現在更新StatefuleSet,起更新順序是怎么樣的呢?

首先,我們新開一個終端,輸入以下命令用以觀察:

$ kubectl get pods -w -l role=stateful
NAME READY STATUS RESTARTS AGE
web-0 1/1 Running 0 67m
web-1 1/1 Running 0 67m

然后使用以下命令更新應用的鏡像,如下:

$ kubectl set image statefulset/web nginx=nginx:1.8

然后觀察web應用的更新順序,如下:

$ kubectl get pods -w -l role=stateful
NAME READY STATUS RESTARTS AGE
web-0 1/1 Running 0 67m
web-1 1/1 Running 0 67m
web-1 1/1 Terminating 0 68m
web-1 1/1 Terminating 0 68m
web-1 0/1 Terminating 0 68m
web-1 0/1 Terminating 0 68m
web-1 0/1 Terminating 0 68m
web-1 0/1 Pending 0 0s
web-1 0/1 Pending 0 0s
web-1 0/1 ContainerCreating 0 0s
web-1 0/1 ContainerCreating 0 1s
web-1 1/1 Running 0 10s
web-0 1/1 Terminating 0 69m
web-0 1/1 Terminating 0 69m
web-0 0/1 Terminating 0 69m
web-0 0/1 Terminating 0 69m
web-0 0/1 Terminating 0 69m
web-0 0/1 Pending 0 0s
web-0 0/1 Pending 0 0s
web-0 0/1 ContainerCreating 0 0s
web-0 0/1 ContainerCreating 0 1s
web-0 1/1 Running 0 9s

從整個順序可以看到,起更新是從后往前進行更新的,也就是先更新web-1的pod,再更新web-0的pod。通過這種嚴格的對應規則,StatefulSet就保證了Pod的網絡標識的穩定性,通過這個方法,就可以把Pod的拓撲狀態按照Pod的名字+編號的方式固定起來。此外,Kubernetes還為每一個Pod提供了一個固定并且唯一的訪問入口,即這個Pod的DNS記錄。

由此,我們對StatefulSet梳理如下:(1)、StatefulSet直接管理的是Pod。這是因為StatefulSet里的Pod實例不像ReplicaSet中的Pod實例完全一樣,它們是有細微的區別,比如每個Pod的名字、hostname等是不同的,而且StatefulSet區分這些實例的方式就是為Pod加上編號;(2)、Kubernetes通過Headless Service為這個編號的Pod在DNS服務器中生成帶同樣編號的記錄。只要StatefulSet能保證這個Pod的編號不變,那么Service中類似于web-0.nginx.default.svc.cluster.local這樣的DNS記錄就不會變,而這條記錄所解析的Pod IP地址會隨著Pod的重新創建自動更新;(3)、StatefulSet還可以為每個Pod分配并創建一個和Pod同樣編號的PVC。這樣Kubernetes就可以通過Persitent Volume機制為這個PVC綁定對應的PV,從而保證每一個Pod都擁有獨立的Volume。這種情況下即使Pod被刪除,它所對應的PVC和PV依然會保留下來,所以當這個Pod被重新創建出來過后,Kubernetes會為它找到同樣編號的PVC,掛載這個PVC對應的Volume,從而獲取到以前Volume以前的數據;

總結

StatefulSet這個控制器的主要作用之一,就是使用Pod模板創建Pod的時候,對它們進行編號,并且按照編號順序完成作業,當StatefulSet的控制循環發現Pod的實際狀態和期望狀態不一致的時候,也會按著順序對Pod進行操作。

當然 StatefulSet 還擁有其他特性,在實際的項目中,我們還是很少回去直接通過 StatefulSet 來部署我們的有狀態服務的,除非你自己能夠完全能夠 hold 住,對于一些特定的服務,我們可能會使用更加高級的 Operator 來部署,比如 etcd-operator、prometheus-operator 等等,這些應用都能夠很好的來管理有狀態的服務,而不是單純的使用一個 StatefulSet 來部署一個 Pod就行,因為對于有狀態的應用最重要的還是數據恢復、故障轉移等等。?

責任編輯:武曉燕 來源: 運維開發故事
相關推薦

2021-11-02 08:41:44

Kubernetes Nginx部開源

2024-04-30 11:14:19

KubernetesReplicaSet數量

2024-05-30 11:53:51

2020-12-25 07:41:36

KubernetesOpenKruise應用

2020-12-04 14:19:08

KubernetesDocker容器

2021-08-17 07:15:15

ciliumKubernetes集群

2022-08-29 10:58:50

Kubernetes應用質量管理

2022-09-02 15:38:06

KubernetesYAML

2023-08-17 15:04:22

2024-06-07 09:30:22

vue2Vuex存儲

2019-12-04 10:13:58

Kubernetes存儲Docker

2023-10-31 21:03:49

宿主機管理云開發

2021-01-07 07:53:10

JavaScript內存管理

2021-08-12 18:49:41

DataStreamAPI注冊

2020-12-22 06:05:43

Mbedtls應用基礎

2018-11-21 10:36:29

Kubernetes存儲Docker

2022-09-05 09:25:53

KubernetesService

2019-01-09 13:20:28

GPU虛擬化應用

2024-07-08 08:11:15

2022-11-07 08:01:18

Git分支管理
點贊
收藏

51CTO技術棧公眾號

亚洲国产精品电影在线观看| 国产精品激情偷乱一区二区∴| 久久免费观看视频| 人妻熟女aⅴ一区二区三区汇编| 日韩av中字| 专区另类欧美日韩| 国产视频在线观看一区| 一区二区三区在线免费观看视频| 成人在线一区| 亚洲成色777777女色窝| 色婷婷狠狠18| 9999精品成人免费毛片在线看| 久久久久久久久久美女| 亚洲在线免费视频| 日日夜夜操视频| 狠狠爱www人成狠狠爱综合网| 亚洲第一区中文99精品| 五月天av在线播放| 在线视频超级| 玉米视频成人免费看| 日韩av一区二区三区在线| 精品人妻无码一区二区色欲产成人 | 久久国产精品99久久久久久丝袜| 11024精品一区二区三区日韩| 国产精品老牛| 欧美国产视频日韩| av在线免费播放网址| 九九热精品视频在线观看| 欧美成人一区二区三区在线观看| 爱情岛论坛亚洲首页入口章节| a在线视频v视频| 一区二区日韩av| 一区二区高清视频| 99中文字幕一区| 久久亚洲精品小早川怜子| 国产经品一区二区| aaa一区二区三区| 精品亚洲国内自在自线福利| 国产精品精品久久久| 国产欧美一区二区三区在线看蜜臂| 亚洲国产一成人久久精品| 一区二区三区高清国产| 内射中出日韩无国产剧情| 亚洲超碰在线观看| 欧美一区二区性放荡片| 国产永久免费网站| 视频欧美精品| 欧美电影在线免费观看| 日韩中文字幕a| 欧美在线se| 欧美日韩免费一区二区三区| 国产又黄又猛又粗| 美女网站视频一区| 欧洲av一区二区嗯嗯嗯啊| 国产aaa一级片| 欧美日韩视频网站| 91福利视频久久久久| 亚洲一区二区蜜桃| 日韩av电影资源网| 欧美精品视频www在线观看| jizz18女人| 精品国产18久久久久久二百| 欧美一区二区三区啪啪| 中文字幕1区2区| 国产精品宾馆| 国产视频丨精品|在线观看| 美国黄色一级毛片| 成人在线电影在线观看视频| 综合激情国产一区| 欧美日韩三级在线观看| 精品动漫3d一区二区三区免费| 97免费视频在线| 中文字幕精品视频在线观看| 麻豆91精品91久久久的内涵| 91在线无精精品一区二区| 亚洲成人中文字幕在线| 波多野结衣中文字幕一区| 快播亚洲色图| av在线免费一区| 亚洲美女视频在线观看| 丰满少妇久久久| 天天综合网站| 91精品婷婷国产综合久久性色| 亚洲欧洲日韩综合| 亚洲精品进入| 久久精品国产91精品亚洲| 久久亚洲成人av| 天堂在线一区二区| 亚洲free性xxxx护士白浆| 日本精品久久久久| 国产精品无遮挡| 成人小视频在线观看免费| 在线观看特色大片免费视频| 欧美一区永久视频免费观看| 韩国无码一区二区三区精品| 视频在线不卡免费观看| 久久久免费电影| 亚洲熟妇av乱码在线观看| 国产69精品久久久久777| 日本午夜精品一区二区三区| gogo在线高清视频| 欧美性高潮床叫视频| 加勒比av中文字幕| 国产探花一区在线观看| 毛片精品免费在线观看| 日韩美一区二区| 国产电影一区在线| 蜜桃91精品入口| 先锋影音在线资源站91| 欧美性猛交xxxx黑人交| 日本不卡视频一区| 欧美xxxx中国| 国产成人av在线| 刘亦菲久久免费一区二区| 国产精品欧美综合在线| 欧美精品99久久| 中文字幕日韩高清在线| 日韩在线不卡视频| 波多野结衣电车| proumb性欧美在线观看| 经典三级在线视频| 国产91欧美| 亚洲欧洲偷拍精品| 免费在线观看黄网站| 国产盗摄精品一区二区三区在线| 亚洲ai欧洲av| 性国裸体高清亚洲| 亚洲国产毛片完整版| 免费一级片视频| 国产精品一区二区在线播放| 亚洲人成网站在线观看播放| 欧美momandson| 日韩禁在线播放| 日韩精品一区二区不卡| 国产成人自拍网| 欧美a级黄色大片| 成人短视频软件网站大全app| 最新亚洲国产精品| 丰满人妻一区二区三区四区| 久久精品欧美一区二区三区麻豆 | 好吊日av在线| 日韩欧美激情一区| 久久97人妻无码一区二区三区| 国产一区中文字幕| 国产对白在线播放| 四虎国产精品成人免费影视| 日韩中文字幕网址| 国产有码在线观看| 亚洲欧美日韩中文字幕一区二区三区| 国产3p在线播放| 忘忧草精品久久久久久久高清| 国产精品中文字幕久久久| 97超碰人人在线| 欧美日韩国产中文| 东方av正在进入| 国产激情偷乱视频一区二区三区| 超碰超碰超碰超碰超碰| 丁香五月缴情综合网| 国语自产偷拍精品视频偷| 天堂v在线观看| 色一区在线观看| 在线免费观看视频| 精品一区二区三区视频在线观看| 黄瓜视频免费观看在线观看www| 国产精品3区| 欧美精品成人在线| 色播色播色播色播色播在线| 日韩欧美国产黄色| 免费看的黄色录像| 国产一区二区三区不卡在线观看| 日韩精品久久一区二区| 国产精品对白久久久久粗| 日韩av成人在线观看| 91精彩在线视频| 欧美一级二级三级乱码| www.国产成人| 亚洲国产精品成人综合| 婷婷激情小说网| 国产精品久久久久久模特| 日韩精彩视频| 欧洲精品99毛片免费高清观看| 久久久综合av| 久草视频在线看| 日韩一区二区三区在线视频| 国产免费av一区二区| 国产精品三级电影| 午夜影院福利社| 日韩成人一区二区| 777久久精品一区二区三区无码 | 成人综合在线观看| 免费国产成人av| 欧美成人一品| 日本不卡二区高清三区| 日韩精品一区二区三区中文 | 一区二区三区精品99久久| a级片在线视频| 色偷偷88欧美精品久久久| 99久久婷婷国产综合| 久久久国际精品| 韩国黄色一级片| 男女男精品视频| 国产青青在线视频| 我不卡手机影院| 欧美一区二视频在线免费观看| 欧一区二区三区| 国产精品久久久久久久久男| 51精品视频| 久久国产精品网站| 一区二区高清不卡| 亚洲乱码一区av黑人高潮| 精品国产无码AV| 欧美久久婷婷综合色| 久久精品视频5| 午夜精品久久久久久久99水蜜桃| 日本裸体美女视频| 国产欧美一区二区三区网站| 亚洲 欧美 日韩在线| 国内精品伊人久久久久影院对白| 国产一区亚洲二区三区| 99pao成人国产永久免费视频| 青少年xxxxx性开放hg| 欧美综合视频| 欧美精品123| 日韩中出av| 国产一区二区三区黄| 欧美专区一区| 亚洲最大福利视频| 四虎影视精品永久在线观看| 国产精品观看在线亚洲人成网| brazzers在线观看| 欧美激情免费视频| 91麻豆一二三四在线| 久久艳片www.17c.com| 丝袜美腿美女被狂躁在线观看| 亚洲天堂网站在线观看视频| 欧洲一区av| 亚洲欧洲黄色网| 黄色大片在线看| 亚洲人成五月天| 黄色av免费在线观看| 亚洲欧美三级在线| 久久久久久久久亚洲精品| 亚洲欧美日韩一区二区三区在线| 天天综合网在线| 日韩黄在线观看| 天堂а√在线8种子蜜桃视频| 亚洲国产精品久久久久秋霞蜜臀| 欧美一区二区三区激情| 欧美精品一区二区精品网| 亚洲奶汁xxxx哺乳期| 亚洲缚视频在线观看| 日本黄视频在线观看| 亚洲精品中文字| 国产专区在线播放| 中文欧美日本在线资源| 麻豆视频网站在线观看| 欧美成人全部免费| heyzo在线| 日本久久久久久久久| 日本在线中文字幕一区二区三区| 国产99久久精品一区二区永久免费| 欧美成人a交片免费看| 国产精品免费小视频| 日韩黄色在线| av成人在线电影| 精品少妇一区| 欧美午夜精品久久久久免费视| 青青草国产免费一区二区下载| 一区二区三区四区欧美| 欧美激情性爽国产精品17p| 草b视频在线观看| 久久精品导航| 国产永久免费网站| 成人免费视频播放| av男人的天堂av| 中文字幕av一区 二区| 黄色一级片中国| 五月天亚洲精品| 亚洲字幕av一区二区三区四区| 日韩精品在线一区二区| 久久精品蜜桃| 欧美巨猛xxxx猛交黑人97人| 美女高潮视频在线看| 国产精品一二三视频| 99精品在免费线中文字幕网站一区| 久久一区二区三区av| 五月开心六月丁香综合色啪| 又大又硬又爽免费视频| 老司机午夜免费精品视频 | 91精品尤物| 欧洲精品国产| 欧美精品一卡| 蜜桃免费在线视频| av中文字幕亚洲| 人与动物性xxxx| 色综合视频一区二区三区高清| ,一级淫片a看免费| 亚洲欧美国产精品久久久久久久 | 婷婷丁香花五月天| 日韩中文在线中文网在线观看| aa级大片免费在线观看| 91精品久久久久久久久青青 | 成人手机视频在线| 99精品视频免费观看视频| 日韩成人精品视频在线观看| 97精品久久久午夜一区二区三区 | 一级黄色片网址| 亚洲一区二区三区激情| 亚洲一级在线播放| 亚洲男人天堂2024| 欧美色图天堂| 亚洲一区二区三区在线免费观看| 国产一区二区三区四区| 久久综合久久网| 国模娜娜一区二区三区| 性欧美精品男男| 欧美性精品220| 熟妇高潮一区二区三区| 久久中文久久字幕| 国产一区精品福利| 日韩电影大全在线观看| 伊人久久婷婷| 不许穿内裤随时挨c调教h苏绵| 国产精品女同一区二区三区| 无码人妻精品一区二区三区9厂| 亚洲成人亚洲激情| 丰满诱人av在线播放| 亚洲自拍中文字幕| 99久久99热这里只有精品| 国产真人无码作爱视频免费| 91香蕉视频黄| 成年免费在线观看| 亚洲国产精品99久久| 欧美6一10sex性hd| 国产69精品久久久久9999apgf | 人妻有码中文字幕| 91色|porny| 日韩免费视频一区二区视频在线观看| 精品国产露脸精彩对白| 91九色国产在线播放| 国产精品三区四区| 国产精品久久久久9999高清| 国产在线观看无码免费视频| 欧美日韩一区二区三区| 亚洲 精品 综合 精品 自拍| 久久久久久久激情视频| 97久久亚洲| 欧美性大战久久久久xxx | 精品久久国产老人久久综合| 牛牛精品在线视频| 国产精品一区二区三区四区五区| 亚洲人体偷拍| 全黄一级裸体片| 欧美在线短视频| 欧美性天天影视| 亚洲综合av影视| 亚洲国产电影| 国产特级黄色录像| 欧美日韩亚洲另类| av片在线观看永久免费| 国产精品成人一区二区三区| 国产精品久久久久久久久久妞妞 | 99成人在线视频| 制服下的诱惑暮生| 亚洲风情在线资源站| 日av在线播放| 国产在线日韩在线| 在线欧美福利| 亚洲第一综合网| 这里是久久伊人| 黄视频免费在线看| 五月天婷亚洲天综合网鲁鲁鲁| 国产一区中文字幕| 日日夜夜综合网| 日韩在线观看免费高清完整版| 精品一区二区三区免费看| 免费一级特黄特色毛片久久看| 久久精品免费在线观看| 99热这里只有精品在线| 久久久在线观看| 日韩av久操| xxxx黄色片| 666欧美在线视频| 台湾佬中文娱乐网欧美电影| 中文视频一区视频二区视频三区| 国产成人一级电影| 伊人久久中文字幕| 欧美日韩999| 精品日韩欧美一区| 不卡的一区二区| 91久久精品一区二区二区| 男人天堂久久久| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 精品久久久噜噜噜噜久久图片| 一区二区在线免费观看| 国产资源在线播放| 国产区日韩欧美| 激情综合色播激情啊| 中文字字幕在线中文| 九九精品视频在线|