Troubleshoot Deployment
Learn how to troubleshoot your Cloud-Native Router deployment.
We use the JSON processor jq to format the output of some commands. If jq is not installed on your OS by default, install it using the appropriate package manager for your OS. For example:
dnf install jq
apt install jq
Common Problems
Table 1 lists some common deployment problems and remedies.
| Potential issue | What to check | Related Commands |
|---|---|---|
| Image not found | Check if the images are uploaded to the local docker using the
command docker images. If not, then the registry
configured in values.yaml should be accessible.
Ensure image tags are correct. |
kubectl -n jcnr describe pod <crpd-pod-name> |
| Initialization errors | Check if jcnr-secrets is loaded and has a valid license key | [root@jcnr-01]# kubectl get secrets -n jcnr NAME TYPE DATA AGE crpd-token-zp8kc kubernetes.io/service-account-token 3 29d default-token-zn6p9 kubernetes.io/service-account-token 3 29d jcnr-secrets Opaque 2 29dConfirm that root password and license key are present in /var/run/jcnr/juniper.conf |
| cRPD Pod in CrashLoopBackOff state |
|
|
|
vRouter Pod in CrashLoopBackOff state |
Check the contail-k8s-deployer logs for errors | See Check Deployer Logs. |
Check Deployer Logs
Verify vRouter and cRPD Health
-
Check the vRouter daemonset.
-
Check the cRPD stateful set.
Verify cRPD Configuration
The Cloud-Native Router deployment process creates a cRPD configuration file from the parameters in values.yaml for L2 mode and custom configuration via node annotations in L3 mode. This cRPD configuration file is at /var/run/jcnr/juniper.conf on any node running JCNR.
The cRPD configuration can be customized using node annotations. The cRPD pod will
stay in pending state if the applied configuration is invalid.
The rendered custom configuration is in /etc/crpd/juniper.conf.master.
In an AWS EKS deployment you can see the rendered custom configuration by accessing the cRPD CLI and navigating to the /config directory.
View Log Files
You can find the Cloud-Native Router log files in the default
log_path directory (/var/log/jcnr/) on any
node running JCNR. You can change this location by changing the value of the
log_path or syslog_notifications parameters in
the values.yaml file prior to deployment.
Here's an example of some of the log files that Cloud-Native Router keeps.
ls /var/log/jcnr
applier contrail-vrouter-agent.log contrail-vrouter-dpdk-init.log contrail-vrouter-dpdk.log jcnr-cni.log jcnr_notifications.json license messages mgd-api mosquitto na-grpcd vrouter-kernel-init.log
If your deployment fails, check the applier logs in applier/applier.log for more information.
Contrail Tools
Contrail Tools is an optional package that contains troubleshooting utilities that you can use to debug your installation.
To install Contrail Tools, set the contrail-tools install flag to
true in the Cloud-Native Router installation Helm chart and
then install Cloud-Native Router as you normally do.
contrail-tools: install: true
Collect Debug and Support Information
To facilitate the gathering of debug information, we provide a single utility that you can run to take a snapshot of the state and condition of all Cloud-Native Router components. This snapshot contains logs, traces, and other useful data that you can analyze yourself or provide to Juniper Networks Support. Collected information is placed in a tarball in /var/log/jcnr and includes:
-
CPU and memory usage
-
node and pod states and events
-
cRPD data and traces
-
vRouter data and traces
-
log files
-
optional crash (core dump) files
-
optional debug information
-
plus much more
Collect Interface Throughput and Performance Statistics
Run the dpdkvifstats utility to show interface throughput
and performance statistics for the DPDK interfaces.
Available statistics include:
-
transmit and receive packets per second
-
transmit and receive bits per second
-
transmit and receive error counts
By default, this utility refreshes the displayed counts every 3 seconds. As an option, you can specify the duration between refreshes.