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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

k8s进阶篇-云原生存储ceph

發(fā)布時間:2023/12/14 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s进阶篇-云原生存储ceph 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一章 Rook安裝

rook的版本大于1.3,不要使用目錄創(chuàng)建集群,要使用單獨的裸盤進行創(chuàng)建,也就是創(chuàng)建一個新的磁盤,掛載到宿主機,不進行格式化,直接使用即可。對于的磁盤節(jié)點配置如下:

做這個實驗需要高配置,每個節(jié)點配置不能低于2核4G
k8s 1.19以上版本,快照功能需要單獨安裝snapshot控制器

下載Rook安裝文件

下載指定版本Rook

git clone --single-branch --branch v1.6.3 https://github.com/rook/rook.git

配置更改

cd rook/cluster/examples/kubernetes/ceph

修改Rook CSI鏡像地址,原本的地址可能是gcr的鏡像,但是gcr的鏡像無法被國內(nèi)訪問,所以需要同步gcr的鏡像到阿里云鏡像倉庫,文檔版本已經(jīng)完成同步,可以直接修改如下:

vim operator.yaml


改為:

ROOK_CSI_REGISTRAR_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-node-driver-registrar:v2.0.1" ROOK_CSI_RESIZER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-resizer:v1.0.1" ROOK_CSI_PROVISIONER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-provisioner:v2.0.4" ROOK_CSI_SNAPSHOTTER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-snapshotter:v4.0.0" ROOK_CSI_ATTACHER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-attacher:v3.0.2"

如果是其他版本,需要自行同步,同步方法可以在網(wǎng)上找到相關(guān)文章。可以參考https://blog.csdn.net/sinat_35543900/article/details/103290782
還是operator文件,新版本rook默認(rèn)關(guān)閉了自動發(fā)現(xiàn)容器的部署,可以找到ROOK_ENABLE_DISCOVERY_DAEMON改成true即可:

部署rook

1.6.3版本的部署步驟如下:

cd cluster/examples/kubernetes/ceph kubectl create -f crds.yaml -f common.yaml -f operator.yaml

等待operator容器和discover容器啟動

[root@k8s-master01 ceph]# kubectl -n rook-ceph get pod NAME READY STATUS RESTARTS AGE rook-ceph-operator-65965c66b5-q4529 1/1 Running 0 7m43s rook-discover-7bjbn 1/1 Running 0 5m31s rook-discover-dv4bn 1/1 Running 0 5m31s rook-discover-gbln2 1/1 Running 0 5m31s rook-discover-hlqrg 1/1 Running 0 5m31s rook-discover-np7pb 1/1 Running 0 5m31s

第二章 創(chuàng)建ceph集群

配置更改

主要更改的是osd節(jié)點所在的位置:

cd cluster/examples/kubernetes/ceph vim cluster.yaml

新版必須采用裸盤,即未格式化的磁盤。其中k8s-master02 k8s-node01 node02有新加的一個磁盤,可以通過lsblk -f查看新添加的磁盤名稱。建議最少三個節(jié)點,否則后面的試驗可能會出現(xiàn)問題

創(chuàng)建Ceph集群

kubectl create -f cluster.yaml

創(chuàng)建完成后,可以查看pod的狀態(tài):

[root@k8s-master01 ceph]# kubectl -n rook-ceph get pod NAME READY STATUS RESTARTS AGE csi-cephfsplugin-cp2s5 3/3 Running 0 27m csi-cephfsplugin-h4wb5 3/3 Running 0 27m csi-cephfsplugin-jznvn 3/3 Running 0 27m csi-cephfsplugin-k9q28 3/3 Running 0 27m csi-cephfsplugin-provisioner-574976878-f5n7c 6/6 Running 0 27m csi-cephfsplugin-provisioner-574976878-p7vcx 6/6 Running 0 27m csi-cephfsplugin-z2645 3/3 Running 0 27m csi-rbdplugin-7fzmv 3/3 Running 0 27m csi-rbdplugin-7xsrp 3/3 Running 0 27m csi-rbdplugin-b9lqh 3/3 Running 0 27m csi-rbdplugin-dx2jk 3/3 Running 0 27m csi-rbdplugin-provisioner-884fb5b55-dm5dl 6/6 Running 0 27m csi-rbdplugin-provisioner-884fb5b55-z4p49 6/6 Running 0 27m csi-rbdplugin-x4snv 3/3 Running 0 27m rook-ceph-crashcollector-k8s-master02-f9db7d85d-lltdp 1/1 Running 0 17m rook-ceph-crashcollector-k8s-node01-747795874c-5cdz6 1/1 Running 0 17m rook-ceph-crashcollector-k8s-node02-5d4867cfb8-n74wn 1/1 Running 0 17m rook-ceph-mgr-a-77bf97745c-4hqpp 1/1 Running 0 17m rook-ceph-mon-a-6d4444d6bf-jvlxw 1/1 Running 0 19m rook-ceph-mon-b-68b66fd889-x28bf 1/1 Running 0 17m rook-ceph-mon-c-54bb69686-v8ftf 1/1 Running 0 17m rook-ceph-operator-65965c66b5-q4529 1/1 Running 0 50m rook-ceph-osd-0-667c867b46-m8nnj 1/1 Running 0 17m rook-ceph-osd-1-56784d575b-vm8mc 1/1 Running 0 17m rook-ceph-osd-2-74f856bb8c-s2r69 1/1 Running 0 17m rook-ceph-osd-prepare-k8s-master02-nf7qn 0/1 Completed 0 16m rook-ceph-osd-prepare-k8s-node01-jkm6g 0/1 Completed 0 16m rook-ceph-osd-prepare-k8s-node02-xr4rt 0/1 Completed 0 16m rook-discover-7bjbn 1/1 Running 0 48m rook-discover-dv4bn 1/1 Running 0 48m rook-discover-gbln2 1/1 Running 0 48m rook-discover-hlqrg 1/1 Running 0 48m rook-discover-np7pb 1/1 Running 0 48m

需要注意的是,osd-x的容器必須是存在的,且是正常的。如果上述Pod均正常,則認(rèn)為集群安裝成功。
更多配置:https://rook.io/docs/rook/v1.6/ceph-cluster-crd.html

安裝ceph snapshot控制器

k8s 1.19版本以上需要單獨安裝snapshot控制器,才能完成pvc的快照功能,所以在此提前安裝下
snapshot控制器的部署在集群安裝時的k8s-ha-install項目中,需要切換到1.20.x分支:

cd /root/k8s-ha-install/ git checkout manual-installation-v1.20.x

創(chuàng)建snapshot controller:

kubectl create -f snapshotter/ -n kube-system [root@k8s-master01 k8s-ha-install]# kubectl get po -n kube-system -l app=snapshot-controller NAME READY STATUS RESTARTS AGE snapshot-controller-0 1/1 Running 0 51s

具體文檔:https://rook.io/docs/rook/v1.6/ceph-csi-snapshot.html

第三章 安裝ceph客戶端工具

[root@k8s-master01 k8s-ha-install]# cd /rook/cluster/examples/kubernetes/ceph[root@k8s-master01 ceph]# kubectl create -f toolbox.yaml -n rook-ceph deployment.apps/rook-ceph-tools created

待容器Running后,即可執(zhí)行相關(guān)命令

[root@k8s-master01 ceph]# kubectl get po -n rook-ceph -l app=rook-ceph-tools NAME READY STATUS RESTARTS AGE rook-ceph-tools-fc5f9586c-wq72t 1/1 Running 0 38s[root@k8s-master01 ceph]# kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash [root@rook-ceph-tools-fc5f9586c-wq72t /]# ceph statuscluster:id: b23b3611-f332-40a7-bd4b-f555458ce160health: HEALTH_WARNmons are allowing insecure global_id reclaimservices:mon: 3 daemons, quorum a,b,c (age 7m)mgr: a(active, since 7m)osd: 3 osds: 3 up (since 7m), 3 in (since 10h)data:pools: 1 pools, 1 pgsobjects: 0 objects, 0 Busage: 3.0 GiB used, 57 GiB / 60 GiB availpgs: 1 active+clean[root@rook-ceph-tools-fc5f9586c-wq72t /]# ceph osd status ID HOST USED AVAIL WR OPS WR DATA RD OPS RD DATA STATE0 k8s-node01 1027M 18.9G 0 0 0 0 exists,up1 k8s-node02 1027M 18.9G 0 0 0 0 exists,up2 k8s-master02 1027M 18.9G 0 0 0 0 exists,up[root@rook-ceph-tools-fc5f9586c-wq72t /]# ceph df --- RAW STORAGE --- CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 60 GiB 57 GiB 11 MiB 3.0 GiB 5.02 TOTAL 60 GiB 57 GiB 11 MiB 3.0 GiB 5.02--- POOLS --- POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL device_health_metrics 1 1 0 B 0 0 B 0 18 GiB

