Spring Boot应用在kubernetes的sidecar设计与实战,mysql分表分库技术实现

本文介绍了如何在Kubernetes中采用sidecar模式部署Spring Boot应用,并探讨了sidecar设计背后的理论依据。通过实例展示了如何构建Docker镜像,包括选用小巧的OpenJDK jre-alpine镜像作为基础镜像,以及如何构建应用的升级版镜像。同时,文章还提及了MySQL的分库分表技术在实际应用中的实现。
摘要由CSDN通过智能技术生成

但是,这是合适的做法么?去K8S官网需要一些理论上的指导吧;

寻找官方的理论依据

官方文档地址:https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/

其中对Pod中多个容器的关系描述如下:

在这里插入图片描述

上图红框中提到一个容器基于共享资源对外提供服务,另一个"sidecar"容器负责更新这些共享资源;

在Kubernetes中文社区的文档中也对此作了阐述,地址是:http://docs.kubernetes.org.cn/312.html

在这里插入图片描述

在提到Pod中的sidecar模式时,官方文档用到"relatively advanced"来形容,进一步证实了当下该模式的正确性,如下图:

在这里插入图片描述

具体的实现模型如下图:

在这里插入图片描述

Spring Boot应用的sidecar设计

根据kubernetes官方文档的指导,再结合SpringBoot应用的特点,我设计出的sidecar部署方式如下:

在这里插入图片描述

  1. 该应用的业务服务被封装在一个Pod定义中,该Pod由两个容器组成;

  2. 绿色容器是来自OpenJDK 官方镜像:openjdk:8u181-jre-alpine3.8,用docker history命令查看体积,几十兆不算大:

[root@localhost work]# docker history openjdk:8u181-jre-alpine3.8

IMAGE CREATED CREATED BY SIZE COMMENT

2e01f547f003 12 days ago /bin/sh -c set -x && apk add --no-cache … 78.6 MB

12 days ago /bin/sh -c #(nop) ENV JAVA_ALPINE_VERSION… 0 B

12 days ago /bin/sh -c #(nop) ENV JAVA_VERSION=8u181 0 B

7 weeks ago /bin/sh -c #(nop) ENV PATH=/usr/local/sbi… 0 B

7 weeks ago /bin/sh -c #(nop) ENV JAVA_HOME=/usr/lib/… 0 B

7 weeks ago /bin/sh -c { echo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值