Start here when a Publisher won’t go Online.
Quick triage
1 | # Are pods running? |
Failure: pod stuck in Init:0/1
Likely the init container is retrying the API enrollment.
1 | kubectl logs -n npa-publisher <pod> -c npa-bootstrap |
Common causes:
| Log line | Cause | Fix |
|---|---|---|
Cannot resolve tenant.goskope.com |
DNS broken inside the pod | Fix cluster DNS in pod mode; set bind.forwarders only in host mode |
401 Unauthorized |
Wrong/expired API token | Rotate the token |
403 Forbidden |
Token lacks publishers scope |
Re-mint with correct scope |
Connection refused / i/o timeout |
Egress blocked | Open outbound 443 to *.goskope.com |
Failure: Publisher logs repeat Connect to stitcher status: Resolving
The agent can’t resolve gateway-*.gw.npa.goskope.com.
In pod network mode, fix Kubernetes cluster DNS/CoreDNS. The chart runs
dnsmasq only as a pod-local proxy to the Kubernetes resolver, sobind.forwarders is intentionally rejected in pod mode.
If private domains need authoritative external DNS, add forwarding to
CoreDNS. The full walkthrough is in
Connectivity requirements: DNS in the pod.
The short form is:
1 | private.example.com:53 { |
After editing kube-system/coredns, restart CoreDNS and test both
cluster DNS and the private domain:
1 | kubectl -n kube-system rollout restart deployment/coredns |
In host network mode, provide explicit BIND forwarders:
1 | bind: |
If your host-mode DNS uses internal-only resolvers that can’t reach
public DNS, use forwarders that can resolve both Netskope cloud names
and any private application names the Publisher needs.
Failure: cannot open /dev/net/tun
The tunDevice mount isn’t reaching the pod.
- In
mode: pod: confirmtunDevice.enabled: trueand the node has/dev/net/tunpresent (ls -la /dev/net/tunon the node). - In
mode: host: this shouldn’t happen — the pod uses the host’s
device directly viahostNetwork. - On kind: confirm the kind config mounts
/dev/net/tun. See
kind distribution. - On EKS Bottlerocket / GKE Autopilot: see distribution-specific notes.
Failure: NET_ADMIN operation not permitted
PSA / SCC is blocking the capability.
1 | kubectl describe pod -n npa-publisher <pod> | grep -i security |
Fix: label namespace pod-security.kubernetes.io/enforce=privileged,
or bind privileged SCC on OpenShift. See
distributions.
Failure: Publisher appears Offline after working
1 | # Check that the pod is still running and tunnels are up |
If the log shows recent NPACONNECTED but the console says Offline:
- Tenant-side outage (rare). Check Netskope status page.
- Egress IP changed (NAT gateway was recreated). Re-attest in the console.
- API token revoked. Re-rotate.
Collecting diagnostics
1 | kubectl logs -n npa-publisher <pod> -c npa-bootstrap > bootstrap.log |
Bundle these when opening a Netskope support case.