중요
다중 계정 라우팅에는 nr-ebpf-agent Helm 차트 버전 1.5.0 이상이 필요합니다. 이 기능은 eBPF 에이전트의 Kubernetes 배포에서만 사용할 수 있습니다.
Kubernetes 클러스터가 여러 팀이나 테넌트를 호스팅하는 경우, 워크로드가 실행되는 Kubernetes 네임스페이스를 기반으로 텔레메트리를 다른 뉴렐릭 계정으로 라우팅하도록 뉴렐릭 eBPF 에이전트를 구성할 수 있습니다. 이를 통해 단일 eBPF 에이전트 데몬셋이 전체 클러스터를 포괄하는 동안 각 팀의 데이터가 자체 계정에 저장되도록 할 수 있습니다.
다중 계정 라우팅 작동 방식
eBPF 에이전트 데몬셋은 NAMESPACE_LICENSE_KEY_MAP 환경 변수로 주입된 Kubernetes 시크릿에서 네임스페이스-라이선스 키 맵을 읽습니다. 이 맵을 제공하는 방법에는 두 가지가 있으며, 상호 배타적입니다:
namespaceLicenseKeys—values.yaml에서 맵을 직접 정의합니다. 차트는 사용자를 위해 생성한 시크릿에 이를 저장합니다.customSecretNamespaceLicenseKeys― 직접 생성하고 관리하는 Kubernetes 시크릿을 가리키도록 하여 라이선스 키가values.yaml또는 소스 제어에 나타나지 않도록 합니다.
팁
namespaceLicenseKeys 및 customSecretNamespaceLicenseKeys을(를) 모두 설정하면 namespaceLicenseKeys 이(가) 우선순위를 가지며 사용자 지정 시크릿은 무시됩니다. 하나만 설정하세요.
주어진 파드에 대해 에이전트는 맵에서 파드의 네임스페이스를 찾습니다:
- 네임스페이스가 맵의 키인 경우 해당 네임스페이스의 텔레메트리가 해당 계정으로 라우팅됩니다.
- 네임스페이스가 맵에 없으면 텔레메트리는 클러스터의 전역
licenseKey또는customSecretName(으)로 폴백합니다.
다중 계정 라우팅 설정
라이선스 키를 values.yaml 에 인라인으로 포함할지 아니면 별도로 관리하는 시크릿에 포함할지에 따라 다음 옵션 중 하나를 선택하세요.
자체 계정으로 라우팅하려는 네임스페이스당 하나의 항목을 사용하여 values.yaml에 namespaceLicenseKeys 맵을 추가합니다:
namespaceLicenseKeys: team-a: "NRAK-aaa..." team-b: "NRAK-bbb..."그런 다음 변경 사항을 적용합니다:
$helm upgrade --install nr-ebpf-agent newrelic/nr-ebpf-agent -n newrelic --values values.yaml주의
이는 라이선스 키를 values.yaml에 직접 저장합니다. 이 파일을 소스 제어에 커밋하는 경우 대신 사용자 지정 시크릿 옵션을 사용하세요.
이름이 정확히 NAMESPACE_LICENSE_KEY_MAP인 데이터 키를 사용하여 Kubernetes 시크릿을 생성합니다. 이 키의 값은 JSON으로 인코딩된 네임스페이스 대 라이선스 키 맵입니다. 시크릿은 eBPF agent 릴리스와 동일한 네임스페이스에 있어야 합니다.
apiVersion: v1kind: Secretmetadata: name: my-nr-namespace-keys namespace: newrelictype: OpaquestringData: NAMESPACE_LICENSE_KEY_MAP: '{"team-a":"NRAK-aaa...","team-b":"NRAK-bbb..."}'그런 다음 values.yaml에서 시크릿을 참조하고 namespaceLicenseKeys 은 비워 둡니다:
namespaceLicenseKeys: {}customSecretNamespaceLicenseKeys: "my-nr-namespace-keys"변경 사항 적용:
$helm upgrade --install nr-ebpf-agent newrelic/nr-ebpf-agent -n newrelic --values values.yaml중요
시크릿의 데이터 키는 정확히 NAMESPACE_LICENSE_KEY_MAP 이어야 합니다 ― 차트에서 이름을 변경하지 않습니다. 값은 큰따옴표로 묶인 키와 값이 있는 유효한 JSON이어야 하며, 형식이 잘못된 맵은 라우팅을 완전히 비활성화합니다(에이전트는 이를 비어 있는 것으로 처리합니다).
알아두어야 할 사항
- 라우팅하는 워크로드 네임스페이스(
team-a등)가 아닌 eBPF agent 릴리스와 동일한 네임스페이스(예:newrelic)에 사용자 지정 시크릿을 생성하세요. namespaceLicenseKeys와(과)customSecretNamespaceLicenseKeys을(를) 모두 설정하지 마십시오. 둘 다 비어 있지 않으면 인라인 맵이 자동으로 우선 적용됩니다.- 맵에 나열되지 않은 네임스페이스는 클러스터의 전역
licenseKey또는customSecretName을(를) 계속 사용합니다. 이러한 설정에 대한 자세한 내용은 K8s 설정 파라미터 를 참조하세요.