New Relicのコンテナ化されたプライベートミニオン(CPM)を使用できます。これらはDockerコンテナベースのプライベートミニオンであり、 プライベートロケーションに対して合成モニターを受け入れて実行します。
CPMは、Dockerコンテナシステム環境またはKubernetesコンテナオーケストレーションシステム環境で動作できます。CPMはその環境を自動検出して、適切な動作モードを選択します。
一般的なプライベートミニオンの機能
CPMは仮想マシンではなくコンテナとして動作するため、次のような多くの機能を提供します。
Kubernetes固有の機能
また、CPMはKubernetes環境で次の機能を提供します。
- Kubernetes APIと統合して、ランタイムライフサイクル管理をKubernetesに委任します
- Dockerソケットへの特権アクセスは必要ありません
- ホストされたオンプレミスのKubernetesクラスターをサポートします
- DockerやContainerdなどのさまざまなコンテナエンジンをサポートします
- Helmチャートと構成YAMLを介してデプロイ可能
- 最適なリソース管理のために、ジョブ(pingチェックと非pingチェック)ベースのリソース割り当てを可能にします
- NewRelicKubernetesクラスターエクスプローラーを介して提供される可観測性
システム要件と互換性
CPMをホストするには、システムが選択したシステム環境の最小要件を満たしている必要があります。
注意
CPMファイルは変更しないでください。New Relicは、ユーザーが行った変更について責任を負いません。詳細については、アカウント担当者またはNewRelicテクニカルセールス担当者にお問い合わせください。
の互換性 | 要件 |
---|
オペレーティング·システム | Linuxカーネル: 3.10以降 macOS: 10.11以降 Windows: Windows1064ビット以降 また、CPMがWindowsシステムで機能するようにするには、Linuxコンテナーを実行するようにDockerを構成する必要があります。 |
プロセッサー | 最新のマルチコアCPU |
メモリー | CPUコアあたり2.5GiBのRAM(専用) |
ディスクサイズ | ホストあたり最低50GiB |
ディスクパフォーマンス(IOPS) | ping:無視できる スクリプトAPI: 7 シンプルなブラウザ: 27 スクリプトブラウザ: 28 AWS EC2 m5.xlargeインスタンスでhttps://newrelic.comの書き込みスループットを監視することで測定:AL2、gp2ストレージクラス、50 GiBルートボリューム、デフォルトのDocker CPMインストール、および一度に1つのモニターを1-に設定分の頻度。複数のモニターを実行すると、効率が向上することが期待されます。これらの値は、多くの要因に応じて、自分の値よりも高くなることも低くなることもあります。 DockerCPMのベースラインは0.5IOPSで、モニタージョブは実行されていません。 |
ディスクファイルシステム | NFSv4.1以降(NFSを使用している場合) |
Dockerバージョン | Docker 17.12.1-ce以上 |
プライベートロケーションキー | 秘密のロケーションキーが必要です |
注意
Docker CPMは、AWS ECS、Docker Swarm、Apache Mesos、AzureContainerInstancesなどのコンテナーオーケストレーターで使用するようには設計されていません。Docker CPMをコンテナーオーケストレーターで実行すると、それ自体がコンテナーオーケストレーターであるため、予期しない問題が発生します。コンテナオーケストレーションを使用している場合は、 KubernetesCPM要件をご覧ください。
の互換性 | 要件 |
---|
オペレーティング·システム | Linuxカーネル: 3.10以降 macOS: 10.11以降 Windows: Windows1064ビット以降 |
プロセッサー | 最新のマルチコアCPU |
ミニオンポッド | CPU(vCPU /コア):0.5〜0.75 メモリ: 800Miから1600Miまで Minionポッドに割り当てられたリソースは、ユーザーが構成できます。 |
ランナーポッド | CPU(vCPU /コア): 0.5〜1 メモリ: 1250Miから3000Miまで スクリプト化されたAPIチェックの場合、1250Miが2500Miの制限で要求されます。 単純なブラウザまたはスクリプト化されたブラウザチェックの場合、3000Miの制限で2000Miが要求されます。 追加の考慮事項: ランナーポッドに割り当てられたリソースは、ユーザーが構成することはできません。 CPUとメモリの両方の最大制限要求リソース比率は2です。
|
ディスクサイズ | ルートボリューム:最低50 GiB(ノード+ PV) 持続ボリューム(PV):最低20 GiB ReadWriteOnce (RWO)PVがミニオンに提供される場合、暗黙のノードアフィニティが確立され、ミニオンとランナーコンテナが同じノードでスケジュールされるようになります。これは、ミニオンと関連するランナーがPVにアクセスできるようにするために必要です。これは、RWOPVにアクセスできるのはクラスター内の単一のノードのみであるためです。
|
ディスクパフォーマンス(IOPS) | ping:無視できる スクリプトAPI: 11 シンプルなブラウザ: 33 スクリプトブラウザ: 31 gp2ストレージクラス、50 GiBルートボリューム、RWOアクセスモードの20 GiB PV / PVC、デフォルトのKubernetesCPMは、Helmを介してインストールされ、1分の頻度に設定された時間に1つのモニターがインストールされます。複数のモニターを実行すると、効率が向上することが期待されます。これらの値は、多くの要因に応じて、自分の値よりも高くなることも低くなることもあります。 KubernetesCPMのベースラインは3.0IOPSで、モニタージョブは実行されていません。 |
ディスクファイルシステム | NFSv4.1以降(NFSを使用している場合) |
Kubernetesバージョン | KubernetesクラスタがKubernetesv1.15をサポートすることをお勧めします。 注意Kubernetes v1.21以降の場合は、minionリリース v3.0.61以降を使用してください。 |
プライベートロケーションキー | 秘密のロケーションキーが必要です |
兜 | EOL通知2022 年 8 月以降、オリジナルのプライベート ミニオン Helm チャート URL を含むいくつかの機能のサポートを中止します。この移行を簡単に準備する方法など、詳細については、サポート フォーラムの投稿を参照してください。 お使いのOS用のHelmv3のインストール手順に従ってください。 |
Kubectl | お使いのOSのKubectlのインストール手順に従ってください。 |
バージョン、依存関係、各ミニオンで開始するランナーポッドの数のデフォルト値、永続ボリュームアクセスモードなどを表示するには、以下のヘルプと例を表示するを参照してください。
プライベートロケーションキー
CPMを起動する前に、 秘密のロケーションキーが必要です。CPMはキーを使用して、New Relicに対して認証し、そのプライベートロケーションに関連付けられたモニターを実行します。
既存のプライベートロケーションのキーを見つけるには:
one.newrelic.com > シンセティック モニタリング > プライベート ロケーションに移動します。
プライベートロケーションインデックスで、CPMを割り当てるプライベートロケーションを見つけます。
キーを持つプライベートロケーションに関連付けられているキーに注意してください
アイコン。
サンドボックスとDockerの依存関係
サンドボックスとDockerの依存関係は、Dockerコンテナシステム環境のCPMに適用できます。
CPMはDockerで実行され、Dockerをサンドボックステクノロジーとして活用できます。これにより、モニターの実行が完全に分離され、セキュリティ、信頼性、再現性が向上します。スクリプトモニターまたはブラウザーモニターが実行されるたびに、CPMはランナーと呼ばれる新しいDockerコンテナーを作成して実行します。
ミニオンコンテナーは、追加のランナーコンテナーを生成するために、Dockerエンジンと通信するように構成する必要があります。次に、生成された各コンテナは、ミニオンコンテナが関連付けられているプライベートロケーションで実行されている合成モニターに関連付けられたチェックを実行するために使用されます。
起動時に2つの重要な依存関係があります。サンドボックスを有効にするには、次のことを確認してください。
書き込み可能で実行可能なディレクトリは/tmp
にマウントされます。書き込み可能なディレクトリは、CPMに書き込みたい任意のディレクトリにすることができますが、New Relicは、作業を簡単にするためにシステム独自の/tmp
を推奨しています。
書き込み可能なDockerUNIXソケットは、 /var/run/docker.sock
またはDOCKER_HOST
環境変数にマウントされます。詳細については、Dockerのデーモンソケットオプションを参照してください。
注意
ホストのコア数によって、CPMがホストで同時に実行できるランナーコンテナーの数が決まります。メモリ要件はランナーコンテナの予想数に合わせて調整されるため、リソースの競合を避けるために、同じホストで複数のCPMを実行しないことをお勧めします。
サンドボックス化とrootまたは非rootユーザーとしての実行の詳細については、セキュリティ、サンドボックス化、および非rootユーザーとしての実行を参照してください。
CPMバージョンのインストールと更新
CPMのインストールと更新の両方で、同じコマンドを使用して、CPMDockerイメージがホストされているQuay.ioリポジトリから最新のDockerイメージをプルします。すべてのリリースのリストについては、 quay.io / repository / newrelic/synthetics-minionにアクセスしてください。
CPMイメージはDockerHubでもホストされます。hub.docker.com/r/newrelic/synthetics-minion/tagsにアクセスしますすべてのリリースのリストについては。
ローカルイメージリポジトリでイメージをホストしていない限り、Dockerがsynthestics-minionおよびsynthetics-minion-runnerイメージをプルするには、ファイアウォールを介したquay.io
またはdocker.io
への接続を許可する必要があります。「ランナー」イメージは、synthetics-minionコンテナーの起動時に自動的にプルされます。ローカルリポジトリとランナーレジストリエンドポイントを設定する方法の詳細については、 Docker環境構成とKubernetes環境構成を参照してください。
CPMを開始します
CPMを開始するには、該当するDockerまたはKubernetesの手順に従います。
プライベートロケーションキーを見つけます。
サンドボックス化のためにDocker依存関係を有効にし、システムにCPMをインストールしたことを確認してください。
システムに適したスクリプトを実行します。次の例の/tmp
と/var/run/docker.sock
の一般的なデフォルトを、システムに合わせて調整します。
Linux / macOS:
--name YOUR_CONTAINER_NAME \
-e "MINION_PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" \
-v /var/run/docker.sock:/var/run/docker.sock:rw \
--restart unless-stopped \
quay.io/newrelic/synthetics-minion:latest
ウィンドウズ:
--name YOUR_CONTAINER_NAME ^
-e "MINION_PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" ^
-v /var/run/docker.sock:/var/run/docker.sock:rw ^
--restart unless-stopped ^
quay.io/newrelic/synthetics-minion:latest
ミニオンコンテナのログを表示します。
docker logs --follow YOUR_CONTAINER_NAME
Synthetics Minion is ready and servicing location YOUR_PRIVATE_LOCATION_LABEL
のようなメッセージが表示されると、CPMが起動し、その場所に割り当てられたモニターを実行する準備ができています。
EOL通知
2022 年 8 月以降、オリジナルのプライベート ミニオン Helm チャート URL を含むいくつかの機能のサポートを中止します。この移行を簡単に準備する方法など、詳細については、サポート フォーラムの投稿を参照してください。
プライベートロケーションキーを見つけます。
KubernetesクラスターでCPMの名前空間を設定します。
kubectl create namespace YOUR_NAMESPACE
NewRelicHelmリポジトリからHelmチャートをコピーします。
次のHelmコマンドを使用してCPMをインストールします。
CPMの新規インストールの場合:
helm install YOUR_CPM_NAME YOUR_REPO_NAME/synthetics-minion -n YOUR_NAMESPACE --set synthetics.privateLocationKey=YOUR_PRIVATE_LOCATION_KEY
既存のCPMインストールを更新するには:
helm upgrade YOUR_CPM_NAME YOUR_REPO_NAME/synthetics-minion -n YOUR_NAMESPACE --set synthetics.privateLocationKey=YOUR_PRIVATE_LOCATION_KEY
ミニオンポッドが稼働しているかどうかを確認します。
kubectl get -n YOUR_NAMESPACE pods
各ポッドのstatus
属性がrunning
として表示されると、CPMが起動し、プライベートロケーションに割り当てられたモニターを実行する準備が整います。
CPMを停止または削除します
Dockerコンテナシステム環境では、Docker stop
プロシージャを使用して、CPMの実行を停止します。Kubernetesコンテナオーケストレーションシステム環境では、Kubernetes delete
プロシージャを使用してCPMの実行を停止します。
Dockerコンテナーは、コンテナー名またはコンテナーIDのいずれかで停止できます。
Linux、macOS、およびWindowsのコンテナー名の停止:
docker stop YOUR_CONTAINER_NAME
docker rm YOUR_CONTAINER_NAME
Linux / macOSのコンテナID停止:
例では、コンテナは停止され、削除されます。コンテナのみを停止するには、 docker rm $CONTAINER_ID
を省略します。
CONTAINER_ID=$(docker ps -aqf name=YOUR_CONTAINER_NAME)
docker stop $CONTAINER_ID
WindowsのコンテナID停止:
例では、コンテナは停止され、削除されます。コンテナのみを停止するには、 docker rm $CONTAINER_ID
を省略します。
FOR /F "tokens=*" %%CID IN ('docker ps -aqf name=YOUR_CONTAINER_NAME') do (SET CONTAINER_ID=%%CID)
docker stop %CONTAINER_ID%
削除するミニオン ポッドの MINION_POD_INSTALLATION_NAME を取得します。
helm list -n YOUR_NAMESPACE
ミニオンポッドを削除します。
helm uninstall -n YOUR_NAMESPACE MINION_POD_INSTALLATION_NAME
KubernetesクラスタでCPM用に設定されたネームスペースを削除します。
kubectl delete namespace YOUR_NAMESPACE
ヘルプと例を表示する
必要に応じて、次のオプションを使用してください。
最も一般的に使用される実行オプションのリストをコマンドラインインターフェイスで直接取得するには、 show help
コマンドを実行します。
CPMの使用例と、使用可能なすべての実行オプションのリストを表示するには、次のコマンドを実行します。
docker run quay.io/newrelic/synthetics-minion:latest help
Dockerログを追跡し、モニターの状態を確認するには、 Containerized private minion(CPM)のメンテナンスと監視を参照してください。
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を構成する
コンテナ化されたプライベートミニオンをカスタムnpmモジュールで構成したり、起動間でデータを保持したり、環境変数を使用したりすることができます。詳細については、 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
(v3.0.2までのCPMバージョン)。
root以外のユーザーとしてCPMを実行するには、追加の手順が必要です。
詳細については、セキュリティおよびAppArmorセキュリティプロファイルに関するDockerの公式ドキュメントを参照してください。
ご使用の環境でCPMをroot以外のユーザーとして実行する必要がある場合は、次の手順に従ってください。次の例では、root以外のユーザーはmy_user
です。
my_user
がホストでDockerエンジンを使用できることを確認します。
my_user
が"docker"
システム グループに属していることを確認します。ブリッジ ネットワークを作成するには、 docker.sock
への限定されたルート アクセスが引き続き必要です。
また
Docker TCPソケットオプションを有効にし、 DOCKER_HOST
環境変数をCPMに渡します。
my_user
に、CPMに渡されたすべてのディレクトリとボリュームに対する読み取り/書き込み権限があることを確認します。これらの権限を設定するには、 chmod
コマンドを使用します。
実行コマンドで使用するmy_user
のuid
を取得します: id -u my_user
。
これらの条件が満たされたら、CPMを起動するときにオプション"-u <uid>:<gid>"
を使用します。
docker run ... -u 1002 ...
また
docker run ... -u 1002 -e DOCKER_HOST=http://localhost:2375 ...
Dockerイメージリポジトリ
単一のCPMDockerイメージは、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にデータを報告し、実行するモニターを受信するために必要です。これが問題であるかどうか、および例外を設定する方法については、ネットワーク管理者に問い合わせてください。 |
プロキシを介して合成と通信する | プロキシによるNewRelicとの通信を設定するには、次の名前の環境変数を使用します MINION_API_PROXY*. |
起動時に渡された引数 | これは、Dockerコンテナ環境にのみ適用されます。起動時にCPMコンテナに渡された引数は、CPMによって生成されたコンテナには渡されません。Dockerには、コンテナーの「継承」または「階層」の概念がなく、CPMからモニター実行コンテナーに渡される構成をコピーしません。それらの間で共有される唯一の構成は、 Dockerデーモンレベルで設定されたものです。 |