Kubernetes 容器编排

应用程序部署演变

主要有三个演变:

传统部署:互联网早期,会直接将应用程序部署在物理机上

优点:简单,不需要其它技术的参与

缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响。

举个例子:

部署:需要生成war包:Export→ Web-WAR file→ 选择war包地址→ 生成war包

将war包上传到服务器

启动:tomcat启动

cd /home/operation/apache-tomcat-9.0.31/bin

./startup.sh

虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境

优点:程序环境不会相互产生影响,提供了一定程度的安全性

缺点:增加了操作系统,浪费了部分资源

容器化部署 :与虚拟化类似,但是共享了操作系统。 微服务通常会被打包为容器镜像(如Docker镜像),然后在容器化平台(如Kubernetes)上部署和管理。容器提供了隔离、轻量级、一致性和可移植性的优势

优点:

可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等

运行应用程序所需要的资源都被容器包装,并和底层基础架构解耦

容器化的应用程序可以跨云服务商、跨Linux操作系统发行版进行部署

容器化部署方式给带来很多的便利,但是也会出现一些问题,比如说:

1.一个容器故障停机了,怎么样让另外一个容器立刻启动去替补停机的容器

  1. 当并发访问量变大的时候,怎么样做到横向扩展容器数量

这些容器管理的问题统称为容器编排问题,为了解决这些容器编排问题,就产生了一些容器编排的软件:

Swarm:Docker自己的容器编排工具

Mesos:Apache的一个资源统一管控的工具,需要和Marathon结合使用
Kubernetes:Google开源的的容器编排工具。容器化平台

参考:Kubernetes详细笔记_kubernetes笔记-CSDN博客

怎么将传统的物理机器部署转为微服务

  1. dockerfile

  2. 容器化

  3. 流量迁移到微服务

  4. 下线传统的

相关推荐
蓝斯4979 小时前
[原创]《C#高级GDI+实战:从零开发一个流程图》第章:增加贝塞尔曲线,上、下、左、右连接点
java·c#·流程图
前端工作日常9 小时前
我学习到的Java 的 Service 分层:itf 和 impl 到底是什么?
java·后端
奈斯先生Vector9 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
都叫我大帅哥10 小时前
Spring @Transactional 注解完全指南
java·spring
Java成神之路-10 小时前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
前端工作日常10 小时前
我学习到的JIT即时编译与机器码缓存失效
java·后端
带刺的坐椅10 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·solon·jetty·undertow·mcp-server·htttp
xcLeigh11 小时前
Go入门:变量声明的五种方式详解
java·开发语言·golang
AI大模型-小华11 小时前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
Mark_ZP12 小时前
【锁1】Synchronized vs ReentrantLock区别
java