第四章 Ceph dashboard

參考官網(wǎng)
The simplest way to expose the service in minikube or similar environment is using the NodePort to open a port on the VM that can be accessed by the host. To create a service with the NodePort, save this yaml as dashboard-external-https.yaml.
The simplest way to expose the service in minikube or similar environment is using the NodePort to open a port on the VM that can be accessed by the host. To create a service with the NodePort, save this yaml as dashboard-external-https.yaml.
在minikube或類似環(huán)境中公開服務(wù)的最簡單方法是使用NodePort在VM上打開主機可以訪問的端口。要使用NodePort創(chuàng)建服務(wù),請將此yaml保存為dashboard-external-https.yaml。

apiVersion: v1 kind: Service metadata:name: rook-ceph-mgr-dashboard-external-httpsnamespace: rook-cephlabels:app: rook-ceph-mgrrook_cluster: rook-ceph spec:ports:- name: dashboardport: 8443protocol: TCPtargetPort: 8443selector:app: rook-ceph-mgrrook_cluster: rook-cephsessionAffinity: Nonetype: NodePort

創(chuàng)建服務(wù)

kubectl create -f dashboard-external-https.yaml

查看服務(wù)

[root@k8s-master01 ceph]# kubectl -n rook-ceph get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE csi-cephfsplugin-metrics ClusterIP 192.168.114.108 <none> 8080/TCP,8081/TCP 11h csi-rbdplugin-metrics ClusterIP 192.168.214.223 <none> 8080/TCP,8081/TCP 11h rook-ceph-mgr ClusterIP 192.168.5.9 <none> 9283/TCP 11h rook-ceph-mgr-dashboard ClusterIP 192.168.144.39 <none> 8443/TCP 11h rook-ceph-mgr-dashboard-external-https NodePort 192.168.195.164 <none> 8443:31250/TCP 8m53s rook-ceph-mon-a ClusterIP 192.168.71.28 <none> 6789/TCP,3300/TCP 11h rook-ceph-mon-b ClusterIP 192.168.137.117 <none> 6789/TCP,3300/TCP 11h rook-ceph-mon-c ClusterIP 192.168.245.155 <none> 6789/TCP,3300/TCP 11h

訪問

賬號:admin
密碼:通過命令獲取

kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo

通過安裝ceph的任意節(jié)點ip+端口號進行訪問

警告解決:https://docs.ceph.com/en/octopus/rados/operations/health-checks/

ceph -s出現(xiàn)mon is allowing insecure global_id reclaim的解決辦法

需要禁用掉不安全的模式,使用如下命令

ceph config set mon auth_allow_insecure_global_id_reclaim false

第五章 ceph塊存儲的使用

塊存儲一般用于一個Pod掛載一塊存儲使用,相當(dāng)于一個服務(wù)器新掛了一個盤,只給一個應(yīng)用使用。
參考文檔

創(chuàng)建StorageClass和ceph的存儲池

[root@k8s-master01 ceph]# pwd /rook/cluster/examples/kubernetes/ceph[root@k8s-master01 ceph]# vim csi/rbd/storageclass.yaml

因為是試驗環(huán)境,所以將副本數(shù)設(shè)置成了2(不能設(shè)置為1),生產(chǎn)環(huán)境最少為3,且要小于等于osd的數(shù)量

創(chuàng)建StorageClass和存儲池:

[root@k8s-master01 ceph]# kubectl create -f csi/rbd/storageclass.yaml -n rook-ceph cephblockpool.ceph.rook.io/replicapool created storageclass.storage.k8s.io/rook-ceph-block created

查看創(chuàng)建的cephblockpool和storageClass

StorageClass沒有namespace隔離性

[root@k8s-master01 ceph]# kubectl get cephblockpool -n rook-ceph NAME AGE replicapool 57s[root@k8s-master01 ceph]# kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE rook-ceph-block rook-ceph.rbd.csi.ceph.com Delete Immediate true 74s

此時可以在ceph dashboard查看到改Pool,如果沒有顯示說明沒有創(chuàng)建成功

掛載測試

創(chuàng)建一個MySQL服務(wù)

[root@k8s-master01 ceph]# cd /rook/cluster/examples/kubernetes[root@k8s-master01 kubernetes]# kubectl create -f mysql.yaml service/wordpress-mysql created persistentvolumeclaim/mysql-pv-claim created deployment.apps/wordpress-mysql created

該文件有一段pvc的配置

[root@k8s-master01 kubernetes]# cat mysql.yaml apiVersion: v1 kind: Service metadata:name: wordpress-mysqllabels:app: wordpress spec:ports:- port: 3306selector:app: wordpresstier: mysqlclusterIP: None --- apiVersion: v1 kind: PersistentVolumeClaim metadata:name: mysql-pv-claimlabels:app: wordpress spec:storageClassName: rook-ceph-blockaccessModes:- ReadWriteOnceresources:requests:storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata:name: wordpress-mysqllabels:app: wordpresstier: mysql spec:selector:matchLabels:app: wordpresstier: mysqlstrategy:type: Recreatetemplate:metadata:labels:app: wordpresstier: mysqlspec:containers:- image: mysql:5.6name: mysqlenv:- name: MYSQL_ROOT_PASSWORDvalue: changemeports:- containerPort: 3306name: mysqlvolumeMounts:- name: mysql-persistent-storagemountPath: /var/lib/mysqlvolumes:- name: mysql-persistent-storagepersistentVolumeClaim:claimName: mysql-pv-claim


pvc會連接剛才創(chuàng)建的storageClass,然后動態(tài)創(chuàng)建pv,然后連接到ceph創(chuàng)建對應(yīng)的存儲,
之后創(chuàng)建pvc只需要指定storageClassName為剛才創(chuàng)建的StorageClass名稱即可連接到rook的ceph。
如果是statefulset,只需要將volumeTemplateClaim里面的Claim名稱改為StorageClass名稱即可動態(tài)創(chuàng)建Pod

其中MySQL deployment的volumes配置掛載了該pvc:

claimName為pvc的名稱
因為MySQL的數(shù)據(jù)不能多個MySQL實例連接同一個存儲,所以一般只能用塊存儲。相當(dāng)于新加了一塊盤給MySQL使用。

創(chuàng)建完成后可以查看創(chuàng)建的pvc和pv

[root@k8s-master01 kubernetes]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql-pv-claim Bound pvc-7d7668d8-8d51-4456-aa2e-bedc18c251fd 20Gi RWO rook-ceph-block 39m[root@k8s-master01 kubernetes]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-7d7668d8-8d51-4456-aa2e-bedc18c251fd 20Gi RWO Delete Bound default/mysql-pv-claim rook-ceph-block 39m

此時在ceph dashboard上面也可以查看到對應(yīng)的image

StatefulSet · volumeClaimTemplates

apiVersion: v1 kind: Service metadata:name: nginxlabels:app: nginx spec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata:name: web spec:selector:matchLabels:app: nginx # has to match .spec.template.metadata.labelsserviceName: "nginx"replicas: 3 # by default is 1template:metadata:labels:app: nginx # has to match .spec.selector.matchLabelsspec:terminationGracePeriodSeconds: 10containers:- name: nginximage: nginx ports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata:name: wwwspec:accessModes: [ "ReadWriteOnce" ]storageClassName: "rook-ceph-block"resources:requests:storage: 1Gi

第六章 共享文件系統(tǒng)的使用

共享文件系統(tǒng)一般用于多個Pod共享一個存儲
官方文檔

創(chuàng)建共享類型的文件系統(tǒng)

