도커 신세틱스 작업 관리자는 AWS ECS, 도커 Swarm, 아파치 Mesos, Azure 컨테이너 외부 등과 같은 컨테이너 오케스트레이터와 함께 사용하도록 설계되지 않았습니다. 컨테이너 오케스트레이터에서 도커 신세틱스 작업 관리자를 실행하면 오케스트레이터 자체로 작동하므로 예상치 못한 문제가 발생합니다. 컨테이너 오케스트레이션을 사용하는 경우 Kubernetes 신세틱스 작업 관리자 요구 사항을 참조하세요.
Podman 신세틱스 작업 관리자는 AWS ECS, 도커 Swarm, 아파치 Mesos, Azure 컨테이너 외부 등과 같은 컨테이너 오케스트레이터와 함께 사용하도록 설계되지 않았습니다. 컨테이너 오케스트레이터에서 도커 신세틱스 작업 관리자를 실행하면 오케스트레이터 자체로 작동하므로 예상치 못한 문제가 발생합니다. 컨테이너 오케스트레이션을 사용하는 경우 Kubernetes 신세틱스 작업 관리자 요구 사항을 참조하세요.
로컬 이미지에서 이미지를 호스팅하지 않는 한, 도커 또는 Podman이 신세틱스 작업 관리자 및 신세틱스 따로 이미지를 가져올 수 있도록 소속을 통해 docker.io 에 대한 연결을 허용해야 합니다. 신세틱스 작업 관리자가 시작되면 런타임 이미지가 자동으로 가져옵니다. 로컬 및 러너 레지스트리 엔드포인트를 설정하는 방법에 대한 자세한 내용은 도커 환경 설정, Podman 환경 설정 및 Kubernetes 환경 설정을 참조하세요.
각 포드의 status 속성이 running 로 표시되면 합성 작업 관리자가 작동되어 개인 위치에 할당된 모니터를 실행할 준비가 된 것입니다.
합성 작업 관리자 중지 또는 삭제
도커 또는 Podman 컨테이너 시스템 환경에서는 해당 stop 프로시저를 사용하여 신세틱스 작업 관리자를 중지합니다. Kubernetes Container 오케스트레이션 시스템 환경에서 Kubernetes delete 프로시저를 사용하여 신세틱스 작업 관리자 실행을 중지합니다.
Kubernetes 클러스터에서 합성 작업 관리자에 대해 설정된 네임스페이스를 삭제합니다.
bash
$
kubectl delete namespace YOUR_NAMESPACE
샌드박싱과 의존성/종속성
Sandboxing 및 의존성/종속성은 도커 또는 Podman 컨테이너 시스템 환경의 신세틱스 작업 관리자에 적용 가능합니다.
합성 작업 관리자는 Docker에서 실행되며 Docker를 샌드박싱 기술로 활용할 수 있습니다. 이렇게 하면 모니터 실행이 완전히 격리되어 보안, 안정성 및 반복성이 향상됩니다. 스크립트 또는 브라우저 모니터가 실행될 때마다 합성 작업 관리자는 일치하는 런타임을 사용하여 실행할 새로운 Docker 컨테이너를 만듭니다.
추가 런타임 컨테이너를 생성하려면 합성 작업 관리자 컨테이너를 Docker 엔진과 통신하도록 구성해야 합니다. 생성된 각 컨테이너는 합성 작업 관리자 컨테이너가 연결된 개인 위치에서 실행되는 합성 모니터 와 연결된 검사를 실행하기 위해 전용됩니다.
시작 시 결정적인 종속성이 있습니다. 샌드박싱을 활성화하려면 다음을 확인하세요.
쓰기 가능한 Docker UNIX 소켓은 /var/run/docker.sock 또는 DOCKER_HOST환경 변수 에 마운트됩니다. 자세한 내용은 Docker의 데몬 소켓 옵션 을 참조하십시오.
주의
호스트의 코어 수는 호스트에서 동시에 실행할 수 있는 런타임 컨테이너 신세틱스 작업 수를 결정합니다. 메모리 요구 사항은 예상되는 런타임 컨테이너 수에 따라 확장되므로 리소스 경합을 방지하려면 not running multiple synthetics job managers on the same host 사용하는 것이 좋습니다.
신세틱스 작업 관리자는 Podman에서 실행되며 Podman을 샌드박싱 기술로 활용할 수 있습니다. 이를 통해 모니터 실행이 완전히 격리되어 보안, 안정성 및 반복성이 향상됩니다. 스크립트 또는 브라우저 모니터가 실행될 때마다 신세틱스 작업 관리자는 일치하는 런타임을 사용하여 이를 실행할 새로운 Podman 컨테이너를 생성합니다.
추가 런타임 컨테이너를 생성하려면 Podman 엔진과 통신하도록 신세틱스 작업 관리자 컨테이너를 구성해야 합니다. 그런 다음 생성된 각 컨테이너는 신세틱스 작업 관리자 터미널과 연결된 구역 위치에서 실행되는 합성 모니터 와 관련된 검사를 실행하는 데 전용입니다.
Podman API 서비스를 생성하고 Podman을 설정하여 HTTP API 액세스를 제공합니다.
mkdir -p ~/.config/systemd/user
touch ~/.config/systemd/user/podman-api.service
vi ~/.config/systemd/user/podman-api.service
포트 8000에서 Podman의 API를 공개하는 서비스를 정의합니다.
[Unit]
Description=Podman API Service
After=default.target
[Service]
Type=simple
ExecStart=/usr/bin/podman system service -t 0 tcp:0.0.0.0:8000
Restart=on-failure
[Install]
WantedBy=default.target
Podman API 서비스를 활성화하고 시작했습니다.
systemctl --user daemon-reload
systemctl --user enable podman-api.service
systemctl --user start podman-api.service
systemctl --user status podman-api.service
주의
호스트의 코어 수는 호스트에서 동시에 실행할 수 있는 런타임 컨테이너 신세틱스 작업 수를 결정합니다. 메모리 요구 사항은 예상되는 런타임 컨테이너 수에 따라 확장되므로 리소스 경합을 방지하려면 not running multiple synthetics job managers on the same host 사용하는 것이 좋습니다.
보안, 샌드박싱 및 루트가 아닌 사용자로 실행
기본적으로 합성 작업 관리자 내에서 실행되는 소프트웨어는 root 사용자 권한으로 실행됩니다. 실행이 샌드박스 처리되므로 대부분의 시나리오에 적합합니다.
Kubernetes 컨테이너 조정 시스템 환경의 합성 작업 관리자의 경우 다음 Helm show 명령을 사용하여 각각 chart.yaml 및 values.yaml 를 볼 수 있습니다.
bash
$
helm show chart YOUR_REPO_NAME/synthetics-job-manager
bash
$
helm show values YOUR_REPO_NAME/synthetics-job-manager
당사의 오픈 소스 소프트웨어 중 일부는 여러 소프트웨어 라이선스 아래에 나열되어 있으며, 이 경우 사용하기로 선택한 라이선스를 나열했습니다. 라이선스 정보는 라이선스 문서 에서도 확인할 수 있습니다.
Docker 및 Kubernetes 모두에서 합성 작업 관리자와 해당 런타임 컨테이너는 호스트에서 네트워크 설정을 상속합니다. Docker 컨테이너 시스템 환경에서의 이에 대한 예는 Docker 사이트 를 참조하십시오.
합성 작업 관리자와 런타임 컨테이너 간의 통신을 위해 브리지 네트워크가 생성됩니다. 즉, 실행 시 합성 작업 관리자 컨테이너에 전달된 --network 및 --dns 과 같은 네트워킹 명령 옵션(예: Docker 컨테이너 시스템 환경에서 Docker 실행 명령을 통해)은 런타임 컨테이너에서 상속되거나 사용되지 않습니다.
이러한 네트워크는 생성될 때 데몬에 대해 구성된 기본 IP 주소 풀에서 가져옵니다. Docker 컨테이너 시스템 환경에서의 이에 대한 예는 Docker 사이트 를 참조하십시오.
Podman의 경우 신세틱스 작업 관리자와 런타임 컨테이너 간의 통신을 위해 브리지 네트워크를 사용하지 않고 대신 Podman Pad를 사용합니다. Podman 파드의 모든 컨테이너는 동일한 네트워크 지우스페이스를 공유합니다. 즉, 해당 파드 내에서는 동일한 IP 주소를 공유한다는 뜻입니다. 이 경우 컨테이너가 동일한 IP를 공유하더라도 서비스는 서로 다른 포트에 노출됩니다.
합성 작업 관리자는 인터넷에 액세스하지 않고도 작동할 수 있지만 몇 가지 예외가 있습니다. 합성 작업 관리자는 "synthetics-horde.nr-data.net" 도메인에 연결할 수 있어야 합니다. 이것은 New Relic에 데이터를 보고하고 실행할 모니터를 수신하는 데 필요합니다. 이것이 문제인지 그리고 어떻게 예외를 설정하는지 네트워크 관리자에게 문의하십시오.
프록시를 통해 합성과 통신
프록시로 New Relic과 통신을 설정하려면 다음과 같은 환경 변수 를 사용하십시오. HORDE_API_PROXY*.
실행 시 통과된 인수
이는 도커 및 Podman 컨테이너 환경에만 적용됩니다. 신세틱스 작업 관리자 터미널에 전달된 인수는 신세틱스 작업 관리자가 생성한 런타임 컨테이너로 전달되지 않습니다. 도커와 Podman에는 컨테이너의 "상속" 또는 "계층 구조"에 대한 개념이 없으며 신세틱스 작업 관리자에서 런타임 컨테이너로 전달된 설정을 복사하지 않습니다. 그러나 파드 수준에서 전달된 Podman 인수의 경우 파드에서 신세틱스 작업 관리자와 런타임 컨테이너 간에 공유됩니다. 그들 사이에서 공유되는 유일한 설정은 도커 데몬 레벨에서 설정된 설정입니다.