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

Felix 구성 파트 2

원문 보기 위키 갱신

Felix 구성 레퍼런스의 두 번째 파트예요. 이 파트에서는 헬스 체크 관련 설정(HealthEnabled, HealthHost, HealthPort, HealthTimeoutOverrides)부터 로깅(Logging) 프로세스 설정, Prometheus 메트릭 설정까지 다뤄요. Felix가 자신의 상태를 노출하는 방법과 로그를 어디에 어떤 수준으로 남길지, 그리고 메트릭 서버를 어떻게 노출할지 결정하는 키들이 모여 있어요. 각 항목은 구성 파일 키와 환경 변수 탭으로 각각 확인할 수 있어요.

출처: 문서

본문

HealthEnabled

탭: 구성 파일

속성 값
키 HealthEnabled
설명 true로 설정하면 readiness와 liveness 엔드포인트를 제공하는 Felix의 헬스 포트를 활성화해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

탭: 환경 변수

속성 값
키 FELIX_HEALTHENABLED
설명 true로 설정하면 readiness와 liveness 엔드포인트를 제공하는 Felix의 헬스 포트를 활성화해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

HealthHost

탭: 구성 파일

속성 값
키 HealthHost
설명 헬스 서버가 바인딩할 호스트예요.
스키마 ^[a-zA-Z0-9:._+-]{1,64}$ 정규식과 일치하는 문자열
기본값 localhost

탭: 환경 변수

속성 값
키 FELIX_HEALTHHOST
설명 헬스 서버가 바인딩할 호스트예요.
스키마 ^[a-zA-Z0-9:._+-]{1,64}$ 정규식과 일치하는 문자열
기본값 localhost

HealthPort

탭: 구성 파일

속성 값
키 HealthPort
설명 헬스 서버가 바인딩할 TCP 포트예요.
스키마 정수: [0,65535]
기본값 9099

탭: 환경 변수

속성 값
키 FELIX_HEALTHPORT
설명 헬스 서버가 바인딩할 TCP 포트예요.
스키마 정수: [0,65535]
기본값 9099

HealthTimeoutOverrides

탭: 구성 파일

속성 값
키 HealthTimeoutOverrides
설명 개별 하위 컴포넌트의 내부 워치독 타임아웃을 재정의할 수 있게 해줘요. 특히 부하가 큰 워크로드나 CPU가 제한된 환경에서 발생할 수 있는 "오탐(false positive)" liveness 타임아웃을 우회할 때 유용해요. 활성 하위 컴포넌트 목록은 Felix 로그를 확인하세요.
스키마 <key>=<duration> 쌍을 쉼표로 구분한 목록. 기간은 Go 표준 형식(예: 1s, 1m, 1h3m2s)을 사용해요
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_HEALTHTIMEOUTOVERRIDES
설명 개별 하위 컴포넌트의 내부 워치독 타임아웃을 재정의할 수 있게 해줘요. 특히 부하가 큰 워크로드나 CPU가 제한된 환경에서 발생할 수 있는 "오탐(false positive)" liveness 타임아웃을 우회할 때 유용해요. 활성 하위 컴포넌트 목록은 Felix 로그를 확인하세요.
스키마 <key>=<duration> 쌍을 쉼표로 구분한 목록. 기간은 Go 표준 형식(예: 1s, 1m, 1h3m2s)을 사용해요
기본값 없음

프로세스: 로깅

LogActionRateLimit

탭: 구성 파일