[root@k8s-master01 kubernetes]# cd /rook/cluster/examples/kubernetes/ceph[root@k8s-master01 ceph]# cat filesystem.yaml ################################################################################################################# # Create a filesystem with settings with replication enabled for a production environment. # A minimum of 3 OSDs on different nodes are required in this example. # kubectl create -f filesystem.yaml #################################################################################################################apiVersion: ceph.rook.io/v1 kind: CephFilesystem metadata:name: myfsnamespace: rook-ceph # namespace:cluster spec:# The metadata pool spec. Must use replication.metadataPool:replicated:size: 3requireSafeReplicaSize: trueparameters:# Inline compression mode for the data pool# Further reference: https://docs.ceph.com/docs/nautilus/rados/configuration/bluestore-config-ref/#inline-compressioncompression_mode:none# gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity of a given pool# for more info: https://docs.ceph.com/docs/master/rados/operations/placement-groups/#specifying-expected-pool-size#target_size_ratio: ".5"# The list of data pool specs. Can use replication or erasure coding.dataPools:- failureDomain: hostreplicated:size: 3# Disallow setting pool with replica 1, this could lead to data loss without recovery.# Make sure you're *ABSOLUTELY CERTAIN* that is what you wantrequireSafeReplicaSize: trueparameters:# Inline compression mode for the data pool# Further reference: https://docs.ceph.com/docs/nautilus/rados/configuration/bluestore-config-ref/#inline-compressioncompression_mode:none# gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity of a given pool# for more info: https://docs.ceph.com/docs/master/rados/operations/placement-groups/#specifying-expected-pool-size#target_size_ratio: ".5"# Whether to preserve filesystem after CephFilesystem CRD deletionpreserveFilesystemOnDelete: true# The metadata service (mds) configurationmetadataServer:# The number of active MDS instancesactiveCount: 1# Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover.# If false, standbys will be available, but will not have a warm cache.activeStandby: true# The affinity rules to apply to the mds deploymentplacement:# nodeAffinity:# requiredDuringSchedulingIgnoredDuringExecution:# nodeSelectorTerms:# - matchExpressions:# - key: role# operator: In# values:# - mds-node# topologySpreadConstraints:# tolerations:# - key: mds-node# operator: Exists# podAffinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- rook-ceph-mds# topologyKey: kubernetes.io/hostname will place MDS across different hoststopologyKey: kubernetes.io/hostnamepreferredDuringSchedulingIgnoredDuringExecution:- weight: 100podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: Invalues:- rook-ceph-mds# topologyKey: */zone can be used to spread MDS across different AZ# Use <topologyKey: failure-domain.beta.kubernetes.io/zone> in k8s cluster if your cluster is v1.16 or lower# Use <topologyKey: topology.kubernetes.io/zone> in k8s cluster is v1.17 or uppertopologyKey: topology.kubernetes.io/zone# A key/value list of annotationsannotations:# key: value# A key/value list of labelslabels:# key: valueresources:# The requests and limits set here, allow the filesystem MDS Pod(s) to use half of one CPU core and 1 gigabyte of memory# limits:# cpu: "500m"# memory: "1024Mi"# requests:# cpu: "500m"# memory: "1024Mi"# priorityClassName: my-priority-classmirroring:enabled: false[root@k8s-master01 ceph]# kubectl create -f filesystem.yaml cephfilesystem.ceph.rook.io/myfs created

創(chuàng)建完成后會啟動mds容器,需要等待啟動后才可進行創(chuàng)建pv

[root@k8s-master01 ceph]# kubectl -n rook-ceph get pod -l app=rook-ceph-mds NAME READY STATUS RESTARTS AGE rook-ceph-mds-myfs-a-5c4fbfb9bd-xfhpw 1/1 Running 0 33s rook-ceph-mds-myfs-b-678b4976d6-d8f9p 1/1 Running 0 32s

也可以在ceph dashboard上面查看狀態(tài)

創(chuàng)建共享類型文件系統(tǒng)的StorageClass

[root@k8s-master01 ceph]# cd /rook/cluster/examples/kubernetes/ceph/csi/cephfs[root@k8s-master01 cephfs]# cat storageclass.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata:name: rook-cephfs provisioner: rook-ceph.cephfs.csi.ceph.com # driver:namespace:operator parameters:# clusterID is the namespace where operator is deployed.clusterID: rook-ceph # namespace:cluster# CephFS filesystem name into which the volume shall be createdfsName: myfs# Ceph pool into which the volume shall be created# Required for provisionVolume: "true"pool: myfs-data0# The secrets contain Ceph admin credentials. These are generated automatically by the operator# in the same namespace as the cluster.csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisionercsi.storage.k8s.io/provisioner-secret-namespace: rook-ceph # namespace:clustercsi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisionercsi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph # namespace:clustercsi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-nodecsi.storage.k8s.io/node-stage-secret-namespace: rook-ceph # namespace:cluster# (optional) The driver can use either ceph-fuse (fuse) or ceph kernel client (kernel)# If omitted, default volume mounter will be used - this is determined by probing for ceph-fuse# or by setting the default mounter explicitly via --volumemounter command-line argument.# mounter: kernel reclaimPolicy: Delete allowVolumeExpansion: true mountOptions:# uncomment the following line for debugging#- debug[root@k8s-master01 cephfs]# kubectl create -f storageclass.yaml storageclass.storage.k8s.io/rook-cephfs created

之后將pvc的storageClassName設(shè)置成rook-cephfs即可創(chuàng)建共享文件類型的存儲,類似于NFS,可以給多個Pod共享數(shù)據(jù)。

掛載測試

[root@k8s-master01 cephfs]# pwd /rook/cluster/examples/kubernetes/ceph/csi/cephfs[root@k8s-master01 cephfs]# ls kube-registry.yaml pod.yaml pvc-clone.yaml pvc-restore.yaml pvc.yaml snapshotclass.yaml snapshot.yaml storageclass.yaml[root@k8s-master01 cephfs]# cat kube-registry.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: cephfs-pvcnamespace: kube-system spec:accessModes:- ReadWriteManyresources:requests:storage: 1GistorageClassName: rook-cephfs --- apiVersion: apps/v1 kind: Deployment metadata:name: kube-registrynamespace: kube-systemlabels:k8s-app: kube-registrykubernetes.io/cluster-service: "true" spec:replicas: 3selector:matchLabels:k8s-app: kube-registrytemplate:metadata:labels:k8s-app: kube-registrykubernetes.io/cluster-service: "true"spec:containers:- name: registryimage: registry:2imagePullPolicy: Alwaysresources:limits:cpu: 100mmemory: 100Mienv:# Configuration reference: https://docs.docker.com/registry/configuration/- name: REGISTRY_HTTP_ADDRvalue: :5000- name: REGISTRY_HTTP_SECRETvalue: "Ple4seCh4ngeThisN0tAVerySecretV4lue"- name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORYvalue: /var/lib/registryvolumeMounts:- name: image-storemountPath: /var/lib/registryports:- containerPort: 5000name: registryprotocol: TCPlivenessProbe:httpGet:path: /port: registryreadinessProbe:httpGet:path: /port: registryvolumes:- name: image-storepersistentVolumeClaim:claimName: cephfs-pvcreadOnly: false[root@k8s-master01 cephfs]# kubectl create -f kube-registry.yaml persistentvolumeclaim/cephfs-pvc created deployment.apps/kube-registry created

查看創(chuàng)建的pvc和pod

[root@k8s-master01 cephfs]# kubectl get po -n kube-system -l k8s-app=kube-registry NAME READY STATUS RESTARTS AGE kube-registry-5d6d8877f7-ngp2x 1/1 Running 0 34s kube-registry-5d6d8877f7-q7l8p 0/1 ContainerCreating 0 34s kube-registry-5d6d8877f7-qmtqv 0/1 ContainerCreating 0 34s[root@k8s-master01 cephfs]# kubectl get pvc -n kube-system NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cephfs-pvc Bound pvc-6b08e697-354f-473d-9423-459e154e3d46 1Gi RWX rook-cephfs 58s
  • 注意claimName為pvc的名稱。
  • 此時一共創(chuàng)建了三個Pod,這三個Pod共用了一個存儲,掛載到了/var/lib/registry,該目錄三個容器共享數(shù)據(jù)。

Nginx掛載測試

apiVersion: v1 kind: Service metadata:name: nginxlabels:app: nginx spec:ports:- port: 80name: webselector:app: nginxtype: ClusterIP --- kind: PersistentVolumeClaim apiVersion: v1 metadata:name: nginx-share-pvc spec:storageClassName: rook-cephfs accessModes:- ReadWriteManyresources:requests:storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata:name: web spec:selector:matchLabels:app: nginx # has to match .spec.template.metadata.labelsreplicas: 3 # by default is 1template:metadata:labels:app: nginx # has to match .spec.selector.matchLabelsspec:containers:- name: nginximage: nginx imagePullPolicy: IfNotPresentports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumes:- name: wwwpersistentVolumeClaim:claimName: nginx-share-pvc

第七章 PVC擴容

文件共享類型的PVC擴容需要k8s 1.15+
塊存儲類型的PVC擴容需要k8s 1.16+
PVC擴容需要開啟ExpandCSIVolumes,新版本的k8s已經(jīng)默認(rèn)打開了這個功能,可以查看自己的k8s版本是否已經(jīng)默認(rèn)打開了該功能:

[root@k8s-master01 cephfs]# kube-apiserver -h |grep ExpandCSIVolumesExpandCSIVolumes=true|false (BETA - default=true)

