Centos7 k8s tomcat-app项目持久化

一、概念

  PV(Persistent Volume):相当于定义一个存储资源池

  PVC(Persistent Volume Claim):分配给谁用

  1、master端安装共享存储nfs服务器

[root@k8s-node2 ~]# yum install nfs_utils.x86_64 -y
[root@k8s-master ~]# vim /etc/exports
/data  192.0.0.0/24(rw,async,no_root_squash,no_all__squash)
[root@k8s-master ~]# systemctl restart rpcbind
[root@k8s-master ~]# systemctl restart nfs


使用帮助文档
man no_root_sq
然后搜索
/no_root_sq 

   2、创建配置文件

[root@k8s-master ~]# vim tomcat-mysql_pv.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: tomcat labels: type: tomcat spec: capacity: storage: 10Gi accessModes:
- ReadWriteMany persistentVolumeReclaimPolicy: Recycle nfs: path: "/data/tomcat" server: 192.168.125.130 readOnly: false

  3、创建PV

[root@k8s-master ~]# kubectl create -f tomcat-mysql_pv.yaml 
persistentvolume "tomcat" created
[root@k8s-master ~]# kubectl get pv
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGE
tomcat 10Gi RWX Recycle Available 3m

  4、创建PVC配置文件

[root@k8s-master ~]# vim tomcat-mysql_pvc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: tomcat
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

  5、创建pvc

[root@k8s-master ~]# kubectl create -f tomcat-mysql_pvc.yaml 
persistentvolumeclaim "tomcat" created
[root@k8s-master ~]# kubectl get pv
NAME      CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS    CLAIM            REASON    AGE
tomcat    10Gi       RWX           Recycle         Bound     default/tomcat             5h
[root@k8s-master ~]# 

  6、上传镜像

[root@k8s-master ~]# docker  pull mysql:5.7
[root@k8s-master ~]# docker tag docker.io/mysql:5.7 192.168.125.130:5000/mysql:5.7
[root@k8s-master ~]# docker push 192.168.125.130:5000/mysql:5.7

  7、创建配置文件

[root@k8s-master ~]# vim tomcat-mysql-dep.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: 192.168.125.130:5000/mysql:5.7
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: tomcat-mysql
          mountPath: /var/lib/mysql

        env:
        - name: MYSQL_ROOT_PASSWORD
          value: '123456'
      volumes:
      - name: tomcat-mysql
        persistentVolumeClaim:
          claimName: tomcat

  8、执行命令

[root@k8s-master ~]# kubectl apply -f tomcat-mysql-dep.yaml 
deployment "mysql" created

[root@k8s-master ~]# ls /data/tomcat/            查看目录下面是否有数据库的东西,有代表做成功

 

posted @ 2020-06-12 15:25  人走茶良  阅读(326)  评论(0编辑  收藏  举报
推荐:华为云