본문 바로가기
WIKI 기술 지식 베이스

lakeFS Enterprise 트러블슈팅

원문 보기 위키 갱신

lakeFS Enterprise 배포에는 특히 초기 설정 중에 올바르게 구성해야 하는 다양한 구성 컴포넌트가 포함되어 있어요. 구성과 배포 문제를 트러블슈팅하는 데 도움이 되도록 lakeFS에는 flare 명령이 포함되어 있어요.

출처: 문서

본문

flare 명령

개요

lakeFS 바이너리에는 flare 명령이 포함되어 있어요

lakefs flare [flags]

플래그

--env-var-filename      the name of the file environment variables will be written to (default: lakefs-env.txt)
--include-env-vars      should environment variables be collected by flare (default: true)
-o, --output                Output path relative to the current path
-p, --package               Package generated artifacts into a .zip file (default: false)
--stdout                Output to stdout instead of files (default: false)
--zip-filename          The name of the zip file created when the -p option is used (default: lakefs-flare.zip)

사용 예시

# This will run flare with output set to stdout, which is redirected into a file
$ ./lakefs flare --stdout > lakefs.flare

flare 명령은 어떤 정보를 수집하나요?

구성

lakeFS Enterprise는 구성을 여러 방식으로 제공할 수 있어요: 설정 파일, 환경 변수, 명령 플래그. flare 명령은 lakeFS 프로세스가 사용하는 완전히 해석된 최종 구성을 수집해요.

환경 변수

트러블슈팅 시 lakeFS가 실행 중인 환경을 파악하는 것이 중요해요. 특히 환경 변수를 광범위하게 사용하는 Kubernetes 같은 컨테이너 기반 배포 환경에서 그렇죠. flare 명령은 다음 접두사를 가진 환경 변수를 수집해요:

  • LAKEFS_

  • HTTP_

  • HOSTNAME

새니타이징과 시크릿 마스킹

구성과 환경 변수에는 민감한 시크릿이 포함되어 있어요. flare 명령은 수집한 내용에서 시크릿을 마스킹하는 다단계 프로세스를 갖추고 있어요. flare 명령은 다음 유형의 시크릿을 감지할 수 있어요:

  • AWS 정적 자격 증명

  • Azure 스토리지 키

  • Basic HTTP auth 사용자명/비밀번호

  • JWT

  • Bearer 인증 헤더

  • GitHub 토큰

  • 인증서 개인 키

위에 나열된 특정 시크릿 유형 외에도 flare는 시크릿일 가능성이 높은 일반적인 고엔트로피 문자열을 감지하고 마스킹할 수 있어요.

마스킹된 시크릿은 실제 값을 노출하지 않으면서 값의 SHA512 해시로 대체돼요.

사용법 - flare 수집 및 전송

다음 스크립트는 로컬에서 실행하도록 의도되었으며, lakeFS Enterprise가 권장 구성인 Kubernetes 클러스터에 배포되어 있다고 가정해요.

이 스크립트를 실행하려면 실행 머신에 kubectl이 설치되어 있고, kubectl이 클러스터에 접근할 수 있는 올바른 컨텍스트와 자격 증명으로 구성되어 있어야 해요. lakeFS Enterprise에서 flare 명령을 실행하는 것 외에도 이 스크립트는 lakeFS의 실행 중 모든 파드에서 로그를 가져와요.

1단계 - 스크립트 변수 설정

스크립트 상단에 Variables 블록이 있어요. lakeFS가 클러스터에 어떻게 배포되었는지에 맞게 이 값들을 변경하는 것이 중요해요.

NAMESPACE - lakeFS가 배포된 K8s 네임스페이스

LAKEFS_DEPLOYMENT - lakeFS K8s 배포의 이름

LAKEFS_LOGS_OUTPUT_FILE - lakeFS 로그가 저장될 로컬 파일 이름

LAKEFS_FLARE_FILE - lakeFS flare 결과가 저장될 로컬 파일 이름

2단계 - 스크립트 실행

#!/bin/bash

RED='\033[0;31m'
NC='\033[0m'

# Variables
NAMESPACE=lakefs-prod
LAKEFS_DEPLOYMENT=lakefs-server
LAKEFS_LOGS_OUTPUT_FILE=lakefs.log
LAKEFS_FLARE_FILE=lakefs.flare

# Find kubectl
KUBECTLCMD=$(which kubectl)
if [ -z "$KUBECTLCMD" ]
then
    echo -e "${RED}Couldn't find kubectl in path${NC}"
    exit 1
fi

$KUBECTLCMD get pods -o name -n $NAMESPACE | grep pod/$LAKEFS_DEPLOYMENT | xargs -I {} $KUBECTLCMD logs -n $NAMESPACE --all-containers=true --prefix --ignore-errors --timestamps {} > $LAKEFS_LOGS_OUTPUT_FILE

$KUBECTLCMD exec deployment/$LAKEFS_DEPLOYMENT -- ./lakefs flare --stdout > $LAKEFS_FLARE_FILE

3단계 - 출력 파일 검토

스크립트 실행 후 두 개의 파일이 생겨요: lakeFS 로그와 lakeFS flare 출력. 이 파일들을 공유하기 전에 모든 시크릿이 올바르게 마스킹되었고 수집된 정보가 공유 가능한지 검토하세요.

4단계 - 출력 파일 압축 후 지원 티켓에 첨부

파일 검토가 끝나면 하나의 파일로 압축해 지원 포털의 지원 티켓에 첨부할 수 있어요.

새 티켓

새 티켓을 제출할 때 새 티켓 폼 하단의 파일 업로드 입력으로 zip 파일을 첨부할 수 있어요.

기존 티켓

기존 티켓에 파일을 추가하려면 지원 포털에서 티켓 제목을 클릭하세요. 티켓 세부 화면에서 파일을 새 응답으로 첨부하세요. 추가 세부 사항을 담아 응답에 텍스트를 더할 수도 있어요.

더 알아보기 (Learn more)

공식 문서의 트러블슈팅 페이지는 https://docs.lakefs.io/admin/troubleshooting 에서 확인할 수 있어요.