---
title: Install Synthetics for Dual Stack using Kubernetes
source: https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/private-locations/install-synthetics-dual-stack-kubernetes
---

This guide covers the configuration and deployment of the New Relic Synthetics job manager to support Dual Stack (IPv4 and IPv6) networking in your Kubernetes environment.

## Prerequisites [#prerequisites]

Before you begin, ensure you have:

-   **Kubernetes cluster**: A running Kubernetes cluster (version 1.20 or higher recommended) with Dual Stack support enabled
-   **Helm**: Helm 3.x installed on your machine
-   **kubectl**: kubectl installed and configured to communicate with your cluster
-   **Docker**: Docker installed and running with Dual Stack support (if using Minikube or similar local clusters)
-   **Permissions**: Cluster admin permissions to create namespaces and deploy resources
-   **Private location key**: Your New Relic private location key from the UI
-   **Public images**: Dual Stack support requires the following image versions or later, available on Docker Hub:
    -   [Job manager `519` or later](https://docs.newrelic.com/docs/release-notes/synthetics-release-notes/job-manager-release-notes/job-manager-release-519/): `newrelic/synthetics-job-manager`
    -   [Ping runtime `1.65.0` or later](https://docs.newrelic.com/docs/release-notes/synthetics-release-notes/ping-runtime-release-notes/ping-runtime-1.65.0/): `newrelic/synthetics-ping-runtime`
    -   [Node API runtime `rc1.15` or later](https://docs.newrelic.com/docs/release-notes/synthetics-release-notes/node-api-runtime-release-notes/node-api-runtime-rc1.15/): `newrelic/synthetics-node-api-runtime`
    -   [Node browser runtime `rc1.15` or later](https://docs.newrelic.com/docs/release-notes/synthetics-release-notes/node-browser-runtime-release-notes/node-browser-runtime-rc1.15/): `newrelic/synthetics-node-browser-runtime`

## Validate your infrastructure [#validate-infrastructure]

Before proceeding, verify that your Kubernetes cluster and underlying infrastructure support Dual Stack networking.

1.  Test IPv6 connectivity from your host by running `ping6 ipv6.google.com` or `ping -6 ipv6.google.com`, or the equivalent command for your machine.

2.  Verify Kubernetes cluster Dual Stack support:

    ```bash
    kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}'
    ```

    This should return both IPv4 and IPv6 addresses if your cluster is Dual Stack-enabled.

3.  Check Docker Dual Stack configuration (if applicable):

    ```bash
    docker network inspect bridge | grep IPv6
    ```

> #### ⚠️ IMPORTANT
>
> If validation fails, ensure your network infrastructure, VPC, subnets, and security groups are configured to allow both IPv4 and IPv6 traffic. Your Kubernetes cluster must be configured with Dual Stack support before continuing.

## Verify Docker is ready for Dual Stack [#configure-docker]

If your Kubernetes cluster runs on Docker (such as Minikube, kind, or Docker Desktop), ensure Docker is configured to handle both IPv4 and IPv6 traffic. To verify that Docker has IPv6 enabled, run:

```bash
docker info | grep -i ipv6
```

The output should confirm that IPv6 is enabled. If it is not, refer to the [Docker documentation](https://docs.docker.com/config/daemon/ipv6/) to enable Dual Stack support before proceeding.

## Install with Helm [#install-helm]

Deploy the Synthetics job manager using the New Relic Helm chart.

1.  Add the New Relic Helm repository:

    ```bash
    helm repo add YOUR_REPO_NAME https://helm-charts.newrelic.com
    helm repo update
    ```

2.  Install the Synthetics job manager:

    ```bash
    helm install YOUR_JOB_MANAGER_NAME YOUR_REPO_NAME/synthetics-job-manager \
      -n YOUR_NAMESPACE \
      --set synthetics.privateLocationKey=YOUR_PRIVATE_LOCATION_KEY
    ```

3.  Confirm the pods are up and running:

    ```bash
    kubectl get -n YOUR_NAMESPACE pods
    ```

## Verify installation [#verify-installation]

Confirm that your Synthetics job manager can access both IPv4 and IPv6 resources.

1.  Check pod status:

    ```bash
    kubectl get pods -n YOUR_NAMESPACE
    ```

    All pods should show a `Running` status.

2.  View job manager logs:

    ```bash
    kubectl logs -n YOUR_NAMESPACE <job-manager-pod-name>
    ```

3.  Test Dual Stack connectivity from within a pod:

    ```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
    ```

    If both curl commands succeed, your Dual Stack configuration is working correctly.

4.  Verify the private location status in the New Relic UI by going to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > Synthetic monitoring > Private locations**. Your private location should show as healthy.

## Troubleshooting [#troubleshooting]

If you encounter issues with your Dual Stack configuration:

-   **Pods cannot reach IPv6 addresses**:
    -   Verify that your Kubernetes cluster has Dual Stack support enabled
    -   Ensure security groups and network policies allow both IPv4 and IPv6 traffic

-   **Images not found**:
    -   Verify that your cluster has access to Docker Hub to pull the public runtime images
    -   Use `kubectl describe pod <pod-name> -n YOUR_NAMESPACE` to inspect pull errors

-   **Job manager not connecting**:
    -   Verify your private location key is correct
    -   Check job manager logs for connection errors: `kubectl logs -n YOUR_NAMESPACE <job-manager-pod-name>`

For additional troubleshooting guidance, see [Troubleshoot private locations](https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/private-locations/troubleshoot-private-locations).

## What's next? [#whats-next]

After setting up your Dual Stack-enabled private location with Kubernetes, you can:

-   [Create synthetic monitors](https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/using-monitors/add-edit-monitors) that test both IPv4 and IPv6 endpoints using your private location
-   [Configure job manager settings](https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/private-locations/job-manager-configuration) for advanced options
-   [Monitor your private location](https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/private-locations/monitor-private-locations) health and performance
