AL2, gp2 스토리지 클래스, 50GiB 루트 볼륨, 기본 Docker CPM 설치 및 한 번에 1개의 모니터가 1로 설정된 AWS EC2 m5.xlarge 인스턴스에서 https://newrelic.com 에 대한 쓰기 처리량을 모니터링하여 측정했습니다. 미세한 주파수. 여러 모니터를 실행하면 효율성이 향상될 것으로 예상됩니다. 이 값은 여러 요인에 따라 사용자의 값보다 높거나 낮을 수 있습니다.
docker 분당 호출수는 호환성 변경으로 인해 docker Engine 26.0 이상을 지원하지 않습니다. docker 26+ 지원을 원하는 고객은 신세틱스 Job Manager로 마이그레이션해야 합니다.
주의
Docker CPM은 AWS ECS, Docker Swarm, Apache Mesos, Azure Container Instances 등과 같은 컨테이너 오케스트레이터와 함께 사용하도록 설계되지 않았습니다. 컨테이너 오케스트레이터에서 Docker CPM을 실행하면 자체적으로 컨테이너 오케스트레이터이기 때문에 예기치 않은 문제가 발생합니다. 컨테이너 오케스트레이션을 사용하는 경우 Kubernetes CPM 요구 사항 을 참조하세요.
호환성
요구 사항
운영 체제
Linux kernel: 3.10 이상 macOS: 10.11 이상
컨테이너화된 프라이빗 미니언을 포함한 Linux 컨테이너는 Linux K8s 노드에서만 실행됩니다.
프로세서
최신 멀티코어 CPU
미니언 포드
CPU (vCPU/Core): 0.5-0.75 Memory: 800Mi-1600Mi
미니언 포드에 할당된 리소스는 사용자가 구성할 수 있습니다.
러너 포드
CPU (vCPU/Core): 0.5-1 Memory: 1250Mi-3000Mi
스크립팅된 API 검사의 경우 1250Mi가 요청되며 2500Mi 제한이 있습니다.
간단한 브라우저 또는 스크립트로 작성된 브라우저 검사의 경우 2000Mi가 요청되며 3000Mi의 제한이 있습니다.
추가 고려 사항:
러너 포드에 할당된 리소스는 사용자가 구성할 수 없습니다.
CPU와 메모리 모두에 대한 최대 제한 요청 리소스 비율은 2입니다.
디스크 크기
Root volume: 최소 50GiB(노드 + PV) Persistent volume (PV): 최소 20GiB
ReadWriteOnce (RWO) PV가 미니언에 제공되면 미니언과 러너 컨테이너가 동일한 노드에서 예약되도록 암시적 노드 선호도가 설정됩니다. 이는 클러스터의 단일 노드에서만 RWO PV에 액세스할 수 있으므로 미니언 및 관련 러너가 PV에 액세스할 수 있도록 하는 데 필요합니다.
gp2 스토리지 클래스, 50GiB 루트 볼륨, 20GiB PV/PVC(RWO 액세스 모드 포함), a Helm을 통한 기본 Kubernetes CPM 설치 및 1분 간격으로 설정된 시간에 1개의 모니터. 여러 모니터를 실행하면 효율성이 향상될 것으로 예상됩니다. 이 값은 여러 요인에 따라 사용자의 값보다 높거나 낮을 수 있습니다.
샌드박싱 및 Docker 종속성은 Docker 컨테이너 시스템 환경의 CPM에 적용할 수 있습니다.
CPM은 Docker에서 실행되며 Docker를 샌드박싱 기술로 활용할 수 있습니다. 이렇게 하면 모니터 실행이 완전히 격리되어 보안, 안정성 및 반복성이 향상됩니다. 스크립팅된 또는 브라우저 모니터가 실행될 때마다 CPM은 실행자라는 새로운 Docker 컨테이너를 생성하여 실행합니다.
추가 러너 컨테이너를 생성하려면 미니언 컨테이너를 Docker 엔진과 통신하도록 구성해야 합니다. 생성된 각 컨테이너는 미니언 컨테이너가 연결된 개인 위치에서 실행되는 합성 모니터 와 연결된 검사를 실행하는 데 전용됩니다.
시작 시 두 가지 중요한 종속성이 있습니다. 샌드박싱을 활성화하려면 다음을 확인하세요.
쓰기 가능하고 실행 가능한 디렉토리는 /tmp 에 마운트됩니다. 쓰기 가능한 디렉토리는 CPM이 쓰기를 원하는 모든 디렉토리일 수 있지만 New Relic은 작업을 쉽게 하기 위해 시스템 고유의 /tmp 를 권장합니다.
쓰기 가능한 Docker UNIX 소켓은 /var/run/docker.sock 또는 DOCKER_HOST환경 변수 에 마운트됩니다. 자세한 내용은 Docker의 데몬 소켓 옵션 을 참조하십시오.
주의
호스트의 코어 수는 분당 호출이 호스트에서 동시에 실행할 수 있는 실행기 컨테이너 수를 결정합니다. 메모리 요구 사항은 예상되는 실행기 컨테이너 수에 따라 조정되므로 리소스 경합을 방지하려면 not running multiple CPMs on the same host 사용하는 것이 좋습니다.
로컬 이미지 저장소에서 이미지를 호스팅하지 않는 한 Docker가 합성 미니언 및 합성 미니언 러너 이미지를 가져오려면 방화벽을 통해 quay.io 또는 docker.io 에 대한 연결을 허용해야 합니다. "runner" 이미지는 합성 미니언 컨테이너를 시작할 때 자동으로 가져옵니다. 로컬 리포지토리 및 러너 레지스트리 끝점을 설정하는 방법에 대한 자세한 내용은 Docker 환경 구성 및 Kubernetes 환경 구성 을 참조하세요.
Kubernetes 컨테이너 조정 시스템 환경의 CPM의 경우 다음 Helm show 명령을 사용하여 각각 chart.yaml 및 values.yaml 를 볼 수 있습니다.
helm show chart YOUR_REPO_NAME/synthetics-minion
helm show values YOUR_REPO_NAME/synthetics-minion
라이선스 정보 표시
CPM에서 사용하는 오픈 소스 소프트웨어에 대한 라이선스 정보를 표시하려면 LICENSE 명령어를 실행하세요.
CPM 버전 2.2.27 이상에 대한 라이선스 정보를 보려면 이 명령을 실행하십시오.
docker run quay.io/newrelic/synthetics-minion:latest LICENSE
당사의 오픈 소스 소프트웨어 중 일부는 여러 소프트웨어 라이선스 아래에 나열되어 있으며, 이 경우 사용하기로 선택한 라이선스를 나열했습니다. 라이선스 정보는 라이선스 문서 에서도 확인할 수 있습니다.
CPM 구성
사용자 정의 노드 모듈을 사용하여 컨테이너화된 프라이빗 미니언을 구성하고, 새로 설치 사이에 데이터를 보존하고, 환경 변수를 사용하는 등의 작업을 수행할 수 있습니다. 자세한 내용은 분당 호출 수 설정을 참조하세요.
네트워크
Docker 및 Kubernetes 모두에서 CPM 및 해당 러너 컨테이너는 호스트에서 네트워크 설정을 상속합니다. Docker 컨테이너 시스템 환경에서의 이에 대한 예는 Docker 사이트 를 참조하십시오.
각 러너 컨테이너에 대해 새 브리지 네트워크가 생성됩니다. 즉, 시작 시 CPM 컨테이너에 전달된 --network 및 --dns 과 같은 네트워킹 명령 옵션(예: Docker 컨테이너 시스템 환경에서 Docker 실행 명령을 통해)은 러너 컨테이너에서 상속되거나 사용되지 않습니다.
이러한 네트워크는 생성될 때 데몬에 대해 구성된 기본 IP 주소 풀에서 가져옵니다. Docker 컨테이너 시스템 환경에서의 이에 대한 예는 Docker 사이트 를 참조하십시오.
일반적으로 러너 네트워크는 검사가 완료된 후 제거됩니다. 그러나 검사가 계속 실행되는 동안 CPM이 종료되거나 다른 예기치 않은 상황에서 종료되면 이러한 네트워크가 분리될 수 있습니다. 이는 잠재적으로 Docker 데몬에서 사용할 수 있는 IP 주소 공간을 사용할 수 있습니다.
이 경우 새 러너 컨테이너를 만들려고 할 때 CPM 로깅에 INTERNAL ENGINE ERROR code: 31 항목이 표시될 수 있습니다. Docker 컨테이너 시스템 환경에서만 이를 정리하려면 docker network prune 을 실행합니다.
보안, 샌드박싱 및 루트가 아닌 사용자로 실행
기본적으로 CPM 내에서 실행되는 소프트웨어는 root 사용자 권한으로 실행됩니다. 실행이 샌드박스 처리되므로 대부분의 시나리오에 적합합니다.
Docker 컨테이너 시스템 환경에서: 모니터를 실행하기 위해 CPM이 생성하는 컨테이너에서 사용하는 기본 AppArmor 프로필을 변경하려면 환경 변수MINION_RUNNER_APPARMOR (CPM 버전 3.0.3 이상) 또는 MINION_DOCKER_RUNNER_APPARMOR (CPM 버전 v3. 0.2).
my_user 에 CPM에 전달된 모든 디렉터리 및 볼륨에 대한 읽기/쓰기 권한이 있는지 확인합니다. 이러한 권한을 설정하려면 chmod 명령을 사용하십시오.
실행 명령 id -u my_user 에서 사용할 my_user 의 uid 을(를) 가져옵니다.
이러한 조건이 충족되면 CPM을 시작할 때 "-u <uid>:<gid>" 옵션을 사용하십시오.
docker run ... -u 1002 ...
또는
docker run ... -u 1002 -e DOCKER_HOST=http://localhost:2375 ...
도커 이미지 저장소
단일 CPM Docker 이미지는 Docker 컨테이너 시스템 환경과 Kubernetes 컨테이너 오케스트레이션 시스템 환경을 모두 제공합니다. Docker 이미지는 quay.io에서 호스팅됩니다. Docker 이미지가 최신 상태인지 확인하려면 quay.io newrelic/synthetics-minion 저장소 를 참조하십시오.
CPM 연결에 대한 추가 고려 사항
연결
설명
인터넷에 액세스할 수 없는 CPM
CPM은 인터넷에 액세스하지 않고도 작동할 수 있지만 몇 가지 예외가 있습니다. 공개 인터넷 상태 확인은 Docker 컨테이너 시스템 환경의 경우 MINION_NETWORK_HEALTHCHECK_DISABLED , Kubernetes 컨테이너 조정 시스템 환경의 경우 synthetics.minionNetworkHealthCheckDisabled 이라는 환경 변수 를 사용하여 비활성화할 수 있습니다. CPM은 "synthetics-horde.nr-data.net" 도메인에 연결할 수 있어야 합니다. 이것은 New Relic에 데이터를 보고하고 실행할 모니터를 수신하는 데 필요합니다. 이것이 문제인지 그리고 어떻게 예외를 설정하는지 네트워크 관리자에게 문의하십시오.
프록시를 통해 합성과 통신
프록시로 New Relic과 통신을 설정하려면 다음과 같은 환경 변수 를 사용하십시오. MINION_API_PROXY*.
실행 시 통과된 인수
이는 Docker 컨테이너 환경에만 적용됩니다. 시작 시 CPM 컨테이너에 전달된 인수는 CPM에 의해 생성된 컨테이너로 전달되지 않습니다. Docker에는 컨테이너의 "상속" 또는 "계층" 개념이 없으며 CPM에서 모니터 실행 컨테이너로 전달되는 구성을 복사하지 않습니다. 그들 사이의 유일한 공유 구성은 Docker 데몬 수준에서 설정된 구성입니다.