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

Felix 구성 파트 3

원문 보기 위키 갱신

이 문서는 Felix 구성 레퍼런스의 세 번째 파트로, PrometheusMetricsPort부터 IPForwarding까지의 설정 항목을 다뤄요. Prometheus 메트릭 수집 범위 조정부터 IPIP/VXLAN 캡슐화 트래픽 처리, iptables 체인 훅 방식처럼 데이터 플레인 공통 동작을 조정하는 키들이 모여 있죠. 각 설정은 구성 파일 키와 환경 변수 두 탭으로 설명하고, 키 이름과 기본값은 원문 그대로 유지했어요.

출처: 문서

본문

탭: 구성 파일

속성 값
키 PrometheusMetricsPort
설명 Prometheus 메트릭 서버가 바인딩할 TCP 포트예요.
스키마 정수: [0,65535]
기본값 9091

탭: 환경 변수

속성 값
키 FELIX_PROMETHEUSMETRICSPORT
설명 Prometheus 메트릭 서버가 바인딩할 TCP 포트예요.
스키마 정수: [0,65535]
기본값 9091

PrometheusProcessMetricsEnabled

탭: 구성 파일

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

탭: 환경 변수

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

PrometheusWireGuardMetricsEnabled

탭: 구성 파일

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

탭: 환경 변수

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

데이터 플레인: 공통

AllowIPIPPacketsFromWorkloads

탭: 구성 파일

속성 값
키 AllowIPIPPacketsFromWorkloads
설명 Felix가 워크로드에서 들어오는 IPIP 캡슐화 트래픽을 드롭하는 규칙을 추가할지 제어해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

탭: 환경 변수

속성 값
키 FELIX_ALLOWIPIPPACKETSFROMWORKLOADS
설명 Felix가 워크로드에서 들어오는 IPIP 캡슐화 트래픽을 드롭하는 규칙을 추가할지 제어해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

AllowVXLANPacketsFromWorkloads

탭: 구성 파일

속성 값
키 AllowVXLANPacketsFromWorkloads
설명 Felix가 워크로드에서 들어오는 VXLAN 캡슐화 트래픽을 드롭하는 규칙을 추가할지 제어해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

탭: 환경 변수

속성 값
키 FELIX_ALLOWVXLANPACKETSFROMWORKLOADS
설명 Felix가 워크로드에서 들어오는 VXLAN 캡슐화 트래픽을 드롭하는 규칙을 추가할지 제어해요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

CgroupV2Path

탭: 구성 파일

속성 값
키 CgroupV2Path
설명 cgroup 계층 구조를 찾을 기본 위치를 대체해요.
스키마 문자열
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_CGROUPV2PATH
설명 cgroup 계층 구조를 찾을 기본 위치를 대체해요.
스키마 문자열
기본값 없음

ChainInsertMode

탭: 구성 파일

속성 값
키 ChainInsertMode
설명 Felix가 커널의 최상위 iptables 체인을 훅킹하는 방식, 즉 체인 맨 위에 규칙을 삽입할지 아니면 맨 아래에 추가할지 제어해요. insert는 Calico 규칙이 우회되는 것을 막아 주는 안전한 기본값이에요. append 모드로 바꾼다면 체인의 다른 규칙들이 Calico 규칙으로 떨어지며(fall through) 수락을 표시하도록 확인하세요. 그렇지 않으면 Calico 정책이 우회돼요.
스키마 append, insert 중 하나
기본값 insert

탭: 환경 변수

속성 값
키 FELIX_CHAININSERTMODE
설명 Felix가 커널의 최상위 iptables 체인을 훅킹하는 방식, 즉 체인 맨 위에 규칙을 삽입할지 아니면 맨 아래에 추가할지 제어해요. insert는 Calico 규칙이 우회되는 것을 막아 주는 안전한 기본값이에요. append 모드로 바꾼다면 체인의 다른 규칙들이 Calico 규칙으로 떨어지며(fall through) 수락을 표시하도록 확인하세요. 그렇지 않으면 Calico 정책이 우회돼요.
스키마 append, insert 중 하나
기본값 insert