속성 값
키 LogActionRateLimit
설명 Log 액션에 도달하는 속도를 제한해요. 값은 "N/unit" 형식이어야 하고, N은 숫자, unit은 second, minute, hour, day 중 하나예요. 예를 들어 "10/second" 또는 "100/hour"처럼 쓰죠. LogConnectionTransitions가 활성화되어 있으면 후속 로그에도 이 제한이 적용돼요. 초기 로그가 이 속도 제한으로 억제된 연결은 후속 로그도 남지 않아요.
스키마 ^([1-9]\d{0,3}/(?:second|minute|hour|day))?$ 정규식과 일치하는 문자열
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_LOGACTIONRATELIMIT
설명 Log 액션에 도달하는 속도를 제한해요. 값은 "N/unit" 형식이어야 하고, N은 숫자, unit은 second, minute, hour, day 중 하나예요. 예를 들어 "10/second" 또는 "100/hour"처럼 쓰죠. LogConnectionTransitions가 활성화되어 있으면 후속 로그에도 이 제한이 적용돼요. 초기 로그가 이 속도 제한으로 억제된 연결은 후속 로그도 남지 않아요.
스키마 ^([1-9]\d{0,3}/(?:second|minute|hour|day))?$ 정규식과 일치하는 문자열
기본값 없음

LogActionRateLimitBurst

탭: 구성 파일

속성 값
키 LogActionRateLimitBurst
설명 LogActionRateLimit이 활성화되어 있을 때 Log 액션에 도달하는 속도 제한 버스트를 설정해요.
스키마 정수: [0,263-1], [9999,263-1]
기본값 5

탭: 환경 변수

속성 값
키 FELIX_LOGACTIONRATELIMITBURST
설명 LogActionRateLimit이 활성화되어 있을 때 Log 액션에 도달하는 속도 제한 버스트를 설정해요.
스키마 정수: [0,263-1], [9999,263-1]
기본값 5

LogConnectionTransitions

탭: 구성 파일

속성 값
키 LogConnectionTransitions
설명 Log 액션이 있는 정책 규칙에 매칭된 각 연결에 대해, 처음 관찰된 응답을 기록하는 추가 커널 로그를 Felix가 내보낼지 제어해요. FirstResponseAfterLog로 설정하면 초기 로그가 남겨진 각 연결에 후속 로그 하나가 더해지고, LogConnectionTransitionsPrefix 접두사와 전환을 식별하는 접미사가 붙어요. 첫 응답 패킷이 보이면 "-est", 응답이 TCP RST(연결 거부)면 "-rst", 관련 ICMP 오류(예: port unreachable)면 "-icmp-err"가 접미사예요. 로그 본문은 응답 패킷의 표준 커널 패킷 로그예요. "-est"와 "-rst"의 5-튜플은 원래 정책 Log 라인에서 출발지와 목적지를 뒤바꾼 것이고, "-icmp-err"는 대괄호 안 내부 헤더에 원래 5-튜플이 뒤바뀌지 않은 채 담겨요. 후속 로그가 없는 기록된 연결은 응답을 받지 못한 연결이에요. 초기 로그가 LogActionRateLimit으로 억제된 연결은 후속 로그도 남지 않으므로, 모든 후속 로그는 초기 로그와 한 쌍을 이뤄요. 이 기능을 켜면 Iptables/NftablesMarkMask 공간에서 1비트를 소비해요. eBPF 모드에서는 지원되지 않아요.
스키마 Disabled, FirstResponseAfterLog 중 하나
기본값 Disabled

탭: 환경 변수

속성 값
키 FELIX_LOGCONNECTIONTRANSITIONS
설명 Log 액션이 있는 정책 규칙에 매칭된 각 연결에 대해, 처음 관찰된 응답을 기록하는 추가 커널 로그를 Felix가 내보낼지 제어해요. FirstResponseAfterLog로 설정하면 초기 로그가 남겨진 각 연결에 후속 로그 하나가 더해지고, LogConnectionTransitionsPrefix 접두사와 전환을 식별하는 접미사가 붙어요. 첫 응답 패킷이 보이면 "-est", 응답이 TCP RST(연결 거부)면 "-rst", 관련 ICMP 오류(예: port unreachable)면 "-icmp-err"가 접미사예요. 로그 본문은 응답 패킷의 표준 커널 패킷 로그예요. "-est"와 "-rst"의 5-튜플은 원래 정책 Log 라인에서 출발지와 목적지를 뒤바꾼 것이고, "-icmp-err"는 대괄호 안 내부 헤더에 원래 5-튜플이 뒤바뀌지 않은 채 담겨요. 후속 로그가 없는 기록된 연결은 응답을 받지 못한 연결이에요. 초기 로그가 LogActionRateLimit으로 억제된 연결은 후속 로그도 남지 않으므로, 모든 후속 로그는 초기 로그와 한 쌍을 이뤄요. 이 기능을 켜면 Iptables/NftablesMarkMask 공간에서 1비트를 소비해요. eBPF 모드에서는 지원되지 않아요.
스키마 Disabled, FirstResponseAfterLog 중 하나
기본값 Disabled

