初始化容器是在pod的主容器启动之前要运行的容器,主要是做一些主容器的前置工作,它具有两大特征:
- List item初始化容器必须运行完成直至结束,若某初始化容器运行失败,那么kubernetes需要重启它直到成功完成
- 初始化容器必须按照定义的顺序执行,当且仅当前一个成功之后,后面的一个才能运行
初始化容器有很多的应用场景,下面列出的是最常见的几个:
- 提供主容器镜像中不具备的工具程序或自定义代码
- 初始化容器要先于应用容器串行启动并运行完成,因此可用于延后应用容器的启动直至其依赖的条件得到满足
接下来做一个案例,模拟下面这个需求:
假设要以主容器来运行nginx,但是要求在运行nginx之前先要能够连接上mysql和redis所在服务器
为了简化测试,事先规定好mysql(192.168.10.14)和redis(192.168.10.15)服务器的地址
创建pod-test.yaml,内容如下:
#cat >pod-test.yaml <ping的返回值:
$?代表上一个命令执行后的退出状态
如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。#ping通返回0 ping 192.168.10.102 -c 1;echo $? #ping不通会阻塞,ctrl+c后发现返回0 ping 192.168.10.103 -c 1;echo $?



