一、所有节点安装nfs-utils,master节点成为nfs服务端
[root@k8s-master nfs]# yum install -y nfs-utils
[root@k8s-node-1 ~]# yum install -y nfs-utils
[root@k8s-node-2 ~]# yum install -y nfs-utils
二、创建共享目录
[root@k8s-master nfs]# mkdir /data
三、创建配置文件
[root@k8s-master nfs]# cat /etc/exports
/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
四、启动服务
[root@k8s-master nfs]# systemctl restart rpcbind nfs-utils
[root@k8s-master nfs]# systemctl enable rpcbind nfs-utils
五、定义mysql-deploy.yaml 文件
[root@k8s-master tomcat]# cat mysql-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
template:
metadata:
labels:
app: mysql
spec:
volumes:
- name: mysql
nfs:
server: 10.0.0.11
path: /data/tomcat-mysql
nodeName: 10.0.0.12
containers:
- name: mysql
image: 10.0.0.11:5000/mysql:5.7
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: '123456'
六、定义mysql-svc.yml 文件
[root@k8s-master tomcat]# cat mysql-svc.yml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
targetPort: 3306
selector:
app: mysql
七、定义tomcat-deploy.yaml 文件
[root@k8s-master tomcat]# cat tomcat-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myweb
spec:
replicas: 1
template:
metadata:
labels:
app: myweb
spec:
nodeName: 10.0.0.12
containers:
- name: myweb
image: 10.0.0.11:5000/tomcat-app:v2
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: '10.254.55.178'
- name: MYSQL_SERVICE_PORT
value: '3306'
八、定义tomcat-svc.yaml 文件
[root@k8s-master tomcat]# cat tomcat-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30009
selector:
app: myweb
九、启动服务
[root@k8s-master tomcat]# kubectl delete -f .
deployment "mysql" deleted
service "mysql" deleted
deployment "myweb" deleted
service "myweb" deleted
十、查看调度节点
[root@k8s-master tomcat]# kubectl get all -o wide
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deploy/mysql 1 1 1 1 6s
deploy/myweb 1 1 1 1 6s
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
svc/kubernetes 10.254.0.1 <none> 443/TCP 5h <none>
svc/mysql 10.254.40.200 <none> 3306/TCP 6s app=mysql
svc/myweb 10.254.196.212 <nodes> 8080:30009/TCP 6s app=myweb
NAME DESIRED CURRENT READY AGE CONTAINER(S) IMAGE(S) SELECTOR
rs/mysql-51675339 1 1 1 6s mysql 10.0.0.11:5000/mysql:5.7 app=mysql,pod-template-hash=51675339
rs/myweb-3785031611 1 1 1 6s myweb 10.0.0.11:5000/tomcat-app:v2 app=myweb,pod-template-hash=3785031611
NAME READY STATUS RESTARTS AGE IP NODE
po/mysql-51675339-6n9hn 1/1 Running 0 6s 172.18.99.3 10.0.0.12
po/myweb-3785031611-qzjxn 1/1 Running 0 6s 172.18.99.2 10.0.0.12
十一、访问10.0.0.12:30009

十二、服务端data目录下有数据库文件,node2节点上有nfs的挂载
[root@k8s-master tomcat]# ls /data/tomcat-mysql/
auto.cnf HPE_APP ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 mysql performance_schema sys
[root@k8s-node-1 ~]# df -Th|grep nfs
10.0.0.11:/data/tomcat-mysql nfs4 48G 4.2G 44G 9% /var/lib/kubelet/pods/0ac3d7ef-a7b4-11ea-84fc-000c29661bc0/volumes/kubernetes.io~nfs/mysql
十三、删除数据库资源,会立即起新的资源,数据不丢失
[root@k8s-master tomcat]# kubectl delete po/mysql-51675339-6n9hn
0 Comments