DataplaneDriver

탭: 구성 파일

속성 값
키 DataplaneDriver
설명 사용할 외부 데이터 플레인 드라이버의 파일 이름이에요. UseInternalDataplaneDriver가 false로 설정된 경우에만 사용돼요.
스키마 실행 파일 경로로, 반드시 존재해야 해요. 절대 경로가 아니면 이 바이너리가 들어 있는 디렉터리와 시스템 경로를 차례로 찾아요.
기본값 calico-iptables-plugin

탭: 환경 변수

속성 값
키 FELIX_DATAPLANEDRIVER
설명 사용할 외부 데이터 플레인 드라이버의 파일 이름이에요. UseInternalDataplaneDriver가 false로 설정된 경우에만 사용돼요.
스키마 실행 파일 경로로, 반드시 존재해야 해요. 절대 경로가 아니면 이 바이너리가 들어 있는 디렉터리와 시스템 경로를 차례로 찾아요.
기본값 calico-iptables-plugin

DataplaneWatchdogTimeout

탭: 구성 파일

속성 값
키 DataplaneWatchdogTimeout
설명 Felix의 (내부) 데이터 플레인 드라이버에 사용되는 readiness/liveness 타임아웃이에요. deprecated: 범용 HealthTimeoutOverrides로 대체됐어요.
스키마 초 (부동소수점)
기본값 90 (1m30s)

탭: 환경 변수

속성 값
키 FELIX_DATAPLANEWATCHDOGTIMEOUT
설명 Felix의 (내부) 데이터 플레인 드라이버에 사용되는 readiness/liveness 타임아웃이에요. deprecated: 범용 HealthTimeoutOverrides로 대체됐어요.
스키마 초 (부동소수점)
기본값 90 (1m30s)

DefaultEndpointToHostAction

탭: 구성 파일

속성 값
키 DefaultEndpointToHostAction
설명 워크로드 엔드포인트에서 호스트 자신으로 향하는 트래픽(엔드포인트의 egress 정책 적용 후)을 어떻게 처리할지 제어해요. 기본적으로 Calico는 iptables "DROP" 액션으로 워크로드 엔드포인트에서 호스트 자신으로 향하는 트래픽을 차단해요. 엔드포인트에서 호스트로 향하는 트래픽을 일부 또는 전부 허용하려면 이 파라미터를 RETURN 또는 ACCEPT로 설정하세요. iptables "INPUT" 체인에 자체 규칙이 있다면 RETURN을 사용하세요. Calico는 그 체인 맨 위에 자신의 규칙을 삽입하고, 워크로드 엔드포인트 egress 정책 처리를 마친 뒤 패킷을 "RETURN"으로 "INPUT" 체인에 되돌려 줘요. 워크로드 엔드포인트 egress 정책 처리 후 워크로드에서 온 패킷을 무조건 수락하려면 ACCEPT를 사용하세요.
스키마 ACCEPT, DROP, RETURN 중 하나
기본값 DROP

탭: 환경 변수

속성 값
키 FELIX_DEFAULTENDPOINTTOHOSTACTION
설명 워크로드 엔드포인트에서 호스트 자신으로 향하는 트래픽(엔드포인트의 egress 정책 적용 후)을 어떻게 처리할지 제어해요. 기본적으로 Calico는 iptables "DROP" 액션으로 워크로드 엔드포인트에서 호스트 자신으로 향하는 트래픽을 차단해요. 엔드포인트에서 호스트로 향하는 트래픽을 일부 또는 전부 허용하려면 이 파라미터를 RETURN 또는 ACCEPT로 설정하세요. iptables "INPUT" 체인에 자체 규칙이 있다면 RETURN을 사용하세요. Calico는 그 체인 맨 위에 자신의 규칙을 삽입하고, 워크로드 엔드포인트 egress 정책 처리를 마친 뒤 패킷을 "RETURN"으로 "INPUT" 체인에 되돌려 줘요. 워크로드 엔드포인트 egress 정책 처리 후 워크로드에서 온 패킷을 무조건 수락하려면 ACCEPT를 사용하세요.
스키마 ACCEPT, DROP, RETURN 중 하나
기본값 DROP

