3.3.2. Init 컨테이너


init 컨테이너 는 Pod 앱 컨테이너를 시작하기 전에 시작되는 Pod의 컨테이너입니다. Init 컨테이너는 나머지 컨테이너가 시작되기 전에 볼륨을 공유하고, 네트워크 작업을 수행하고, 계산을 수행할 수 있습니다. Init 컨테이너는 일부 사전 조건이 충족될 때까지 애플리케이션 컨테이너의 시작을 차단하거나 지연할 수도 있습니다.

Pod가 시작되면 네트워크와 볼륨을 초기화한 후 init 컨테이너가 순서대로 시작됩니다. 각 init 컨테이너는 다음이 호출되기 전에 성공적으로 종료해야 합니다. init 컨테이너가 시작되지 않거나(런타임) 실패로 종료되면 Pod 재시작 정책에 따라 다시 시작됩니다.

Pod는 모든 init 컨테이너가 성공할 때까지 준비할 수 없습니다.

일부 init 컨테이너 사용 예는 Kubernetes 설명서를 참조하십시오.

다음 예제에서는 두 개의 init 컨테이너가 있는 간단한 포드를 간략하게 설명합니다. 첫 번째 init 컨테이너는 myservice 를 대기하고 두 번째 컨테이너는 mydb 를 기다립니다. 두 컨테이너가 모두 성공하면 Pod가 시작됩니다.

샘플 Init Container Pod 오브젝트 정의(YAML)

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice 1
    image: busybox
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  - name: init-mydb 2
    image: busybox
    command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']

1
myservice 컨테이너를 지정합니다.
2
mydb 컨테이너를 지정합니다.

각 init 컨테이너에는 readinessProbe 를 제외한 모든 app 컨테이너의 필드가 있습니다. Pod가 계속 시작되려면 Init 컨테이너가 종료되어야 하며 완료 이외의 준비는 정의할 수 없습니다.

Init 컨테이너는 컨테이너에 activeDeadlineSecondslivenessProbe 를 포함하여 init 컨테이너가 영구적으로 실패하지 않도록 할 수 있습니다. 활성 데드라인에는 init 컨테이너가 포함됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.