从上面输出的信息中,可以看到 STATUS 的值为 Init:0/2 ,说明该 Pod 内有 2 个 Init Container ,并且 Pod 的 READY 为 0/1 未就绪态,原因是由于我们定义的 2 个 Init Container 需要对应的 Service 依赖,接下来我们继续创建对应的 Service , myapp-pod-initc-svc.yaml 文件定义如下: apiVersion:v1 kind...
command:['sh','-c','cp /etc/config /app/config'] volumeMounts: -name:config-volume mountPath:/app/config volumes: -name:config-volume configMap: name:myapp-config 在这个示例中,我们创建了一个名为myapp-pod的Pod对象,它包含了一个名为myapp-container的主容器和一个名为config-init的初始化容器。
在上面的示例中,我们定义了一个Pod,其中包含一个名为main-container-nginx的主容器和两个Init Container:init-container-1和init-container-2。它们将按照定义的顺序依次执行。 每个Init Containerk可以使用不同的镜像(这里使用了Busybox镜像),并通过command字段指定了要执行的命令。在这个示例中,Init Container只是打印...
为Pod 设置Init Container需要在 Podspec 规约中添加initContainers字段, 该字段以 Container 类型对象数组的形式组织,和应用的containers数组同级相邻。 Init Container的状态在status.initContainerStatuses字段中以容器状态数组的格式返回 (类似status.containerStatuses字段)。 示例一 举例:定义一个具有 2 个Init Container的...
172.23.29.31Init Containers:install:Container ID:docker://9d2aec37255a02a2b13abced64717057eb100dd329bc6b6529211e30595f1c93Image:busyboxImage ID:docker-pullable://busybox@sha256:5acba83a746c7608ed544dc1533b87c737a0b0fb730301639a0179f9344b1678Port:<none>Host Port:<none>Command:wget-O/work-...
command: ['sh', '-c', 'sleep 10'] resources: requests: cpu: 20m - name: init-02 image:busyboxcommand: ['sh', '-c', 'sleep 10'] resources: requests: cpu: 30m 我们只是想实践看看这些 resources 的资源是如何计算的,因此容器里的 command 内容可以不用关注,怎么简单怎么来,全都是 sleep ...
command : [ 'sh' , '-c' , 'until nslookup mysql-server; do echo waiting for mysql; sleep 2; done;' ] 上面这一示例定义了两个 init container,一个用来检查 redis 是否启动成功,另外一个用来检查 mysql 是否启动成功,开始部署的时候,首先会通过nslookup检查 redis 是否成功启动,检测到 redis 启动了...
command: ['sh', '-c', 'until nslookup mysql-server; do echo waiting for mysql; sleep 2; done;'] 上面这一示例定义了两个 init container,一个用来检查 redis 是否启动成功,另外一个用来检查 mysql 是否启动成功,开始部署的时候,首先会通过nslookup检查 redis 是否成功启动,检测到 redis 启动了之后,域...
前面我们知道一个Pod中其实可以运行多个容器,之前说的都是普通的工作容器,但其实还有一种特殊的容器叫作Init Container 初始化容器,它再普通容器之前运行。可以有多个初始化容器,所有初始化容器按顺序依次运行直到完成,所有容器都运行完成后,普通容器才开始运行。
4、Init容器相关操作执行完成以后即退出,不会给业务容器带来安全隐患。 初始化容器和PostStart区别 PostStart:依赖主应用的环境,而且并不一定先于Command运行。 InitContainer:不依赖主应用的环境,可以有更高的权限和更多的工具,一定会在主应用启动之前完成。