[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