OpenShift Init Container: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 7: Line 7:
* [[OpenShift_Pod_Concepts#Init_Container|OpenShift Pod Concepts]]
* [[OpenShift_Pod_Concepts#Init_Container|OpenShift Pod Concepts]]
* [[Kuberentes Init Containers]]
* [[Kuberentes Init Containers]]
=Declaration=
Declared within the context of a pod, under the "[[OpenShift_Pod_Definition#initContainers|initContainers]]" field.
A simple example:
apiVersion: v1
kind: Pod
[...]
'''spec''':
  containers:
  - name: app-container1
    [...]
  '''initContainers''':
  - name: init-container1
    image: busybox
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']


=Life Cycle=
=Life Cycle=

Revision as of 01:46, 19 September 2019

External

Internal

Life Cycle

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#detailed-behavior

Timeout

An init container must finish initializing within ... otherwise it puts the deployment into an error state:

NAME         READY     STATUS    RESTARTS   AGE
a-1-deploy   0/1       Error     0          13m

Resources

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#resources

Troubleshooting Init Containers

The logs of init containers can be accessed by identifying the name of the init container with:

oc describe po/a-1-0g52b

...
Init Containers:
 b-dependency-checker:
  ...

and then getting the logs from that specific container:

oc logs -f -c b-dependency-checker po/a-1-0g52b

Application Dependency Example

https://github.com/NovaOrdis/playground/tree/master/openshift/applications/service-dependency

TODO: write a step-by-step article.