このガイドでは、Kubernetes環境でデュアルスタック(IPv4とIPv6)ネットワーキングをサポートするためのNew Relic Syntheticsジョブマネージャーの設定とデプロイメントについて説明します。
前提条件
始める前に、次のものを用意してください。
Kubernetes cluster:デュアルスタックサポートが有効になっている、実行中のKubernetesクラスタ(バージョン1.20以降を推奨)
Helm: Helm 3.xがマシンにインストールされていること
kubectl:クラスタと通信するようにkubectlがインストールおよび設定されている
Docker: Dockerがインストールされ、デュアルスタックサポートで実行されていること(Minikubeや同様のローカルクラスタを使用している場合)
Permissions:ネームスペースを作成し、リソースをデプロイするためのCluster管理者権限
Private location key: UIからのNew Relicプライベートロケーションキー
Public images: デュアルスタックのサポートには、Docker Hubで利用可能な次のイメージバージョン以降が必要です:
- ジョブマネージャー
519以降:newrelic/synthetics-job-manager - Pingランタイム
1.65.0以降:newrelic/synthetics-ping-runtime - ノードAPIランタイム
rc1.15以降:newrelic/synthetics-node-api-runtime - Nodeブラウザランタイム
rc1.15以降:newrelic/synthetics-node-browser-runtime
- ジョブマネージャー
インフラストラクチャの検証
続行する前に、Kubernetesクラスタおよび基盤となるインフラストラクチャがデュアルスタックネットワーキングをサポートしていることを確認してください。
ホストから
ping6 ipv6.google.comまたはping -6 ipv6.google.com、あるいはお使いのマシンでの同等のコマンドを実行して、IPv6接続をテストします。Kubernetesクラスタのデュアルスタックサポートを確認する:
bash$kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}'クラスタでデュアルスタックが有効になっている場合、IPv4アドレスとIPv6アドレスの両方が返されるはずです。
Dockerデュアルスタック設定を確認します(該当する場合):
bash$docker network inspect bridge | grep IPv6重要
検証に失敗した場合は、ネットワークインフラストラクチャ、VPC、サブネット、およびセキュリティグループが、IPv4とIPv6の両方のトラフィックを許可するように設定されていることを確認してください。続行する前に、Kubernetesクラスタにデュアルスタックサポートが設定されている必要があります。
Dockerがデュアルスタックの準備ができていることを確認する
KubernetesクラスタがDocker上で実行されている場合(Minikube、kind、またはDocker Desktopなど)、DockerがIPv4とIPv6の両方のトラフィックを処理するように構成されていることを確認してください。DockerでIPv6が有効になっていることを確認するには、次を実行します:
$docker info | grep -i ipv6出力で、IPv6が有効になっていることを確認できるはずです。そうでない場合は、先に進む前にDockerのドキュメントを参照して、デュアルスタックサポートを有効にしてください。
Helmでインストール
New Relic Helmチャートを使用して、Syntheticsジョブマネージャーをデプロイします。
New Relic Helm リポジトリを追加します。
bash$helm repo add YOUR_REPO_NAME https://helm-charts.newrelic.com$helm repo updateSyntheticsジョブマネージャーをインストールします:
bash$helm install YOUR_JOB_MANAGER_NAME YOUR_REPO_NAME/synthetics-job-manager \>-n YOUR_NAMESPACE \>--set synthetics.privateLocationKey=YOUR_PRIVATE_LOCATION_KEYポッドが稼働していることを確認します:
bash$kubectl get -n YOUR_NAMESPACE pods
インストールの確認
外形監視ジョブマネージャーがIPv4およびIPv6リソースの両方にアクセスできることを確認してください。
ポッドのステータスを確認します。
bash$kubectl get pods -n YOUR_NAMESPACEすべてのポッドは
Runningステータスを表示する必要があります。ジョブマネージャーのログを表示:
bash$kubectl logs -n YOUR_NAMESPACE <job-manager-pod-name>ポッド内からデュアルスタック接続をテストします:
bash$# Test IPv6$kubectl exec -n YOUR_NAMESPACE <pod-name> -- curl -6 -v http://ipv6.google.com$$# Test IPv4$kubectl exec -n YOUR_NAMESPACE <pod-name> -- curl -4 -v http://google.com両方のcurlコマンドが成功した場合、デュアルスタック設定は正しく機能しています。
one.newrelic.com > All capabilities > Synthetic monitoring > Private locationsに移動して、New Relic UIでプライベートロケーションのステータスを確認します。プライベートロケーションは正常と表示されるはずです。
トラブルシューティング
Dual スタック設定で問題が発生した場合:
ポッドがIPv6アドレスに到達できない:
- Kubernetesクラスタでデュアルスタックサポートが有効になっていることを確認してください。
- セキュリティグループとネットワークポリシーがIPv4とIPv6の両方のトラフィックを許可していることを確認してください。
画像が見つかりません:
- クラスタがDocker Hubにアクセスしてパブリックランタイムイメージをプルできることを確認してください。
- プルエラーを検査するには、
kubectl describe pod <pod-name> -n YOUR_NAMESPACEを使用します。
ジョブマネージャーが接続できない:
- プライベートロケーションキーが正しいことを確認してください
- ジョブマネージャーのログで接続エラーを確認します:
kubectl logs -n YOUR_NAMESPACE <job-manager-pod-name>
追加のトラブルシューティングのガイダンスについては、プライベートロケーションのトラブルシューティングを参照してください。
次は何ですか?
Kubernetes でデュアルスタック対応のプライベートロケーションをセットアップした後、次のことができます:
- プライベートロケーションを使用して、IPv4とIPv6の両方のエンドポイントをテストするSyntheticモニターを作成します
- 高度なオプションについては、ジョブマネージャーの設定を参照してください
- プライベートロケーションのヘルスとパフォーマンスをモニターする