2016 - 2024

感恩一路有你

dockerfile cmd执行多个命令 微服务在Docker k8s下如何部署?

浏览量:2047 时间:2021-03-16 13:48:18 作者:admin

微服务在Docker k8s下如何部署?

最近,这些技术已经在项目中使用。让我介绍一些有价值的想法。

首先,结论如下:

1。K8s是一款非常好的技术,非常稳定。如果发现正在运行的pod数量不等于用户设置的期望值,k8s将自动创建或删除pod,直到它们相等为止。这不仅确保了服务的不间断运行,而且还动态地扩展了服务规范。用户只需要调整pod的复制次数,剩下的留给k8s,这很容易让人担心。

2. 使用Jenkins集成命令行操作,虽然我个人比较喜欢使用命令行,但我不得不承认,使用Jenkins集成命令行操作将大大提高工作效率。

实现步骤如下:(本文以Azure平台为例)

1。写dockerfile

2。在Jenkins中创建任务并执行包含以下命令的脚本

2.1 git将源代码拉到本地

2.2 docker build命令生成映像文件

2.3 docker定义映像文件版本号并上载到Azure平台

2.4 kubectl命令创建k8s部署和服务。

每个版本2.5update,可以调用update image来编译新的镜像版本并提供给k8s

注意,在创建k8s的部署和服务时,需要用yaml格式编写配置文件。部署配置包括名称、映像文件地址、最大和最小CPU分配值、最大和最小内存分配值等。服务配置文件包括名称、引用的部署名称以及是否使用负载平衡器。

有关更多详细信息,请参阅我的wikihttps://github.com/FamingHou/MyWiki

如何避免Docker容器启动脚本运行后自动退出?

以下方法用于依次运行每个容器的脚本:1。使用kunetteres方法启动docker进程。以下是开始-库伯内特斯.sh2,然后在dockerfile中,开始-库伯内特斯.sh指定默认情况下要为docker容器执行的命令。三。需要注意的一点是开始-库伯内特斯.sh脚本将作为docker容器的1号进程运行,并且必须始终运行。因为docker容器只在进程1运行时保持运行,换句话说,docker容器将在进程1退出后退出。因为kubernetes的每个组件都是作为后台进程执行的,所以在脚本的末尾添加了一个死循环以保持启动-库伯内特斯.sh脚本始终在运行。4主管是一种过程管理工具。此时,需要编写管理器配置文件库伯内特斯.conf: 5. 将kubernetes的每个组件的启动命令设置为command。将autorestart参数设置为true意味着supervisor将负责重新启动意外退出的组件。stdout Logfile和stderr Logfile参数可用于设置命令的标准输出文件和标准错误输出文件。6然后,在dockerfile中,指定supervisor作为docker容器的默认命令:7。此时,supervisor是docker容器中的第一个进程,它还需要继续运行。当nodaemon设置为true时,supervisor将保持在前台而不是后台运行。如果主管在后台运行,docker容器将在执行supervisor命令后立即退出。

~]#docker run-M 512M-memory swap 1g-it-P 58080:8080-restart=always

-name bvrfis-logdata中的卷mytomcat:4.0/root/run.sh

--重新启动特定参数值详细信息:

否-当容器退出时,不要重新启动容器;

失败时-仅当容器以非零状态退出时重新启动容器;

始终-无论退出状态如何重新启动容器;

如果要在打开容器时自动启动docker容器中的应用程序服务。只需在dockerfile中编写服务启动脚本,然后使用dockerfile重建映像:

编写应用程序服务自启动脚本

编写dockerfile

重建映像

打开容器

dockerfile cmd执行多个命令 docker执行容器外shell脚本 docker执行shell脚本

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。