LogConnectionTransitionsPrefix

탭: 구성 파일

속성 값
키 LogConnectionTransitionsPrefix
설명 LogConnectionTransitions가 활성화되어 있을 때 내보내는 로그에 사용되는 로그 접두사예요. 전환 접미사("-est", "-rst", "-icmp-err")가 여기에 붙어요. LogPrefix와 달리 %-지정자(예: %p)를 지원하지 않아요. 이 로그를 내보내는 규칙은 모든 정책이 공유하기 때문에 정책별 값을 대체할 수 없고, %-지정자는 문자 그대로 출력돼요.
스키마 ^[a-zA-Z0-9%: /_-]*$ 정규식과 일치하는 문자열
기본값 calico-response

탭: 환경 변수

속성 값
키 FELIX_LOGCONNECTIONTRANSITIONSPREFIX
설명 LogConnectionTransitions가 활성화되어 있을 때 내보내는 로그에 사용되는 로그 접두사예요. 전환 접미사("-est", "-rst", "-icmp-err")가 여기에 붙어요. LogPrefix와 달리 %-지정자(예: %p)를 지원하지 않아요. 이 로그를 내보내는 규칙은 모든 정책이 공유하기 때문에 정책별 값을 대체할 수 없고, %-지정자는 문자 그대로 출력돼요.
스키마 ^[a-zA-Z0-9%: /_-]*$ 정규식과 일치하는 문자열
기본값 calico-response

LogDebugFilenameRegex

탭: 구성 파일

속성 값
키 LogDebugFilenameRegex
설명 어떤 소스 코드 파일의 Debug 로그 출력을 로그에 포함할지 제어해요. 지정한 정규식과 파일 이름이 일치하는 파일의 로그만 포함돼요. 이 필터는 Debug 레벨 로그에만 적용돼요.
스키마 정규식
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_LOGDEBUGFILENAMEREGEX
설명 어떤 소스 코드 파일의 Debug 로그 출력을 로그에 포함할지 제어해요. 지정한 정규식과 파일 이름이 일치하는 파일의 로그만 포함돼요. 이 필터는 Debug 레벨 로그에만 적용돼요.
스키마 정규식
기본값 없음

LogFilePath

탭: 구성 파일

속성 값
키 LogFilePath
설명 Felix 로그의 전체 경로예요. 파일 로깅을 끄려면 none으로 설정해요.
스키마 파일 경로
기본값 /var/log/calico/felix.log

탭: 환경 변수

속성 값
키 FELIX_LOGFILEPATH
설명 Felix 로그의 전체 경로예요. 파일 로깅을 끄려면 none으로 설정해요.
스키마 파일 경로
기본값 /var/log/calico/felix.log

LogPrefix

탭: 구성 파일

속성 값
키 LogPrefix
설명 Felix가 LOG 규칙을 렌더링할 때 사용하는 로그 접두사예요. 다음 지정자를 사용해 로그 접두사에 추가 정보를 담을 수 있어요. - %t: 티어 이름. - %k: 종류(짧은 이름). - %n: 정책 또는 프로필 이름. - %p: 정책 또는 프로필 이름(네임스페이스가 있는 종류는 네임스페이스/이름, 없는 종류는 이름만). Calico는 생성된 로그 접두사 끝에 ": " 문자를 붙여요. iptables는 로그 접두사를 최대 29자, nftables는 최대 127자까지 표시하니 유의하세요. 초과분은 잘려요.
스키마 문자열
기본값 calico-packet

