파드(Pod) 디자인 패턴
사이드카 패턴(sidecar pattern)
- 메인 컨테이너 외에 보조적인 기능을 추가하는 서브 컨테이너를 포함하는 패턴
- 예시
- 특정 변경 사항을 감지하여 동적으로 설정을 변경하는 컨테이너
- 깃 저장소와 로컬 스토리지를 동기화하는 컨테이너
- 애플리케이션의 로그 파일을 오브젝트 스토리지로 전송하는 컨테이너
앰배서더 패턴(ambassador pattern)
- 메인 컨테이너가 외부 시스템과 접속할 때 대리로 중계해주는 서브 컨테이너(앰배서더 컨테이너)를 포함한 패턴
- 메인 컨테이너에서 목적지에 localhost를 지정하여 앰배서더 컨테이너로 접속할 수 있다.
- 앰배서더 컨테이너를 사용함으로써 메인 컨테이너에서는 항상 localhost를 지정하여 앰배서더 컨테이너로만 접속하고 앰배서더 컨테이너가 여러 목적지에 중계하여 연결하도록 구성하면 느슨한 결합을 유지할 수 있다.
- 예시
- CloudSQL 접속을 위해 CloudSQL Proxy를 제공하는 컨테이너
- Redis 접속을 위해 Redis Proxy를 제공하는 컨테이너
어댑터 패턴(adapter pattern)
- 서로 다른 데이터 형식을 변환해주는 컨테이너(어댑터 컨테이너)를 포함하는 패턴
- 어댑터 컨테이너를 사용하면 외부 요청에 맞게 데이터 형식으로 변환하고 데이터를 반환한다.
- 예시
- MySQL의 메트릭을 Prometheus 형식에 맞게 메트릭을 반환해주는 컨테이너
- Redis의 메트릭을 Prometheus 형식에 맞게 메트릭을 반환해주는 컨테이너
ENTRYPOINT 명령/CMD 명령과 command/args
- 도커 파일로 이미지를 생성할 때는
ENTRYPOINT
명령과 CMD
명령을 사용하여 컨테이너 실행시 명령어 정의
- 쿠버네티스에서는
ENTRYPOINT
를 command
, CMD
를 args
라고 부른다.
파드명 제한
- 파드명은 RFC1123의 호스트명 규약을 따른다.
- 이용 가능한 문자는 영문 소문자와 숫자
- 이용 가능한 기호는 ‘-’ 또는 ‘.’
- 시작과 끝은 영문 소문자