[241204 TIL]

프로젝트 관리 심화

대규모 스트림 처리 강의


 

⚠️ 트러블슈팅 ⚠️


1. 문제 정의

Kafka 실습 중 Docker Compose로 Kafka 환경을 구성했으나, Kafka UI에서 클러스터가 Offline 상태로 표시되고 정상적으로 동작하지 않음.


2. 원인 추론

  1. Docker 이미지 아키텍처 문제
    • Docker Desktop에서 "image may have poor performance, or fail if run via emulation" 경고 메시지가 출력됨.
    • 이는 Docker 이미지가 호스트 아키텍처와 일치하지 않아 발생.
  2. Kafka UI 타임아웃 문제
    • Kafka UI 이미지를 다운로드하는 과정에서 TLS handshake timeout 오류 발생.
    • 네트워크 문제 또는 Docker Hub와의 연결 문제로 인해 이미지 다운로드 실패.
  3. Docker Compose 설정 문제
    • 기존 docker-compose.yml 파일이 AMD64 아키텍처용 이미지로 구성되어 ARM64 호스트 시스템에서 실행 불가.

3. 해결 방안 및 결과

1) 호스트 아키텍처 확인

  • uname -m 명령어를 실행하여 호스트 시스템 아키텍처를 확인:
    uname -m
    
  • 출력 결과: arm64
    → 호스트 시스템이 ARM64 아키텍처임을 확인.

2) Docker Compose 이미지 교체

  • 기존 Docker Compose 파일에서 AMD64 전용 이미지ARM64 지원 이미지로 교체.

변경된 Docker Compose 파일:

version: '3.8'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    platform: linux/arm64
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka:
    image: confluentinc/cp-kafka:latest
    platform: linux/arm64
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:29092,OUTSIDE://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_LISTENERS: INSIDE://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

  kafka-ui:
    image: provectuslabs/kafka-ui:latest
    platform: linux/arm64
    ports:
      - "8080:8080"
    environment:
      KAFKA_CLUSTERS_0_NAME: local
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:29092
      KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
      KAFKA_CLUSTERS_0_READONLY: "false"

3) Kafka UI 이미지 수동 다운로드

  • Kafka UI 다운로드 시 타임아웃 오류 해결을 위해 수동으로 이미지를 다운로드:
    docker pull provectuslabs/kafka-ui:latest
    
  • 수동 다운로드 완료 후, docker-compose up 명령어로 다시 실행.

결과

  1. Kafka UI에서 클러스터가 Online 상태로 표시됨.
  2. Zookeeper, Kafka, Kafka UI 모두 ARM64 환경에서 정상 실행.
  3. Kafka 실습을 성공적으로 진행 가능.

+ Recent posts