탭: 환경 변수

속성 값
키 FELIX_LOGPREFIX
설명 Felix가 LOG 규칙을 렌더링할 때 사용하는 로그 접두사예요. 다음 지정자를 사용해 로그 접두사에 추가 정보를 담을 수 있어요. - %t: 티어 이름. - %k: 종류(짧은 이름). - %n: 정책 또는 프로필 이름. - %p: 정책 또는 프로필 이름(네임스페이스가 있는 종류는 네임스페이스/이름, 없는 종류는 이름만). Calico는 생성된 로그 접두사 끝에 ": " 문자를 붙여요. iptables는 로그 접두사를 최대 29자, nftables는 최대 127자까지 표시하니 유의하세요. 초과분은 잘려요.
스키마 문자열
기본값 calico-packet

LogSeverityFile

탭: 구성 파일

속성 값
키 LogSeverityFile
설명 이 로그 심각도 이상의 로그가 로그 파일로 전송돼요.
스키마 DEBUG, ERROR, FATAL, INFO, TRACE, WARNING 중 하나
기본값 INFO

탭: 환경 변수

속성 값
키 FELIX_LOGSEVERITYFILE
설명 이 로그 심각도 이상의 로그가 로그 파일로 전송돼요.
스키마 DEBUG, ERROR, FATAL, INFO, TRACE, WARNING 중 하나
기본값 INFO

LogSeverityScreen

탭: 구성 파일

속성 값
키 LogSeverityScreen
설명 이 로그 심각도 이상의 로그가 stdout으로 전송돼요.
스키마 DEBUG, ERROR, FATAL, INFO, TRACE, WARNING 중 하나
기본값 INFO

탭: 환경 변수

속성 값
키 FELIX_LOGSEVERITYSCREEN
설명 이 로그 심각도 이상의 로그가 stdout으로 전송돼요.
스키마 DEBUG, ERROR, FATAL, INFO, TRACE, WARNING 중 하나
기본값 INFO

LogSeveritySys

탭: 구성 파일

속성 값
키 LogSeveritySys
설명 이 로그 심각도 이상의 로그가 syslog로 전송돼요. syslog 로깅을 하지 않으려면 None으로 설정해요.
스키마 DEBUG, ERROR, FATAL, INFO, TRACE, WARNING 중 하나
기본값 INFO

탭: 환경 변수

속성 값
키 FELIX_LOGSEVERITYSYS
설명 이 로그 심각도 이상의 로그가 syslog로 전송돼요. syslog 로깅을 하지 않으려면 None으로 설정해요.
스키마 DEBUG, ERROR, FATAL, INFO, TRACE, WARNING 중 하나
기본값 INFO

프로세스: Prometheus 메트릭

PrometheusGoMetricsEnabled

탭: 구성 파일

속성 값
키 PrometheusGoMetricsEnabled
설명 false로 설정하면 Prometheus 클라이언트가 기본적으로 수행하는 Go 런타임 메트릭 수집을 비활성화해요. 보고되는 메트릭 수가 줄어 Prometheus 부하도 덜어져요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 true

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSGOMETRICSENABLED
설명 false로 설정하면 Prometheus 클라이언트가 기본적으로 수행하는 Go 런타임 메트릭 수집을 비활성화해요. 보고되는 메트릭 수가 줄어 Prometheus 부하도 덜어져요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 true

PrometheusMetricsCAFile

탭: 구성 파일

