entos7 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/            查看目录下面是否有数据库的东西,有代表做成功

注意:本文有不理解之处,加QQ:1300536862,探讨

推荐:需要租用云服务器,域名等其他服务的可以扫描下方二维码,云服务器免费领取使用,华为云服务:

        

猜你喜欢

转载自blog.csdn.net/qq_33648367/article/details/112576993