如果default為true就不需要打開此功能,如果default為false,需要開啟該功能。

擴容文件共享型PVC

找到剛才創(chuàng)建的文件共享型StorageClass,將allowVolumeExpansion設(shè)置為true(新版rook默認(rèn)為true,如果不為true更改后執(zhí)行kubectl replace即可):

找到第六章創(chuàng)建的pvc:

[root@k8s-master01 cephfs]# kubectl get pvc -n kube-system NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cephfs-pvc Bound pvc-0149518a-7346-4d16-9030-97b2f9b8e9d2 1Gi RWX rook-cephfs 44m [root@k8s-master01 cephfs]# kubectl edit pvc cephfs-pvc -n kube-system

將大小修改為2Gi,之前是1Gi

保存退出:

[root@k8s-master01 cephfs]# kubectl edit pvc cephfs-pvc -n kube-system persistentvolumeclaim/cephfs-pvc edited

查看PV和PVC的大小:

[root@k8s-master01 cephfs]# kubectl get pvc -n kube-system NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cephfs-pvc Bound pvc-0149518a-7346-4d16-9030-97b2f9b8e9d2 2Gi RWX rook-cephfs 46m [root@k8s-master01 cephfs]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-0149518a-7346-4d16-9030-97b2f9b8e9d2 2Gi RWX Delete Bound kube-system/cephfs-pvc rook-cephfs 47m pvc-fd8b9860-c0d4-4797-8e1d-1fab880bc9fc 2Gi RWO Delete Bound default/mysql-pv-claim rook-ceph-block 64m

查看容器內(nèi)是否已經(jīng)完成擴容:

[root@k8s-master01 cephfs]# kubectl exec -ti kube-registry-66d4c7bf47-46bpq -n kube-system -- df -Th | grep "/var/lib/registry"ceph 2.0G 0 2.0G 0% /var/lib/registry

同樣的步驟可以擴容到3G:

擴容塊存儲

擴容步驟類似,找到第五章創(chuàng)建PVC,直接edit即可

[root@k8s-master01 cephfs]# kubectl edit pvc mysql-pv-claim persistentvolumeclaim/mysql-pv-claim edited [root@k8s-master01 cephfs]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql-pv-claim Bound pvc-fd8b9860-c0d4-4797-8e1d-1fab880bc9fc 2Gi RWO rook-ceph-block 70m

可以看到此時pvc并沒有擴容,但是pv已經(jīng)擴容:

[root@k8s-master01 cephfs]# kubectl get pv | grep default/mysql-pv-claim pvc-fd8b9860-c0d4-4797-8e1d-1fab880bc9fc 3Gi RWO Delete Bound default/mysql-pv-claim rook-ceph-block 75m

也可以看到ceph dashboard的image也完成了擴容,但是pvc和pod里面的狀態(tài)會有延遲,大概等待5-10分鐘后,即可完成擴容:

第八章 PVC快照

注意:PVC快照功能需要k8s 1.17+

塊存儲快照

創(chuàng)建snapshotClass
[root@k8s-master01 rbd]# pwd /rook/cluster/examples/kubernetes/ceph/csi/rbd [root@k8s-master01 rbd]# kubectl create -f snapshotclass.yaml volumesnapshotclass.snapshot.storage.k8s.io/csi-rbdplugin-snapclass created
創(chuàng)建快照

首先在之前創(chuàng)建的MySQL容器里創(chuàng)建一個文件夾,并創(chuàng)建一個文件

[root@k8s-master01 rbd]# kubectl get po NAME READY STATUS RESTARTS AGE nginx-6799fc88d8-m5gj5 1/1 Running 1 3d4h wordpress-mysql-6965fc8cc8-6wt6j 1/1 Running 0 86m[root@k8s-master01 rbd]# kubectl exec -ti wordpress-mysql-6965fc8cc8-6wt6j -- bashroot@wordpress-mysql-6965fc8cc8-6wt6j:/# ls bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr varroot@wordpress-mysql-6965fc8cc8-6wt6j:/# cd /var/lib/mysqlroot@wordpress-mysql-6965fc8cc8-6wt6j:/var/lib/mysql# ls auto.cnf ib_logfile0 ib_logfile1 ibdata1 lost+found mysql performance_schemaroot@wordpress-mysql-6965fc8cc8-6wt6j:/var/lib/mysql# mkdir test_snapshotroot@wordpress-mysql-6965fc8cc8-6wt6j:/var/lib/mysql# ls auto.cnf ib_logfile0 ib_logfile1 ibdata1 lost+found mysql performance_schema test_snapshotroot@wordpress-mysql-6965fc8cc8-6wt6j:/var/lib/mysql# echo "test for snapshot" > test_snapshot/1.txtroot@wordpress-mysql-6965fc8cc8-6wt6j:/var/lib/mysql# cat test_snapshot/1.txt test for snapshot
修改snapshot.yaml文件的source pvc為創(chuàng)建的MySQL pvc:

創(chuàng)建快照及查看狀態(tài):
[root@k8s-master01 rbd]# kubectl create -f snapshot.yaml volumesnapshot.snapshot.storage.k8s.io/rbd-pvc-snapshot created[root@k8s-master01 rbd]# kubectl get volumesnapshotclass NAME DRIVER DELETIONPOLICY AGE csi-rbdplugin-snapclass rook-ceph.rbd.csi.ceph.com Delete 8m37s[root@k8s-master01 rbd]# kubectl get volumesnapshot NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE rbd-pvc-snapshot true mysql-pv-claim 3Gi csi-rbdplugin-snapclass snapcontent-715c2841-d1ba-493a-9eb9-52178df3c2e6 <invalid> <invalid>
指定快照創(chuàng)建PVC

如果想要創(chuàng)建一個具有某個數(shù)據(jù)的PVC,可以從某個快照恢復(fù):

[root@k8s-master01 rbd]# cat pvc-restore.yaml --- apiVersion: v1 kind: PersistentVolumeClaim metadata:name: rbd-pvc-restore spec:storageClassName: rook-ceph-blockdataSource:name: rbd-pvc-snapshotkind: VolumeSnapshotapiGroup: snapshot.storage.k8s.ioaccessModes:- ReadWriteOnceresources:requests:storage: 3Gi[root@k8s-master01 rbd]# kubectl create -f pvc-restore.yaml persistentvolumeclaim/rbd-pvc-restore created

注意:dataSource為快照名稱,storageClassName為新建pvc的storageClass,storage的大小不能低于原pvc的大小。

[root@k8s-master01 rbd]# kubectl create -f pvc-restore.yaml persistentvolumeclaim/rbd-pvc-restore created [root@k8s-master01 rbd]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql-pv-claim Bound pvc-fd8b9860-c0d4-4797-8e1d-1fab880bc9fc 3Gi RWO rook-ceph-block 95m rbd-pvc-restore Bound pvc-d86a7535-2331-4fef-ae93-c570c8d3f9e7 3Gi RWO rook-ceph-block 2s
數(shù)據(jù)校驗

創(chuàng)建一個容器,掛載該PVC,查看是否含有之前的文件:

[root@k8s-master01 rbd]# cat restore-check-snapshot-rbd.yaml --- apiVersion: apps/v1 kind: Deployment metadata:name: check-snapshot-restore spec:selector:matchLabels:app: check strategy:type: Recreatetemplate:metadata:labels:app: check spec:containers:- image: alpine:3.8name: checkcommand:- sh- -c- sleep 36000volumeMounts:- name: check-mysql-persistent-storagemountPath: /mntvolumes:- name: check-mysql-persistent-storagepersistentVolumeClaim:claimName: rbd-pvc-restore [root@k8s-master01 rbd]# kubectl create -f restore-check-snapshot-rbd.yaml deployment.apps/check-snapshot-restore created
查看數(shù)據(jù)是否存在
[root@k8s-master01 rbd]# kubectl get po NAME READY STATUS RESTARTS AGE check-snapshot-restore-64b85c5f88-zvr62 1/1 Running 0 97s nginx-6799fc88d8-m5gj5 1/1 Running 1 3d5h wordpress-mysql-6965fc8cc8-6wt6j 1/1 Running 0 104m[root@k8s-master01 rbd]# kubectl exec -ti check-snapshot-restore-64b85c5f88-zvr62 -- ls bin etc lib mnt root sbin sys usr dev home media proc run srv tmp var[root@k8s-master01 rbd]# kubectl exec -ti check-snapshot-restore-64b85c5f88-zvr62 -- ls /mnt auto.cnf ibdata1 performance_schema ib_logfile0 lost+found test_snapshot ib_logfile1 mysql[root@k8s-master01 rbd]# kubectl exec -ti check-snapshot-restore-64b85c5f88-zvr62 -- ls /mnt/test_snapshot 1.txt [root@k8s-master01 rbd]# kubectl exec -ti check-snapshot-restore-64b85c5f88-zvr62 -- cat /mnt/test_snapshot/1.txt test for snapshot

