How to increase the log level for Canal components in a Rancher Kubernetes Engine (RKE) or Rancher v2.x provisioned Kubernetes cluster
This document (000020075) is provided subject to the disclaimer at the end of this document.
Situation
Task
During network troubleshooting it may be useful to increase the log level of the Canal components. This article details how to set verbose debug-level Canal component logging, in Rancher Kubernetes Engine (RKE) CLI or Rancher v2.x provisioned Kubernetes clusters.
Pre-requisites
- A Rancher Kubernetes Engine (RKE) CLI or Rancher v2.x provisioned Kubernetes cluster with the Canal Network Provider
Resolution
N.B. As these instructions involve editing the Canal DaemonSet directly, the change will not persist cluster update events, i.e. invocations of
rke up
for RKE CLI provisioned clusters, or changes to the cluster configuration for a Rancher provisioned cluster. As a result cluster updates should be avoided whilst collecting the debug level logs for troubleshooting.
Via the Rancher UI
For a Rancher v2.x managed cluster, the Canal component log level can be adjusted via the Rancher UI, per the following process:
- Navigate to the
System
project of the relevant cluster within the Rancher UI. - Locate the canal DaemonSet workload within the
kube-system
namespace, click the vertical elipses (⋮
) and select Edit. - Click to Edit the
calico-node
container. - Add
CALICO_STARTUP_LOGLEVEL = DEBUG
in the Environment Variables section, clickSave
.
containers:
- env:
- name: DATASTORE_TYPE
value: kubernetes
- name: USE_POD_CIDR
value: 'true'
- name: WAIT_FOR_DATASTORE
value: 'true'
- name: NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: CALICO_NETWORKING_BACKEND
value: none
- name: CLUSTER_TYPE
value: k8s,canal
- name: FELIX_IPTABLESREFRESHINTERVAL
value: '60'
- name: IP
- name: CALICO_DISABLE_FILE_LOGGING
value: 'true'
- name: FELIX_DEFAULTENDPOINTTOHOSTACTION
value: ACCEPT
- name: FELIX_IPV6SUPPORT
value: 'false'
- name: FELIX_LOGFILEPATH
value: none
- name: FELIX_LOGSEVERITYSYS
- name: FELIX_LOGSEVERITYSCREEN
value: Warning
- name: FELIX_HEALTHENABLED
value: 'true'
- name: FELIX_IPTABLESBACKEND
value: auto
- name: CALICO_STARTUP_LOGLEVEL
value: DEBUG
envFrom:
- configMapRef:
name: kubernetes-services-endpoint
optional: true
image: rancher/mirrored-calico-node:v3.22.0
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
exec:
command:
- /bin/calico-node
- '-shutdown'
livenessProbe:
exec:
command:
- /bin/calico-node
- '-felix-live'
failureThreshold: 6
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 10
name: calico-node
- Click Edit Yaml for the canal DaemonSet again.
- This time click Edit on the
kube-flannel
container. - In the Command section add
--v=10
to theEntrypoint
e.g.:/opt/bin/flanneld --ip-masq --kube-subnet-mgr --v=10
, and clickSave
.
``` - command: - /opt/bin/flanneld - '--ip-masq' - '--kube-subnet-mgr' - '--v=10'
```
Via kubectl
With a Kube Config file sourced for the relevant cluster, for a user with permission to edit the System project, the Canal component log level can be adjusted via kubectl, per the following process:
- Run
kubectl -n kube-system edit daemonset canal
. - In the
env
definition for thecalico-node
container add an environment variable with the nameCALICO_STARTUP_LOGLEVEL
and valueDEBUG
, e.g.:
[...]
containers:
- env:
[...]
- name: CALICO_STARTUP_LOGLEVEL
value: DEBUG
[...]
- In the
command
definition for thekube-flannel
container add--v=10
to the command, e.g.:
yaml
[...]
- commmand:
- /opt/bin/flanneld
- --ip-masq
- --kube-subnet-mgr
- --v=10
[...]
4. Save the file.
After Setting up the Debug log level, it can be checked viewing the 'Canal' pod logs:
Further reading
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.