默认情况下:mysql容器启动的时候会使用容器内的临时存储来存储数据文件
如果mysql Pod重启,那么mysql容器也会重启,mysql会重新初始化这个数据文件,原来的数据文件会丢失
apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql replicas: 1 template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: petclinic - name: MYSQL_DATAbase value: petclinic --- apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - name: tcp port: 3306 targetPort: 3306 type: ClusterIPapiVersion: apps/v1 kind: Deployment metadata: name: petclinic spec: replicas: 1 selector: matchLabels: app: petclinic template: metadata: labels: app: petclinic spec: containers: - name: petclinic image: spring2go/spring-petclinic:1.0.1.RELEASE env: - name: SPRING_PROFILES_ACTIVE value: mysql - name: DATASOURCE_URL value: jdbc:mysql://mysql/petclinic - name: DATASOURCE_PASSWORD value: petclinic - name: DATASOURCE_USERNAME value: root - name: DATASOURCE_INIT_MODE value: always --- apiVersion: v1 kind: Service metadata: name: petclinic spec: ports: - name: http port: 8080 targetPort: 8080 nodePort: 31080 selector: app: petclinic type: NodePort那么mysql运行的时候,将数据文件默认存储在哪里呢?
从这里看,也就是petclinic Pod起来的时候,会连接到后端的mysql【初始化】
那会有一个问题。现有的mysql Pod如果删除呢?是不是就没有了数据,因为没有初始化数据
如上:相关的数据会丢失
为了解决启动丢失的问题,引入了volume
如上:共享的本地路径是/tmp/data01
DirectoryOrCreate: 路径如果不存在就重新创建
请注意:不是所有的路径都可以进行共享【Docker Desktop】
二. K8S的存储解耦PVC和PV
三、K8S资源请求和限额(Request和Limit)如上:mysqlPod采用了简单的静态绑定的形式 。mysql Pod直接关联了hostPath、path、type 。也就是说mysql 的发布人员需要知道volume的存储细节【有紧密的耦合】。所以这个发布就不能在不同的环境或者公有云之间进行迁移。如果要迁移就必须要修改发布。这个不是我们所期望的
一般在软件中为了解决这种问题,会引入一层抽象。
PVC:规范了存储的需求,存储的大小和读写模式,但是并不规范存储实现的细节
计算机应用是需要占用资源的【包括内存和cpu】。
K8S中的资源是有限制的,通过Request和Limit来管理资源的申请和限制【支持容器级别设置】
Request:表示应用发布时候, 对Cpu或者Memory预估使用量提出的申请。K8S会根据目前集群内节点的空闲情况进行调度
内存超限延时:
可知:当前节点下最大可分配的内存是2G
调整后:只启动了1个custom。需要3个,有2个是因为资源不足处于Pengding中
如果资源不够,那么会持续重启,持续被kill
四、Java/Spring应用在K8S中的内存配置
kubectl top po/no 可以实时查看对应pod或者node资源使用情况【依赖组件Metrics Server】
【使用top命令或者dashboard都可以达到想要的一个效果,也就是进行查看】
Kubernetes高级概念和应用_哔哩哔哩_bilibili
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)