測試無誤后清理數(shù)據(jù)(snapshotclass可以不刪除,后期創(chuàng)建rbd快照直接用該snapshotclass即可):

[root@k8s-master01 rbd]# kubectl delete -f restore-check-snapshot-rbd.yaml -f pvc-restore.yaml -f snapshot.yaml deployment.apps "check-snapshot-restore" deleted persistentvolumeclaim "rbd-pvc-restore" deleted volumesnapshot.snapshot.storage.k8s.io "rbd-pvc-snapshot" deleted

文件共享類型快照

操作步驟和塊存儲類型無區(qū)別,可以參考:官網(wǎng)

第九章 PVC克隆

[root@k8s-master01 rbd]# pwd /root/rook/cluster/examples/kubernetes/ceph/csi/rbd[root@k8s-master01 rbd]# cat pvc-clone.yaml --- apiVersion: v1 kind: PersistentVolumeClaim metadata:name: rbd-pvc-clone spec:storageClassName: rook-ceph-blockdataSource:name: mysql-pv-claimkind: PersistentVolumeClaimaccessModes:- ReadWriteOnceresources:requests:storage: 3Gi[root@k8s-master01 rbd]# kubectl create -f pvc-clone.yaml persistentvolumeclaim/rbd-pvc-clone created[root@k8s-master01 rbd]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mysql-pv-claim Bound pvc-fd8b9860-c0d4-4797-8e1d-1fab880bc9fc 3Gi RWO rook-ceph-block 110m rbd-pvc-clone Bound pvc-6dda14c9-9d98-41e6-9d92-9d4ea382c614 3Gi RWO rook-ceph-block 4s

需要注意的是pvc-clone.yaml的dataSource的name是被克隆的pvc名稱,在此是mysql-pv-claim,storageClassName為新建pvc的storageClass名稱,storage不能小于之前pvc的大小。

第十章 測試數(shù)據(jù)清理

