当前位置: 首页 > 网络应用技术

每个人都喜欢kubernetes,这不香吗?

时间:2023-03-07 23:08:10 网络应用技术

  当涉及Docker时,有很多人认为它是一个虚拟容器,因此每个人都特别容易陷入误解中,也就是说,Docker仅在Linux操作系统上添加另一层。一个VMware是相同的.docker必须变得缓慢而复杂。最好是作为本地安装服务更舒适。

  实际上,这是一种误解。Docker管理的各种服务是操作系统的本地过程。这不是虚拟化产品。其正确的定义是应用程序容器引擎。

  那么,您如何理解此应用程序容器引擎?让我们谈谈Docker的核心原理 - 主要机制之一,通过Linux的名称空间机制实现了资源隔离,此资源隔离包括:

  这些隔离机制是通过Linux内核的名称空间机制实现的,Linux内核也是Docker容器设计的本质。

  它就像一个300平方米的大房子,有一个家庭住在家庭,卧室,厨房和浴室中。它不仅可以成为支出的一部分,而且还可以为主人带来其他好处。可以共享一些资源,但是必须隔离关键资源以保护隐私!实际上,每个人在大房子里仍然处于平等的生活中。

  在使用此隐喻之后,实际上是要告诉所有人,您将码头组理解为房屋中许多家庭的计划安排。Docker管理了许多集装箱服务。Micro -Service等是容器服务。每个人都在操作系统上同样运行,但是当您进入房间时,您对别人房间的状况一无所知。并按照进入前协议(以此方式)磁盘,这样,每个人都在一起生活,没有人可以便宜。当然,外部网络端口仍然需要不同的分布。

  借助此功能,您可以在有限的云资源上运行大量服务!该公司的网站在Alibaba Cloud的ECS CentOS7上运行,并运行三个Docker容器:Nginx,MySQL,WordPress,我分配了512m的内存。重新启动服务,OS报告内存资源还不够,必须重新启动Docker,只需清空内存即可。

  我当时使用了旧董家族的两个互联网平台产品,使用了三个外观良好的服务器,具有良好的性能,4个核心,16G内存,并运行了50多个微服务和其他基本服务。查明。关键是服务日志隔离,环境变量隔离以及总体配置隔离等待。好处太多了。钥匙在互联网体系结构上为我们的产品提供了良好的基本支持。我可以在虚拟机上运行两组微服务,一组生产,一组测试以及Micro -Service升级版本编号的测试,成为一个很好的微服务版本号,它成为一个很好的微服务版本,该版本是一个很好成为一个很好的微服务版本编号。新生产微服务,旧的微服务输入过渡替换期。有关详细信息,请参阅DevOps应用程序体系结构以构建Internet医疗平台

  不需要连接互联网。切记配置没有SSL的每个服务器的Docker服务。

  只有当我们发布远程版本时,我们才能制作开发客户端,访问NGINX的HTTP SSL端口,以及注册表仓库的反向代理。然后,您需要在服务器上安装NGINX的Docker版本,因为公共网络尝试尽可能多地使用HTTP。如下所示:

  关于如何安装Docker的问题,您需要找到可以先访问Internet的计算机,并通过Docker Hub制作自己的Docker图像。网络私人注册服务仓库。只要Docker Pull命令,其他Intranet机器就可以使用您制作的Docker图像。

  在Windows系统下开发的,下载Windows Docker桌面的使用以使用与Mac版本相同。

  使用Dockerfile构建镜像并生成一个容器以运行程序。现在,程序代码已更改。如何实现热门更新?

  通常,Docker Update方法是拉动的新图像,然后重新启动容器。当然,有一些聪明的方法可以通过Docker中的发布程序目录镜来访问本地目录。然后,Docker重新启动,此方法消除了过多的Docker音量和缓慢上传的问题。

  但是这些需要容器,这不是真正意义上的热门更新。在线业务系统通常会使抖动时间严格,即使是Docker的图像也没有问题。将其放在生产服务器上。如果未经验证,它就无法直接替换。如果是Web系统,我建议使用API Gateway+Docker-Compose+Multi-version操作来实现热门更新,这也将最大程度地减少升级抖动的影响。如下图所示:T是测试,PIS生产,V1和V2是Docker-Compose的多种版本。他们通过API网关重定向新版本的微服务,以实现最小升级抖动。

  具体来说,我简要谈论它,这是让Docker-Compose成为您的全部应用程序。这样,无论是微服务还是单个应用程序,它都被统一为单位部署管理!

  然后,需要更新新版本的新版本,并发布新版本的Docker-Compose。QA验证正确后,API网关将动态切换。这是Docker热门更新的一般想法。

  在学习Docker时,我发现Redis.conf映射会有这种情况。是否有必要在设施中复制YML的副本?

  当Docker映射配置文件时,您必须先拥有此文件,请记住,不要等待此文件创建此文件,否则只会创建一个目录。

  因此,不存在Docker映射文件。

  因此,第一种方法是:配置文件已经存在,即将其上传到服务器自定义配置目录,然后直接映射过去。此时,映射文件或映射目录。

  第二种方法:配置目录映射到自定义目录,并且运行脚本的容器是自动化的,然后需要将配置目录的文件写入容器内部的图像中的包装配置文件中。

  实际上,我做了一项优化的生产 - Redis的码头。这是第一个方法。您需要上传自己的配置。您可以查看我的gitee源代码仓库。dockerfile和配置文件,这些文件已通过中文和性能进行调整。·搜索Gitee中的“阅读字节”。我编写的Redis Dockerfile文件有一个很好的版本。它具有优化的性能,每个人都可以用来学习。

  简而言之,在当前的Kubernetes时代,我们有时会冷静地思考。我们有必要这样做吗?这还不够吗?如果您与Portainer的在线免费Docker管理工具合作,则可以使您的云服务组管理良好。

  但是有一件事是,有一个阈值,也就是说,玩Docker必须继续体验您的Linux功能,包括脚本写作能力,因为某些Docker图像无法根据您的实际环境满足您的需求。拥有Maven的Dockerfile和Shell脚本。从包装到释放的微服务,一口气可以灵活地选择要更新的微服务。这确实需要深入了解Linux。

  这些并不意味着使用Docker就足够了。实际上,不可能解决更复杂的问题。熟悉Linux。因此,这是一个关键步骤。在集装箱时代,容器引擎始于简单的Docker,您可以在程序之外体验Linux技能。您的技术将更快地改善!