쿠버네티스 멀티 컨테이너 파드(Multi Container Pod)와 초기화 컨테이너(Init Containers) 개념 및 설정

ZER0·2022년 10월 19일
0

Kubernetes

목록 보기
20/39
post-thumbnail

1. 개념

  • 멀티 컨테이너 파드
    • 하나의 파드에 2개 이상의 컨테이너를 실행하는 파드
    • 파드 당 하나의 컨테이너를 운영하는 것이 일반적이지만, 목적에 따라 메인 컨테이너와 이를 보조하는 컨테이너로 구성 가능(ex. 웹 서버+로그 에이전트 등)
    • 멀티 컨테이너 디자인 패턴으로는 사이드카 / 어댑터 / 앰버서더가 존재
  • 초기화 컨테이너
    • 메인 컨테이너 실행 전 초기화 역할을 수행하는 컨테이너
    • 초기화 컨테이너의 작업이 성공적으로 완료되어야만 메인 컨테이너 실행
    • 초기화 컨테이너의 작업이 실패할 경우 성공할 때까지 계속 재실행
    • 초기화 컨테이너가 여러개일 경우 순차적으로 실행

2. 멀티 컨테이너 생성

  • yaml을 활용해 생성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: test-multi-container
      name: test-multi-container
    spec:
      containers:
      - image: nginx
        name: main-container
     
      - image: nginx
        name: sub-container
    cs
    • spec.containers 하위에 생성할 컨테이너를 명시
  • 멀티 컨테이너 생성 확인

3. 초기화 컨테이너 생성

  • yaml을 활용해 생성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: test-init-container
      name: test-init-container
    spec:
      containers:
      - image: nginx
        name: main
        command: ["/bin/sh"]
        args: ["-c""echo main container success!!!"]
     
      initContainers:
      - image: nginx
        name: init
        command: ["/bin/sh"]
        args: ["-c""echo init container success!!!"]
    cs
    • 초기화 컨테이너는 spec.initContainers 하위에 설정 명시
  • 초기화 컨테이너 작업 성공 후 메인 컨테이너 생성 확인

참고

  1. https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
  2. https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-patterns.html
  3. https://seongjin.me/kubernetes-multi-container-pod-design-patterns/
profile
Security Compliance Engineer

0개의 댓글