如果Rook要繼續(xù)使用,可以只清理創(chuàng)建的deploy、pod、pvc即可。之后可以直接投入使用
數(shù)據(jù)清理步驟:

  • 首先清理掛載了PVC和Pod,可能需要清理單獨創(chuàng)建的Pod和Deployment或者是其他的高級資源

  • 之后清理PVC,清理掉所有通過ceph StorageClass創(chuàng)建的PVC后,最好檢查下PV是否被清理

  • 之后清理快照:kubectl delete volumesnapshot XXXXXXXX

  • 之后清理創(chuàng)建的Pool,包括塊存儲和文件存儲
    a) kubectl delete -n rook-ceph cephblockpool replicapool
    b) kubectl delete -n rook-ceph cephfilesystem myfs

  • 清理StorageClass:kubectl delete sc rook-ceph-block rook-cephfs

  • 清理Ceph集群:kubectl -n rook-ceph delete cephcluster rook-ceph

  • 刪除Rook資源:
    a) kubectl delete -f operator.yaml
    b) kubectl delete -f common.yaml
    c) kubectl delete -f crds.yaml

  • 如果卡住需要參考Rook的troubleshooting
    a) https://rook.io/docs/rook/v1.6/ceph-teardown.html#troubleshooting

  • for CRD in $(kubectl get crd -n rook-ceph | awk '/ceph.rook.io/ {print $1}'); do kubectl get -n rook-ceph "$CRD" -o name | xargs -I {} kubectl patch {} --type merge -p '{"metadata":{"finalizers": [null]}}' -n rook-ceph; done
  • 清理數(shù)據(jù)目錄和磁盤
  • 參考鏈接:https://rook.io/docs/rook/v1.6/ceph-teardown.html

    總結(jié)

    以上是生活随笔為你收集整理的k8s进阶篇-云原生存储ceph的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    亚洲a免费 | 中文字幕久久精品亚洲乱码 | 日日干日日操 | 在线国产一区二区 | 97超级碰碰碰视频在线观看 | 黄色的网站在线 | 国产精品久久久久久妇 | 香蕉久草| 日韩一区二区三区视频在线 | 欧美性猛片, | 日韩在线视频二区 | 亚洲欧美日韩精品久久奇米一区 | 久久婷婷五月综合色丁香 | 久久久久久久久久福利 | 久久精品男人的天堂 | 日韩成人黄色av | 手机版av在线 | 大荫蒂欧美视频另类xxxx | 亚洲精品久久在线 | 一区二区三区免费在线观看视频 | 又黄又爽又刺激的视频 | www99精品 | 亚洲精品在线一区二区三区 | 久久精品国产v日韩v亚洲 | 丁香五月亚洲综合在线 | 丁香婷婷在线观看 | 69国产盗摄一区二区三区五区 | 国产又粗又猛又爽又黄的视频免费 | 久草资源免费 | 免费在线观看不卡av | 午夜av不卡 | 色婷婷亚洲精品 | 亚洲成人黄色网址 | 江苏妇搡bbbb搡bbbb | 中文字幕在线观看资源 | 99久久久久国产精品免费 | 欧美成人精品三级在线观看播放 | 麻豆国产精品永久免费视频 | 中文字幕 国产精品 | 亚洲成人黄色av | 久久激情五月激情 | 国产永久免费高清在线观看视频 | 日韩免费中文字幕 | 五月激情av | 国产精品男女啪啪 | 一级片视频在线 | 亚洲理论电影网 | 成人在线一区二区三区 | 久久久综合电影 | 一区二区三区四区五区在线视频 | av三区在线 | 日韩av在线免费播放 | 亚洲精品伦理在线 | 色综合激情网 | 99成人免费视频 | 天天射综合网站 | 久久精品久久久久久久 | 丝袜一区在线 | 麻豆视频在线观看免费 | 成人av电影在线观看 | 人人爱人人做人人爽 | 欧美婷婷综合 | 国产一区二区在线观看视频 | 国产精品免费成人 | 亚洲精品一区二区三区高潮 | 夜夜躁日日躁狠狠躁 | 91九色成人蝌蚪首页 | 99热在线看 | 日本爱爱片| 欧美激情精品久久久久久变态 | 国产打女人屁股调教97 | 国产一级二级三级视频 | 欧美在线资源 | 精品国模一区二区 | 夜夜躁狠狠躁日日躁视频黑人 | 九九免费在线观看 | 日本在线中文在线 | 黄色精品国产 | 国产99视频在线观看 | 韩日视频在线 | 日韩手机在线观看 | 国产99久久久精品 | 国产破处精品 | 国产视频一区二区三区在线 | 日韩影视在线观看 | 五月综合色 | 在线 国产一区 | 国产精品k频道 | 精品国产一区二区三区在线 | 国产精品乱码久久久久久1区2区 | 欧美成人xxxx | 探花视频在线版播放免费观看 | 午夜精品久久久久久久爽 | 激情 一区二区 | 四虎在线免费 | 麻豆视频www | 国产无套视频 | 午夜精品一区二区三区四区 | av在线直接看 | 久草视频在线资源站 | 天天插日日操 | 日韩欧美一区二区在线 | 亚洲综合在线一区二区三区 | 亚洲精选视频免费看 | 在线观看视频黄 | 99成人免费视频 | 免费久久99精品国产婷婷六月 | 黄免费网站| 高清av在线| 一区二区三区在线影院 | 黄色在线免费观看网站 | 成年人免费电影在线观看 | 精品国产欧美一区二区三区不卡 | 亚洲丝袜一区 | 日本在线观看一区二区三区 | 在线视频 你懂得 | 99在线视频观看 | 国产日韩av在线 | 中文字幕第一 | 国内精品视频在线 | 色婷婷av国产精品 | 日韩成人精品 | 国产99久久久久 | 国产最顶级的黄色片在线免费观看 | 中文字幕在线播放日韩 | 亚洲视频 在线观看 | 在线免费黄色av | 日韩一级精品 | 国产精品18久久久久久久网站 | 国产视频 亚洲精品 | 婷婷丁香自拍 | 午夜精品一区二区三区在线视频 | 人人玩人人添人人 | 日日草视频 | 亚洲精品av中文字幕在线在线 | 黄色一级大片在线免费看产 | 又黄又爽又无遮挡免费的网站 | a极黄色片 | 久久综合福利 | 五月婷婷另类国产 | 在线观看视频国产 | 成人午夜电影在线 | 97精品国产97久久久久久久久久久久 | 天堂av网址 | 日韩av在线免费看 | 国产在线最新 | 毛片二区 | 一 级 黄 色 片免费看的 | 中文字幕制服丝袜av久久 | 免费国产ww| 国产黄色精品在线 | 色婷婷综合久久久 | 91色一区二区三区 | 观看免费av| 天天草天天 | 日本精品视频在线观看 | 中文字幕在线观看一区二区三区 | 久久综合欧美精品亚洲一区 | 国产精品嫩草影院123 | 久久国产高清视频 | 日韩专区在线播放 | 亚洲国产成人在线播放 | 岛国av在线免费 | 久久久久女教师免费一区 | 国产黄色片一级三级 | 九色91av| 日韩在观看线 | 波多野结衣在线播放一区 | 在线视频你懂 | 人人爱夜夜操 | www色网站 | 欧美亚洲成人免费 | 日本爽妇网 | 丝袜网站在线观看 | 国产视 | 亚洲一区动漫 | 最近免费观看的电影完整版 | 天天干天天射天天爽 | 91亚色视频在线观看 | 91黄站| 在线看国产| 日本色小说视频 | 国产成人在线网站 | 亚洲狠狠丁香婷婷综合久久久 | 欧美成亚洲 | 免费在线成人av电影 | 亚洲精品视频大全 | 国产 av 日韩| 久草在线精品观看 | 热久久国产精品 | 亚洲黄色三级 | 最新中文字幕视频 | 曰韩在线| 国语精品免费视频 | 国内精品久久久久影院优 | a天堂免费 | 国内久久久| 国产区在线视频 | 在线看的毛片 | 久热电影 | 国产精品国产三级国产不产一地 | 亚洲国产日韩一区 | a色视频| 精品在线亚洲视频 | 一区二区三区高清在线 | 草久在线播放 | 免费看91的网站 | 天堂素人在线 | 在线观看mv的中文字幕网站 | 国产在线观看你懂的 | 国产亚洲成人精品 | 91久久久国产精品 | 婷婷六月天综合 | 久草在线观 | 中文字幕欧美日韩va免费视频 | 国产日韩欧美综合在线 | 91看片麻豆| 大荫蒂欧美视频另类xxxx | 亚洲精品一区中文字幕乱码 | 深爱五月激情五月 | 国产精美视频 | 麻豆久久久久 | 色综合天天狠天天透天天伊人 | 97人人超碰在线 | 国色天香第二季 | 亚洲在线视频免费 | 日韩在线免费看 | 午夜手机电影 | a级片久久久 | 偷拍精偷拍精品欧洲亚洲网站 | v片在线播放 | 日韩欧美在线视频一区二区三区 | 久热免费在线 | 中文字幕在线免费97 | 日韩av影视在线 | 国产成人在线精品 | 成人免费视频播放 | 国产黄色片免费看 | 国产1级毛片 | 正在播放日韩 | 91中文字幕网 | 免费久久99精品国产婷婷六月 | 不卡中文字幕在线 | 国产成人99久久亚洲综合精品 | 精品成人免费 | 欧美天天综合网 | 国产 日韩 在线 亚洲 字幕 中文 | 久久精品视频在线免费观看 | 狠狠久久伊人 | 婷婷国产精品 | 在线韩国电影免费观影完整版 | 亚洲国产网站 | 久久在现 | 免费福利视频导航 | 天天射射天天 | 五月婷婷激情综合网 | 人人爽人人爽 | 欧美先锋影音 | 精品国产成人av在线免 | 操高跟美女 | 国产精在线 | 国产一级精品在线观看 | 亚洲在线看 | 免费观看国产成人 | 国产精品久久久久久久久免费 | 999电影免费在线观看2020 | 国产一二三四在线观看视频 | 天天操夜夜拍 | 免费特级黄色片 | 人人插人人澡 | 免费视频97 | 黄色日视频| 激情深爱| 国产在线理论片 | 国产视频日本 | 玖玖色在线观看 | 美女网站免费福利视频 | 欧美一级视频免费看 | 国产午夜精品一区二区三区欧美 | 亚洲日日射 | 激情丁香婷婷 | 欧美激情第十页 | 国产在线观看你懂得 | 看片一区二区三区 | 五月婷婷六月丁香激情 | 在线观看黄色 | 久久激情综合 | 9在线观看免费高清完整版在线观看明 | 精品9999| 99久高清在线观看视频99精品热在线观看视频 | 特级西西444www大胆高清无视频 | 99在线免费观看视频 | av成人亚洲 | 日韩精品一区二区三区高清免费 | 私人av | 免费观看十分钟 | 四虎国产精 | 精品国产欧美一区二区 | 久久久精品久久 | 国产婷婷精品 | 国产中文字幕av | 亚洲精品视频在线观看免费视频 | 九九热在线视频免费观看 | 欧美精品一区二区免费 | 色婷婷激情 | 日韩一区二区三免费高清在线观看 | 中文字幕在线观看日本 | 成人资源网 | 欧美一级特黄aaaaaa大片在线观看 | 久草视频视频在线播放 | 草久视频在线观看 | 99婷婷狠狠成为人免费视频 | 久久a热6| 亚洲影院色 | 日韩毛片精品 | 久久久在线视频 | 日韩手机视频 | 色就是色综合 | 91麻豆国产福利在线观看 | 久久久久久久99 | 国产剧情av在线播放 | 九九九热 | 欧美怡红院视频 | 香蕉91视频 | 日韩xxxx视频| 麻豆91视频 | 99在线看 | 免费情趣视频 | 免费在线观看一区二区三区 | 伊人狠狠色| 久久久久久综合网天天 | 中文字幕在线看片 | 日韩精品综合在线 | 摸阴视频 | 天天操天天干天天爱 | 一本大道久久精品懂色aⅴ 五月婷社区 | 色偷偷中文字幕 | 久久久久在线观看 | 日韩字幕 | 久久久久女人精品毛片九一 | 亚洲精品视频免费在线观看 | 日韩中字在线 | 91精品91| 天天综合五月天 | 激情网综合| 国产精品一区二区免费视频 | 五月婷婷.com | 日韩精品免费一区二区 | 亚洲一区 av| 日本精品久久久久久 | 久草精品视频在线看网站免费 | 在线观看视频免费大全 | 一区二区三区播放 | 日韩在线视频免费播放 | 国产黄色精品在线 | 中文字幕在线观看的网站 | 久久看片 | 成人一级影视 | 久久国产一区二区 | 91视频在线观看免费 | 中文不卡视频在线 | 欧美日韩中文视频 | 91在线视频网址 | 99久久久| 国产探花视频在线播放 | 久久精品毛片 | 免费在线观看av片 | av电影免费 | 成人理论在线观看 | 欧美另类老妇 | 韩国一区在线 | 国产99免费视频 | 激情偷乱人伦小说视频在线观看 | 天堂av中文字幕 | 成人免费视频在线观看 | 国产女人免费看a级丨片 | 久久久久久国产精品 | 黄色免费在线视频 | 色视频网址| 国产小视频国产精品 | 色婷婷六月天 | 国产精品毛片久久久久久 | 久久久久国产成人精品亚洲午夜 | 国产精品国产毛片 | 国内视频一区二区 | 91精品国产乱码久久 | 91视频最新网址 | 国产精品第一视频 | 色中色亚洲 | 91九色在线视频观看 | 国产一区二区三区免费视频 | 999成人国产| 一区二区三区免费在线播放 | 国产一区在线看 | 一区二区三区四区精品视频 | 免费视频成人 | 亚洲四虎在线 | 91桃色免费视频 | 久久人人爽爽 | 久久久精品 | 日本免费一二三区 | 在线观看一区 | 亚洲一级免费观看 | 亚洲乱亚洲乱亚洲 | 六月丁香六月婷婷 | 国产成人精品久久二区二区 | 成人欧美日韩国产 | 丁香六月在线观看 | 免费观看黄色av | 波多野结衣在线视频免费观看 | 久久久国产精品网站 | 午夜视频在线观看一区二区三区 | 国产成人精品久久久久 | 五月婷婷在线视频观看 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 在线国产视频 | 在线免费观看涩涩 | 久久精品国产美女 | 免费在线观看中文字幕 | 色婷婷综合久久久 | 日本久久免费电影 | 国产精品午夜在线 | 99久久影视 | 久久国产亚洲精品 | 日韩一区二区三区免费视频 | 日韩精品2区 | 91九色蝌蚪视频 | 96香蕉视频 | 91九色porn在线资源 | 国产精品96久久久久久吹潮 | 久久五月天色综合 | 欧美日韩国产在线观看 | 国产一区久久 | 亚洲精品播放 | 日韩av中文在线 | 免费视频黄色 | 最近中文字幕免费av | 免费三级网 | 99热精品视 | 国产精品区在线观看 | 欧美精品一区二区三区一线天视频 | 中文字幕一区二区三区四区视频 | 可以免费看av | 国产成人精品aaa | 日本精品视频网站 | 中文一二区 | 精品一区二区免费 | 久久久久麻豆v国产 | 国产美女免费观看 | 在线观看视频中文字幕 | 免费观看一区二区 | 伊人天天狠天天添日日拍 | 日韩精品一区二区三区视频播放 | 2021av在线| 亚洲成av| 国产九色视频在线观看 | 国产精品免费观看国产网曝瓜 | 国产伦理一区二区 | 91麻豆精品 | 99久久婷婷国产综合亚洲 | 日韩精品一区电影 | 国产高清永久免费 | 日韩一二三 | 日韩精品视频免费在线观看 | 亚洲欧美偷拍另类 | 午夜在线免费观看 | 黄色av一区二区三区 | 成人免费网站视频 | 在线观看香蕉视频 | 福利一区二区三区四区 | 亚洲人久久久 | 国产精品久久婷婷六月丁香 | 69国产在线观看 | 五月婷婷黄色网 | 亚洲国产精品久久 | 少妇按摩av | 中文电影网 | 亚洲综合婷婷 | 又黄又爽的视频在线观看网站 | 国产在线观看中文字幕 | 精品在线亚洲视频 | 欧美激情xxxx | 天天干,天天操 | 在线观看视频97 | 日韩av线观看 | 欧美久久久久久久久中文字幕 | 精品国产一区二区三区噜噜噜 | 午夜在线看| 国产精品久久久久久久久久久久冷 | 中文字幕成人在线 | 狠狠操精品 | 中文一区在线观看 | 中文字幕久久久精品 | 欧美国产大片 | 探花视频网站 | 国产美女网站视频 | 色97在线 | 午夜在线免费视频 | 91精选在线| 中文字幕专区高清在线观看 | 国产美女主播精品一区二区三区 | 中文综合在线 | 日日爱视频| 午夜电影中文字幕 | 深夜免费福利网站 | 狠狠色噜噜狠狠狠狠2022 | 97福利在线观看 | 国产韩国日本高清视频 | 中文字幕亚洲五码 | 国产精品va | 久久公开免费视频 | 国产精品av在线免费观看 | 欧日韩在线视频 | 国产婷婷色 | 国产亚洲91| 久久成人黄色 | 亚洲欧美精品一区 | 懂色av一区二区三区蜜臀 | 又色又爽又黄 | 日韩xxxbbb| av免费电影在线观看 | 五月天伊人 | 中文字幕一区二区三区乱码不卡 | 久久99国产精品免费 | 久久久久成人精品 | 欧美孕交vivoestv另类 | 精品一区二区在线播放 | 国产精品亚州 | 一级欧美一级日韩 | 欧美激情视频在线免费观看 | 在线观看中文字幕视频 | 色综合婷婷久久 | 国产成人精品午夜在线播放 | 成人a级黄色片 | 亚洲国产天堂av | 在线免费观看国产 | 人人爱人人添 | 日韩欧美一区视频 | 国产精品麻豆91 | 日韩在线观看网站 | 狠狠狠狠狠狠 | 成人黄色视 | 国产毛片久久 | 欧美黄在线 | 午夜美女福利直播 | 色综合久久中文字幕综合网 | 波多野结衣精品视频 | 国产精品一区二区久久国产 | 国产 日韩 中文字幕 | 成人av网址大全 | 97超碰人人澡人人爱学生 | 国产一区二区中文字幕 | 免费在线观看污网站 | 欧美一区二区三区不卡 | 婷婷在线综合 | 亚洲精品久久久久中文字幕二区 | 99re6热在线精品视频 | 国产专区视频 | 日韩欧美在线视频一区二区三区 | 欧美日韩在线免费视频 | 激情五月五月婷婷 | 欧美成人影音 | 国产成人高清av | 色婷久久 | 久久久这里有精品 | 国产视频精品在线 | 美女网站视频一区 | 欧美9999| 在线看片91 | 免费不卡中文字幕视频 | 亚洲无吗视频在线 | 2022国产精品视频 | 狠狠操夜夜 | 日本一区二区免费在线观看 | 久久免费视频网站 | 99久热| 国产麻豆成人传媒免费观看 | 色综合天天视频在线观看 | 91av手机在线观看 | 日韩免费视频在线观看 | 黄色av电影一级片 | 天天射天天色天天干 | 午夜精品成人一区二区三区 | 婷婷中文在线 | av超碰在线 | 成人免费看片98欧美 | 人人干干人人 | 日韩成人免费在线观看 | 久久久麻豆 | 日韩精品网址 | 中文字幕在线视频网站 | 激情久久一区二区三区 | 久久欧美在线电影 | 在线探花 | 亚洲国产精品一区二区尤物区 | 久久精品国产免费 | 天天射,天天干 | 亚洲精品在线免费播放 | 999久久久免费视频 午夜国产在线观看 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 中文字幕电影高清在线观看 | 亚洲视频axxx | 精品国产乱码久久久久久1区2匹 | 激情综合站 | 99热精品在线观看 | 成人在线视频一区 | 国产成人免费精品 | 久久er99热精品一区二区 | 999久久久久 | 欧美最猛性xxxxx免费 | 亚洲一级黄色大片 | 天天操天天干天天爱 | 精品国产_亚洲人成在线 | 超碰日韩| 视频在线99 | 亚洲三级av | 99视频偷窥在线精品国自产拍 | 国产精品igao视频网网址 | 最新不卡av| 国产精品一区二区美女视频免费看 | ww亚洲ww亚在线观看 | 夜夜夜夜操| 国产免费作爱视频 | 久久午夜精品视频 | 亚洲国产成人高清精品 | 黄色av网站在线观看 | 中文字幕电影一区 | 丁香花在线观看免费完整版视频 | 国产色婷婷精品综合在线手机播放 | 亚洲精品国产自产拍在线观看 | 国产精品黄色av | 伊人影院99 | 在线免费观看麻豆视频 | 中文字幕a∨在线乱码免费看 | 天天干,天天插 | 一级免费片 | 在线观看视频免费大全 | 日韩精品久久久久久中文字幕8 | 一区二区精品在线视频 | 一区二区不卡 | 免费网站色 | 亚洲高清免费在线 | 色婷婷一 | 国产精品久久久久久久久免费 | av性在线| 在线看成人av | 日本女人在线观看 | 麻豆影视在线播放 | 国产va精品免费观看 | 免费av网址大全 | 成人avav| 人人躁| 免费在线播放黄色 | 国产精品日韩在线 | 天天摸天天操天天舔 | 成年人免费观看在线视频 | 成人性生交大片免费看中文网站 | 久久精品第一页 | 国产资源站 | 日本电影黄色 | 香蕉影视 | 五月婷在线观看 | 91麻豆视频网站 | avcom在线| 伊人久久婷婷 | 国产一区二区三区高清播放 | 色婷婷a| 国产精品久久久久久久久久三级 | 日日弄天天弄美女bbbb | 丝袜制服综合网 | 免费看特级毛片 | 色综合小说 | 99在线观看免费视频精品观看 | 国产a级精品| h网站免费在线观看 | 91porny九色在线播放 | 亚洲午夜精品久久久久久久久久久久 | 日韩在线视频国产 | 97超碰福利久久精品 | 国产电影黄色av | 久久久精品午夜 | 中文字幕大全 | 久久久九色精品国产一区二区三区 | 亚洲天天摸日日摸天天欢 | 伊人色播| 三上悠亚一区二区在线观看 | 成人性生交大片免费观看网站 | 日本在线视频一区二区三区 | 99视频免费播放 | 国产在线观看一区 | 黄色免费网站下载 | www夜夜操 | 国产精品观看 | 在线观看成年人 | 在线观看黄av | 91丨九色丨高潮丰满 | 久久99偷拍视频 | 五月婷婷在线综合 | 日日夜夜精品视频天天综合网 | 色综合久久久久久久 | 亚洲天堂va | 日韩久久精品一区二区三区 | 中文久草| 麻豆91精品 | 中文字幕在线观看国产 | 久久99国产综合精品免费 | 国内小视频在线观看 | 午夜视频亚洲 | 免费a视频 | 成人永久视频 | 天天射网 | 99久久精品无免国产免费 | 欧美精品一区二区性色 | 日日噜噜噜噜夜夜爽亚洲精品 | 丝袜美腿一区 | 欧美在一区 | 亚洲欧美视频一区二区三区 | 97免费公开视频 | 日韩精品一区二区三区免费观看 | 国产一区二区免费看 | 日日爱夜夜爱 | 九九热精品在线 | 久久专区 | 精品国产一区二区在线 | 毛片a级片 | 日日夜夜免费精品视频 | 免费看日韩 | 欧美精品成人在线 | 国产精品视频免费在线观看 | 丁香婷婷深情五月亚洲 | 日日干天夜夜 | 亚洲精品视 | 天天爽天天射 | 色婷婷激情 | 亚洲欧洲在线视频 | 欧美精品xx | 国产三级精品在线 | 亚洲乱码在线 | 色干干 | 欧美精品三级在线观看 | 婷香五月 | 亚洲国产中文字幕在线观看 | 国产精品视频免费在线观看 | 国产一区久久 | 国产美女永久免费 | 又色又爽又黄高潮的免费视频 | 日韩中文字幕免费在线播放 | 国产视频一级 | 成人黄色小说在线观看 | 成人久久18免费网站 | 69久久久久久久 | 一区二区三区高清不卡 | 亚洲在线综合 | 91免费高清 | 久久久久久久国产精品 | 五月婷婷狠狠 | 在线观看精品黄av片免费 | 91人人干| 亚洲国产精彩中文乱码av | 亚洲精品久久激情国产片 | 一级一片免费看 | 亚洲天堂毛片 | 九九九九九国产 | 免费成人黄色片 | 91视频在线观看大全 | 中文字幕在线观看日本 | 深爱五月网 | 国产伦精品一区二区三区免费 | 国产免费观看高清完整版 | 天天操网 | 国产一区二区久久精品 | 97国产情侣爱久久免费观看 | 国产精品日韩在线观看 | 国内成人综合 | 亚洲国产精品va在线看黑人动漫 | 国产一级在线免费观看 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 成人午夜电影在线观看 | 九九久久国产 | 国产高清免费视频 | 91麻豆精品国产午夜天堂 | 婷婷激情五月综合 | 国产永久免费高清在线观看视频 | 亚洲欧美日韩在线一区二区 | 国产又粗又猛又黄又爽 | 亚洲精品综合一区二区 | 探花视频在线观看+在线播放 | 2021久久| 日本一区二区三区免费看 | 国产99久久精品 | 国产黄av | 草久热| 日批网站免费观看 | 久久久伊人网 | 日韩在线免费小视频 | 久久久国产精品电影 | 成人亚洲免费 | 中文字幕日韩有码 | 深爱开心激情网 | 五月天天色 | 天天色官网 | 亚洲一二三久久 | 狠狠狠色狠狠色综合 | 亚洲精品在线免费观看视频 | 婷婷色av | 开心丁香婷婷深爱五月 | 91久久丝袜国产露脸动漫 | 欧美精品久久久久a | 国产高清小视频 | 人人干人人草 | 波多野结衣在线播放一区 | 日韩在线视频观看免费 | 成年人免费在线观看 | 亚洲精品小视频在线观看 | 国产一区二区在线影院 | 国产精品精品久久久久久 | 最近中文字幕在线中文高清版 | 在线亚洲人成电影网站色www | 亚洲一区久久 | 亚洲天堂精品 | 日韩成片 | 91av社区| 国产成人在线观看免费 | 婷婷在线资源 | 亚洲欧美日韩一级 | 欧美了一区在线观看 | 午夜91在线 | 99这里都是精品 | 成人免费毛片aaaaaa片 | 成人手机在线视频 | 成人精品国产 | 色狠狠综合天天综合综合 | 欧美一级视频免费 | 一级黄毛片 | 亚洲精品在线免费观看视频 | 成人av av在线 | 97精品在线观看 | 久青草电影 | 亚洲午夜久久久久 | 国产手机视频在线播放 | 在线欧美中文字幕 | 欧美日韩一区二区在线观看 | 992tv人人草| 国产中文字幕视频在线观看 | 久草网视频在线观看 | 欧美日本一区 | 超碰日韩在线 | a级一a一级在线观看 | 在线免费观看视频你懂的 | 四虎成人免费影院 | 69精品久久 | 97色涩| 精品一区二区免费在线观看 | 丰满少妇在线观看资源站 | 色午夜影院 | 日韩av有码在线 | 91精品久久久久久粉嫩 | 久久图 | 99久久综合精品五月天 | 日韩伦理片hd | 97人人澡人人爽人人模亚洲 | 视频 天天草 | 久久久精品 一区二区三区 国产99视频在线观看 | 日本视频久久久 | 国产精品门事件 | 日韩在线播放av | 亚洲激情视频在线观看 | 操操日日| 久久久天堂 | 草久久精品| 欧美日韩国产精品爽爽 | 91麻豆精品国产91久久久久久久久 | 日韩色一区二区三区 | 亚洲激情一区二区三区 | 一区二区三区免费在线 | 亚洲精品国产精品国产 | 日韩在线中文字幕视频 | 97av视频在线观看 | 日韩电影中文字幕在线观看 | 西西444www高清大胆 | 日韩欧美国产精品 | 久久久久综合 | www.久久久com | 久久国产精品久久精品国产演员表 | 在线小视频| 国产欧美综合视频 | 欧美日韩国产在线一区 | 怡红院久久 | 中文字幕在线观看av | 亚洲精品在线播放视频 | 91在线观看欧美日韩 | 日韩在线观看中文 | 久久午夜电影院 | 黄网站免费久久 | 9草在线 | 久久久免费高清视频 | 亚洲在线黄色 | 日韩影视精品 | 天天天天色射综合 | 亚洲免费专区 | 久久久久久久免费 | 亚洲精品久久激情国产片 | 久久天天躁夜夜躁狠狠85麻豆 | 免费观看一级特黄欧美大片 | 国产精品成人自产拍在线观看 | 中文字幕xxxx | 久久久国产在线视频 | 99精品欧美一区二区三区 | 五月婷婷丁香网 | 青青草华人在线视频 | 精品理论片 | 国产麻豆剧果冻传媒视频播放量 | www.一区二区三区 | 久久av网址 | 久久成人一区二区 | 日韩在线观看视频免费 | 在线一区二区三区 | va视频在线 | 久久久久久久久久影院 | 色综合久久精品 | av丝袜在线| 97福利在线 | 亚洲首页| 久久久片| 国产精品成人一区二区 | 综合伊人av | 婷婷五月在线视频 | 人成在线免费视频 | 这里只有精彩视频 | 黄色软件视频大全免费下载 | 精品久久久成人 | 日韩女同一区二区三区在线观看 | 亚洲激情视频在线 | www五月天| 69国产成人综合久久精品欧美 | 亚洲三级影院 | 久久爱992xxoo| 久久国产精彩视频 | 毛片基地黄久久久久久天堂 | 亚洲春色综合另类校园电影 | 久久99久久久久久 | 久久a v电影 | 欧美黑人性猛交 | 丁香婷婷激情啪啪 | 国产视频一区二区在线 | 岛国大片免费视频 | 成人午夜剧场在线观看 | 99在线视频免费观看 | 69视频永久免费观看 | 五月婷婷视频在线 | 亚洲视频资源在线 | 亚洲欧美日韩精品一区二区 | 国产剧情在线一区 | 国产免费又爽又刺激在线观看 | 日韩毛片在线播放 | 91丨porny丨九色 | 久久久久久黄 | www激情com | 天天色成人 | 久久看片网| 国产最新在线 | 欧美一区二视频在线免费观看 | 免费精品视频 | 欧美日韩午夜爽爽 | 成人在线一区二区三区 | 人人爱夜夜操 | 天堂网av 在线 | 亚洲国产日韩一区 | 婷婷综合伊人 | 国产在线黄色 | 久久这里 | 精品久久亚洲 | 欧洲精品码一区二区三区免费看 | 久久99精品久久久久蜜臀 | 国产+日韩欧美 | 午夜美女网站 | 超碰人人在 | 国产在线播放观看 | 9999精品 | 亚洲视频播放 | 久久国产成人午夜av影院潦草 | 日韩精品久久久久久久电影99爱 | 99久久日韩精品视频免费在线观看 | 九九热免费精品视频 | 丁香婷婷深情五月亚洲 | 欧美色综合 | 成人在线免费看视频 | 热re99久久精品国产99热 | 免费网站v| 黄色在线视频网址 | 狠狠色伊人亚洲综合成人 | 国偷自产中文字幕亚洲手机在线 | 亚洲国产免费网站 | 99久热在线精品视频观看 | 999视频网| 亚州欧美视频 | 日日夜日日干 | 日本三级全黄少妇三2023 |