挂载

来源:7-3 springboot的web服务迁移kubernetes

点点点工程师

2019-07-11

我部署了一个mysql + springboot 的项目,部署成功了。
其中mysql的副本为1 ,数据库的数据挂载在了宿主机上。

#mysql deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  namespace: springboot-namespace
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306
        args:
          - "--collation-server=utf8mb4_unicode_ci"
          - "--character-set-server=utf8mb4"     
          - "--init-connect='SET NAMES UTF8MB4'"
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "mysqlpw"
        - name: MYSQL_DATABASE
          value: "hello"
        volumeMounts:
        - mountPath: /var/lib/mysql
          name: mysqldata
      volumes:
      - name: mysqldata
        hostPath:
          path: /data/mysql_springboot_demo

按照k8s 的机制,如果mysql pod 所在的宿主机挂掉,会在另外一台node节点上生成一个pod并做挂载,按照我的配置,会完成建库操作,但是数据库中的初始化数据和用户新增或修改的数据一定是没有的,由此可见生产中不会这样配置。
在生产环境中数据库一般是如何进行挂载和数据初始化的?
老师能否给个思路,我的配置哪里有优化的地方?

写回答

1回答

刘果国

2019-07-12

这种情况只能用共享存储了,nfs,gfs,ceph

0
2
刘果国
回复
点点点工程师
生产一般都是集群外单独部署
2019-07-14
共2条回复

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2216 问题

查看课程