DeviceRouteProtocol

탭: 구성 파일

속성 값
키 DeviceRouteProtocol
설명 Felix가 프로그래밍하는 경로에 설정할 프로토콜을 제어해요. 프로토콜은 경로의 소유자를 식별하는 데 쓰이는 8비트 라벨이에요.
스키마 정수
기본값 3

탭: 환경 변수

속성 값
키 FELIX_DEVICEROUTEPROTOCOL
설명 Felix가 프로그래밍하는 경로에 설정할 프로토콜을 제어해요. 프로토콜은 경로의 소유자를 식별하는 데 쓰이는 8비트 라벨이에요.
스키마 정수
기본값 3

DeviceRouteSourceAddress

탭: 구성 파일

속성 값
키 DeviceRouteSourceAddress
설명 Felix가 프로그래밍하는 경로의 소스 힌트로 설정할 IPv4 주소예요. 설정하지 않으면 호스트에서 워크로드로 향하는 로컬 트래픽의 소스 주소는 커널이 결정해요.
스키마 IPv4 주소
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_DEVICEROUTESOURCEADDRESS
설명 Felix가 프로그래밍하는 경로의 소스 힌트로 설정할 IPv4 주소예요. 설정하지 않으면 호스트에서 워크로드로 향하는 로컬 트래픽의 소스 주소는 커널이 결정해요.
스키마 IPv4 주소
기본값 없음

DeviceRouteSourceAddressIPv6

탭: 구성 파일

속성 값
키 DeviceRouteSourceAddressIPv6
설명 Felix가 프로그래밍하는 경로의 소스 힌트로 설정할 IPv6 주소예요. 설정하지 않으면 호스트에서 워크로드로 향하는 로컬 트래픽의 소스 주소는 커널이 결정해요.
스키마 IPv6 주소
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_DEVICEROUTESOURCEADDRESSIPV6
설명 Felix가 프로그래밍하는 경로의 소스 힌트로 설정할 IPv6 주소예요. 설정하지 않으면 호스트에서 워크로드로 향하는 로컬 트래픽의 소스 주소는 커널이 결정해요.
스키마 IPv6 주소
기본값 없음

DisableConntrackInvalidCheck

탭: 구성 파일

속성 값
키 DisableConntrackInvalidCheck
설명 conntrack에서 잘못된(invalid) 연결을 검사하는 기능을 비활성화해요. conntrack invalid 검사는 악성 트래픽 탐지에 도움이 되지만, 특정 멀티 NIC 시나리오에서는 문제를 일으킬 수도 있어요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

탭: 환경 변수

속성 값
키 FELIX_DISABLECONNTRACKINVALIDCHECK
설명 conntrack에서 잘못된(invalid) 연결을 검사하는 기능을 비활성화해요. conntrack invalid 검사는 악성 트래픽 탐지에 도움이 되지만, 특정 멀티 NIC 시나리오에서는 문제를 일으킬 수도 있어요.
스키마 불리언: true, 1, yes, y, t는 True로, false, 0, no, n, f는 (대소문자 구분 없이) False로 처리돼요.
기본값 false

EndpointStatusPathPrefix

탭: 구성 파일

속성 값
키 EndpointStatusPathPrefix
설명 엔드포인트 상태를 기록할 디렉터리 경로예요. 필드를 비워 두면 엔드포인트 상태 파일 보고가 비활성화돼요. 선택한 디렉터리는 PodStartupDelay를 위해 CNI 플러그인이 사용하는 디렉터리와 일치해야 해요.
스키마 파일 경로
기본값 /var/run/calico

