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. 下线传统的

相关推荐
考虑考虑3 小时前
JDK26中的List.ofLazy()
java·后端·java ee
小蒜学长3 小时前
基于SpringBoot的公寓报修管理系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·公寓报修管理系统·多角色协同
for_ever_love__4 小时前
MySQL 主从复制讲透:binlog 原理、搭建步骤与读写分离
java·数据库·mysql·binlog·读写分离·原理·主从复制
小π军6 小时前
操作系统面试题
java·linux·服务器
倔强的石头1066 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
Shaoshing7 小时前
ThreadLocal
java·jvm·threadlocal
写后端的胖头鱼7 小时前
一文详解CAS
java·jvm·spring·cas·乐观锁·自旋
鱼宵7 小时前
Spring AI 提示词模板:{变量} 参数化 + few-shot,一条提示词反复用
java·人工智能·spring·few-shot·提示词工程·springai
蜗牛互联网7 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python