속성 값
키 PrometheusMetricsCAFile
설명 /metrics 엔드포인트를 보호하는 데 사용되는 TLS CA 인증서 파일의 절대 경로를 지정해요. 이 인증서는 유효해야 하고 calico-node 프로세스가 접근할 수 있어야 해요.
스키마 문자열
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSCAFILE
설명 /metrics 엔드포인트를 보호하는 데 사용되는 TLS CA 인증서 파일의 절대 경로를 지정해요. 이 인증서는 유효해야 하고 calico-node 프로세스가 접근할 수 있어야 해요.
스키마 문자열
기본값 없음

PrometheusMetricsCertFile

탭: 구성 파일

속성 값
키 PrometheusMetricsCertFile
설명 /metrics 엔드포인트를 보호하는 데 사용되는 TLS 인증서 파일의 절대 경로를 지정해요. 이 인증서는 유효해야 하고 calico-node 프로세스가 접근할 수 있어야 해요.
스키마 문자열
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSCERTFILE
설명 /metrics 엔드포인트를 보호하는 데 사용되는 TLS 인증서 파일의 절대 경로를 지정해요. 이 인증서는 유효해야 하고 calico-node 프로세스가 접근할 수 있어야 해요.
스키마 문자열
기본값 없음

PrometheusMetricsClientAuth

탭: 구성 파일

속성 값
키 PrometheusMetricsClientAuth
설명 /metrics 엔드포인트의 클라이언트 인증 유형을 지정해요. 서버가 클라이언트 인증서를 검증하는 방식이 이 값으로 결정돼요. 기본값은 "NoClientCert"예요.
스키마 NoClientCert, RequireAndVerifyClientCert, RequireAnyClientCert, VerifyClientCertIfGiven 중 하나
기본값 NoClientCert

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSCLIENTAUTH
설명 /metrics 엔드포인트의 클라이언트 인증 유형을 지정해요. 서버가 클라이언트 인증서를 검증하는 방식이 이 값으로 결정돼요. 기본값은 "NoClientCert"예요.
스키마 NoClientCert, RequireAndVerifyClientCert, RequireAnyClientCert, VerifyClientCertIfGiven 중 하나
기본값 NoClientCert

PrometheusMetricsEnabled

탭: 구성 파일

속성 값
키 PrometheusMetricsEnabled
설명 true로 설정하면 Felix에서 Prometheus 메트릭 서버를 활성화해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSENABLED
설명 true로 설정하면 Felix에서 Prometheus 메트릭 서버를 활성화해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

PrometheusMetricsHost

탭: 구성 파일

속성 값
키 PrometheusMetricsHost
설명 Prometheus 메트릭 서버가 바인딩할 호스트예요.
스키마 ^[a-zA-Z0-9:._+-]{1,64}$ 정규식과 일치하는 문자열
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSHOST
설명 Prometheus 메트릭 서버가 바인딩할 호스트예요.
스키마 ^[a-zA-Z0-9:._+-]{1,64}$ 정규식과 일치하는 문자열
기본값 없음

PrometheusMetricsKeyFile

탭: 구성 파일

속성 값
키 PrometheusMetricsKeyFile
설명 /metrics 엔드포인트를 보호하는 데 사용되는 TLS 인증서에 대응하는 개인 키 파일의 절대 경로를 지정해요. 이 개인 키는 유효해야 하고 calico-node 프로세스가 접근할 수 있어야 해요.
스키마 문자열
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSKEYFILE
설명 /metrics 엔드포인트를 보호하는 데 사용되는 TLS 인증서에 대응하는 개인 키 파일의 절대 경로를 지정해요. 이 개인 키는 유효해야 하고 calico-node 프로세스가 접근할 수 있어야 해요.
스키마 문자열
기본값 없음

PrometheusMetricsPort

더 알아보기 (Learn more)

Felix 구성 옵션 전체는 Felix 구성 레퍼런스의 이전·다음 파트에서 이어져요. 헬스 포트를 켠 뒤에는 kubelet probe 설정과 함께 HealthPort 기본값 9099를 확인하고, 메트릭 서버를 노출할 때는 TLS 관련 키들을 함께 검토해 보세요.