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

相关推荐
Yan-英杰1 小时前
【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查
java·数据库·sql
郭涤生1 小时前
第三章:事务处理_《凤凰架构:构建可靠的大型分布式系统》
笔记·架构·系统架构
矛取矛求2 小时前
C++ 标准库参考手册深度解析
java·开发语言·c++
cijiancao2 小时前
23 种设计模式中的解释器模式
java·设计模式·解释器模式
南七行者2 小时前
对模板方法模式的理解
java·设计模式·模板方法
麻芝汤圆3 小时前
MapReduce 的广泛应用:从数据处理到智能决策
java·开发语言·前端·hadoop·后端·servlet·mapreduce
努力的搬砖人.3 小时前
java如何实现一个秒杀系统(原理)
java·经验分享·后端·面试
哈哈哈哈哈哈哈哈哈...........3 小时前
【java】在 Java 中,获取一个类的`Class`对象有多种方式
java·开发语言·python
fallwind_of_july3 小时前
java项目分享-分布式电商项目附软件链接
java·redis·分布式·mongodb·elasticsearch·微服务·rabbitmq
郭涤生3 小时前
第七章:从类库到服务的分布式基石_《凤凰架构:构建可靠的大型分布式系统》
笔记·分布式·架构