탭: 환경 변수

속성 값
키 FELIX_ENDPOINTSTATUSPATHPREFIX
설명 엔드포인트 상태를 기록할 디렉터리 경로예요. 필드를 비워 두면 엔드포인트 상태 파일 보고가 비활성화돼요. 선택한 디렉터리는 PodStartupDelay를 위해 CNI 플러그인이 사용하는 디렉터리와 일치해야 해요.
스키마 파일 경로
기본값 /var/run/calico

ExternalNodesCIDRList

탭: 구성 파일

속성 값
키 ExternalNodesCIDRList
설명 VXLAN/IPIP 오버레이 트래픽을 허용할 외부 non-Calico 노드의 CIDR 목록이에요. 기본적으로 외부 터널 트래픽은 공격 표면을 줄이기 위해 차단돼요.
스키마 쉼표로 구분된 CIDR 목록
기본값 없음

탭: 환경 변수

속성 값
키 FELIX_EXTERNALNODESCIDRLIST
설명 VXLAN/IPIP 오버레이 트래픽을 허용할 외부 non-Calico 노드의 CIDR 목록이에요. 기본적으로 외부 터널 트래픽은 공격 표면을 줄이기 위해 차단돼요.
스키마 쉼표로 구분된 CIDR 목록
기본값 없음

FailsafeInboundHostPorts

탭: 구성 파일

속성 값
키 FailsafeInboundHostPorts
설명 보안 정책과 무관하게 호스트 엔드포인트로 들어오는 트래픽을 Felix가 허용할 UDP/TCP/SCTP 포트와 CIDR을 담은 ProtoPort 구조체 객체 목록이에요. 잘못된 구성으로 호스트가 실제로 cut off되는 사고를 피하는 데 유용해요. 하위 호환성을 위해 프로토콜을 지정하지 않으면 "tcp"가 기본값이에요. CIDR을 지정하지 않으면 모든 주소에서 오는 트래픽을 허용해요. 인바운드 호스트 포트를 모두 끄려면 "[]" 값을 사용하세요. 기본값은 ssh 접근, DHCP, BGP, etcd, Kubernetes API를 허용해요.
스키마 프로토콜과 CIDR을 선택적으로 붙일 수 있는 숫자 포트의 쉼표 구분 목록:(tcp|udp):<cidr>:<port>, (tcp|udp):<port>, <port>. IPv6 CIDR은 반드시 대괄호로 감싸야 해요.
기본값 tcp:22,udp:68,tcp:179,tcp:2379,tcp:2380,tcp:5473,tcp:6443,tcp:6666,tcp:6667

탭: 환경 변수

속성 값
키 FELIX_FAILSAFEINBOUNDHOSTPORTS
설명 보안 정책과 무관하게 호스트 엔드포인트로 들어오는 트래픽을 Felix가 허용할 UDP/TCP/SCTP 포트와 CIDR을 담은 ProtoPort 구조체 객체 목록이에요. 잘못된 구성으로 호스트가 실제로 cut off되는 사고를 피하는 데 유용해요. 하위 호환성을 위해 프로토콜을 지정하지 않으면 "tcp"가 기본값이에요. CIDR을 지정하지 않으면 모든 주소에서 오는 트래픽을 허용해요. 인바운드 호스트 포트를 모두 끄려면 "[]" 값을 사용하세요. 기본값은 ssh 접근, DHCP, BGP, etcd, Kubernetes API를 허용해요.
스키마 프로토콜과 CIDR을 선택적으로 붙일 수 있는 숫자 포트의 쉼표 구분 목록:(tcp|udp):<cidr>:<port>, (tcp|udp):<port>, <port>. IPv6 CIDR은 반드시 대괄호로 감싸야 해요.
기본값 tcp:22,udp:68,tcp:179,tcp:2379,tcp:2380,tcp:5473,tcp:6443,tcp:6666,tcp:6667

