# 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
++++++++++++++++++++++++++++++++++++++++