Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

사용자 지정 이미지로 터미널 프로필 구성

터미널 프로필(Terminal profile)은 진단 세션에 사용할 컨테이너 이미지를 정합니다. AWS CLI, 데이터베이스 클라이언트나 사내 진단 도구를 포함한 이미지를 사용할 수 있습니다.

프로필은 허브 수준에서 만들며 그 허브의 여러 환경에서 사용할 수 있습니다. 각 프로필은 Apollo의 내장 컨테이너 레지스트리 또는 연결한 외부 OCI 레지스트리 하나에서 이미지를 가져옵니다.

프로필 생성

Hub Settings → Terminal Profiles → Create new profile을 선택합니다.

항목필수 여부설정
Name필수프로필 이름. 생성 후 변경 불가
Description선택프로필의 용도
Artifact Registry필수이미지 저장소. 허브에 설치된 레지스트리만 선택 가능
Container image필수내장 레지스트리에서는 목록에서 선택. 외부 레지스트리는 전체 이미지 경로 입력
Version선택사용할 이미지 태그. 내장 레지스트리에서 비우면 최신 버전 사용

외부 이미지 경로의 가상 예시는 registry.example.com/tools/apollo-debug입니다. 외부 이미지를 사용할 때는 해당 이미지의 고정된 버전 태그를 지정합니다.

세션에서 선택

환경에 새 터미널을 만들 때 Terminal Profile에서 프로필을 선택합니다. 선택하지 않으면 기본 Apollo 셸을 사용합니다.

프로필이 참조하는 레지스트리가 그 환경에도 설치되어 있어야 합니다. 설치되지 않은 저장소의 프로필은 목록에서 비활성 상태로 표시됩니다.

이미지의 실행 조건

조건이유
/bin/bash 포함Apollo가 대화형 세션의 진입점으로 사용. Alpine 같은 최소 이미지에는 기본 포함되지 않음
비루트 사용자와 숫자 UID 사용클러스터 정책이 루트 실행 Pod를 거절. Dockerfile에서 USER 5001처럼 지정
구체적인 버전 태그 사용latest 태그는 허용하지 않음
대상 클러스터의 아키텍처와 일치일치하지 않으면 노드에서 컨테이너를 실행할 수 없음

내장 레지스트리에서 Version을 비워 최신 게시 버전을 선택하는 것과 이미지에 latest 태그를 사용하는 것은 별개입니다.

이미지 빌드 예시

다음 Dockerfile은 Bash가 있는 Ubuntu 기반 이미지에 숫자 UID의 사용자를 만듭니다. 필요한 진단 프로그램은 이미지에 포함하여 준비합니다.

FROM ubuntu:24.04
RUN useradd -m -u 5001 testuser
USER 5001

가상의 외부 레지스트리를 사용할 때 다음과 같이 빌드할 수 있습니다. 이 예시는 linux/amd64 클러스터용이며 Apple Silicon에서 빌드할 때도 대상 플랫폼을 명시합니다.

docker build --platform linux/amd64 \
  -t registry.example.com/tools/apollo-debug:0.1.0 .

실제 저장소에 인증한 뒤 이미지를 게시합니다.

docker push registry.example.com/tools/apollo-debug:0.1.0

허브의 컨테이너 레지스트리에 게시

Hub Settings → Artifact Registries에서 실제 레지스트리 URL을 확인합니다. 보통 containers-<Hub>.palantircloud.com 형태지만 허브마다 다를 수 있으므로 표시된 호스트를 사용합니다.

HUB_REGISTRY에 실제 호스트를 지정한 뒤 로그인합니다. 사용자 이름에는 전체 이메일 주소를, 비밀번호에는 Apollo Bearer 토큰을 입력합니다.

: "${HUB_REGISTRY:?Hub Settings의 레지스트리 호스트가 필요합니다}"
docker login "$HUB_REGISTRY"

가상의 myorg 경로로 태그를 붙이고 게시하는 예시입니다.

docker tag registry.example.com/tools/apollo-debug:0.1.0 \
  "$HUB_REGISTRY/myorg/my-debug-image:0.1.0"
docker push "$HUB_REGISTRY/myorg/my-debug-image:0.1.0"

게시하려면 허브의 Artifacts에 대한 Creator 역할이 필요합니다. 권한이 없다면 관리자가 Hub Settings → Permissions → Artifacts에서 부여해야 합니다.

새 이미지 배포

기존 태그의 이미지를 덮어쓰면 이미 받은 노드는 캐시된 이전 이미지를 계속 사용할 수 있습니다. 새 이미지에는 0.2.0 같은 새 태그를 사용하여 갱신된 이미지가 내려받아지도록 합니다.