FailsafeOutboundHostPorts

탭: 구성 파일

속성 값
키 FailsafeOutboundHostPorts
설명 보안 정책과 무관하게 호스트 엔드포인트에서 내보내는 트래픽을 Felix가 허용할 UDP/TCP/SCTP 포트와 CIDR을 담은 PortProto 구조체 객체 목록이에요. 잘못된 구성으로 호스트가 실제로 cut off되는 사고를 피하는 데 유용해요. 하위 호환성을 위해 프로토콜을 지정하지 않으면 "tcp"가 기본값이에요. CIDR을 지정하지 않으면 모든 주소로 향하는 트래픽을 허용해요. 아웃바운드 호스트 포트를 모두 끄려면 "[]" 값을 사용하세요. 기본값은 Felix가 etcd와의 연결이 끊기지 않도록 etcd 표준 포트를 열어 주고, DHCP, DNS, BGP, Kubernetes API도 허용해요.
스키마 프로토콜과 CIDR을 선택적으로 붙일 수 있는 숫자 포트의 쉼표 구분 목록:(tcp|udp):<cidr>:<port>, (tcp|udp):<port>, <port>. IPv6 CIDR은 반드시 대괄호로 감싸야 해요.
기본값 udp:53,udp:67,tcp:179,tcp:2379,tcp:2380,tcp:5473,tcp:6443,tcp:6666,tcp:6667

탭: 환경 변수

속성 값
키 FELIX_FAILSAFEOUTBOUNDHOSTPORTS
설명 보안 정책과 무관하게 호스트 엔드포인트에서 내보내는 트래픽을 Felix가 허용할 UDP/TCP/SCTP 포트와 CIDR을 담은 PortProto 구조체 객체 목록이에요. 잘못된 구성으로 호스트가 실제로 cut off되는 사고를 피하는 데 유용해요. 하위 호환성을 위해 프로토콜을 지정하지 않으면 "tcp"가 기본값이에요. CIDR을 지정하지 않으면 모든 주소로 향하는 트래픽을 허용해요. 아웃바운드 호스트 포트를 모두 끄려면 "[]" 값을 사용하세요. 기본값은 Felix가 etcd와의 연결이 끊기지 않도록 etcd 표준 포트를 열어 주고, DHCP, DNS, BGP, Kubernetes API도 허용해요.
스키마 프로토콜과 CIDR을 선택적으로 붙일 수 있는 숫자 포트의 쉼표 구분 목록:(tcp|udp):<cidr>:<port>, (tcp|udp):<port>, <port>. IPv6 CIDR은 반드시 대괄호로 감싸야 해요.
기본값 udp:53,udp:67,tcp:179,tcp:2379,tcp:2380,tcp:5473,tcp:6443,tcp:6666,tcp:6667

FloatingIPs

탭: 구성 파일

속성 값
키 FloatingIPs
설명 Felix가 OpenStack이 아닌 floating IP 주소를 프로그래밍할지 여부를 구성해요. (OpenStack에서 유래한 floating IP는 이 설정과 무관하게 항상 프로그래밍돼요.)
스키마 Disabled, Enabled 중 하나
기본값 Disabled

탭: 환경 변수

속성 값
키 FELIX_FLOATINGIPS
설명 Felix가 OpenStack이 아닌 floating IP 주소를 프로그래밍할지 여부를 구성해요. (OpenStack에서 유래한 floating IP는 이 설정과 무관하게 항상 프로그래밍돼요.)
스키마 Disabled, Enabled 중 하나
기본값 Disabled

IPForwarding

더 알아보기 (Learn more)

Felix 구성의 다른 항목들은 이 레퍼런스의 앞뒤 파트에서 이어서 설명해요. Prometheus 메트릭 노출을 조이고 싶다면 PrometheusProcessMetricsEnabled부터 살펴보고, iptables 체인 훅 방식을 바꿀 때는 ChainInsertMode의 주의 사항을 꼭 읽어 보세요.