本次实验是以前面的实验为基础,使用的是模拟使用kubernetes集群部署一个企业版的wordpress为实例进行研究学习,主要的过程如下:
1.mysql deployment部署, wordpress deployment部署, wordpress连接mysql时,mysql的 pod ip易变
2.为mysql创建 service,申请固定 service lp
3. wordpress外部可访问,使用 node port类型的 service
4. nodeport类型的 service需要映射端口,不是很优雅
5.使用 ingressl
6.mysq1的pod旦被重新调度,数据就会丢失
7. hostpath将pod数据挂载至本地,然后使用标签选择器将mysq1lpod固定在一个节点上
8.共享存储以持久化数据,即使po挂掉,被重新拉起,也能自动挂载存储
本次实验解决使用共享存储数据持久化的问题实验使用NFS作为共享存储
一 使用NFS共享存储
1.1 安装NFS
再server3和server1上安装nfs
[root@docker-server1 ~]# yum -y install nfs-utils
[root@docker-server3 ~]# yum -y install nfs-utils
[root@docker-server3 ~]# vi /etc/exports
/data *(rw,no_root_squash)
[root@docker-server3 ~]# systemctl restart nfs
[root@docker-server3 ~]# systemctl status nfs
[root@docker-server3 ~]# showmount -e
Export list for docker-server3:/data *
1.2 到server1上进行挂载测试
[root@docker-server1 ~]# mount -t nfs 192.168.132.133:/data /mnt
[root@docker-server1 ~]# df -hT
192.168.132.133:/data nfs4 47G 7.3G 40G 16% /mnt
[root@docker-server1 ~]# umount /mnt/
nfs配置成功
1.3 数据库使用共享存储挂载卷
[root@docker-server3 ~]# mkdir /data/mysql
[root@docker-server1 deployment]# vi mysql-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
namespace: default
spec:
replicas:1selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
volumes:-name: mydata
nfs:
server:192.168.132.133path:/data/mysql
containers:-name: mysql
image: mysql:5.7volumeMounts:-name: mydata
mountPath:/var/lib/mysql
ports:- containerPort: 3306
env:-name: MYSQL_ROOT_PASSWORD
value: RedHat123-name: MYSQL_DATABASE
value: wordpress
[root@d