云计算之 docker 集群管理_ K8S_05 wordpress项目01_PV_PVC应用

# 5. k8s实现wordpress项目

## 5.1 准备NFS共享存储

master节点上操作
yum install -y nfs-utils-* ##node 服务器上也需要安装nfs
mkdir /data /code
vim /etc/exports
/data 192.168.189.0/24(rw,async,no_root_squash,no_all_squash)
/code 192.168.189.0/24(rw,async,no_root_squash,no_all_squash)

systemctl restart rpcbind
systemctl restart nfs
systemctl enable rpcbind
systemctl enable nfs
showmount -e 192.168.189.88



++++++++++++++++++++++++++++++++++
## 5.2 MYSQL PV定义

mkdir -p /opt/yml/wordpress
cd /opt/yml/wordpress
cat > nfs_pv_data.yml<<EOF
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv001
  labels:
    type: nfs001
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: "/data"
    server: 192.168.189.88
    readOnly: false
EOF



++++++++++: 配置文件说明

capacity:

用于定义PV的存储容量,当前只支持自定义大小,未来会实现其他能力如:IOPS、吞吐量。
accessModes:
用于定义资源的访问方式,受限于存储底层的支持,访问方式包括以下几种:

ReadWriteOnce – 被单个节点mount为读写rw模式

ReadOnlyMany – 被多个节点mount为只读ro模式

ReadWriteMany – 被多个节点mount为读写rw模式

persistentVolumeReclaimPolicy:

用于定义资源的回收方式,也首先与存储底层的支持,现有的回收策略:

Retain – 手动回收

Recycle – 删除数据 ("rm -rf /thevolume/*")

Delete – 通过存储后端删除卷,后端存储例如AWS EBS, GCE PD或Cinder等。

目前只有NFS和HostPath支持Recycle策略,AWS EBS、GCE PD、Azure Disk、Cinder支持Delete策略。
+++++++++++++++++
## 5.3 WordPress PV定义

cd /opt/yml/wordpress

cat > nfs_pv_code.yml<<EOF
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv002
  labels:
    type: nfs002
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: "/code"
    server: 192.168.189.88
    readOnly: false
EOF



+++++++++++++++++++++++++++++++++++++

创建PV
cd /opt/yml/wordpress

kubectl create -f nfs_pv_data.yml
kubectl create -f nfs_pv_code.yml

查看pv:
kubectl get pv



## 删除pv:
kubectl delete pv pv002
+++++++++++++++++++++++++++++++++++++++++++++

PVC就是从PV里面划出来的一定大小的空间

PVC应用的时候,是关联 PV的name 名称的,而SVC应用的时候,是关联 RC 和 Deployment labels名称 。

上传或下载,mysql镜像到master 节点

导入镜像:
cd /opt/yml/wordpress
wget http://106.12.88.74/softdown/k8s/docker-mysql-5.7.tar.gz
docker load -i docker-mysql-5.7.tar.gz

给镜像打tag
docker tag b7dc06006192 192.168.189.88:5000/dfsc/mysql:5.72

将打标好的mysql镜像,上传到 resgister
docker push 192.168.189.88:5000/dfsc/mysql:5.72

## 5.4 MySQL PVC定义
cd /opt/yml/wordpress

cat > nfs_pvc_mysql.yml<<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv001
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
EOF





## 5.5 WordPress PVC定义

cat > nfs_pvc_wp.yml<<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv002
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
EOF


kubectl create -f nfs_pvc_mysql.yml
kubectl create -f nfs_pvc_wp.yml



++++++++++++++++++++++++++++++++++++++++