calico: calico-node / felix health check fails: "aws-source-destination-check"
Hi, I’ve installed calico networking on EKS following the simple instructions here. Everything seems to work, but calico-node health check keeps failing.
Please advise, I’m not a pro in this area, and I couldn’t find anything relevant.
Expected Behavior
Health check passing
Current Behavior
Readiness probe failed: calico/node is not ready: felix is not ready: readiness probe reporting 503
The log from the calico-node pod:
[INFO][39] felix/int_dataplane.go 1300: Applying dataplane updates
[INFO][39] felix/ipsets.go 223: Asked to resync with the dataplane on next update. family="inet"
[INFO][39] felix/ipsets.go 306: Resyncing ipsets with dataplane. family="inet"
[INFO][39] felix/ipsets.go 356: Finished resync family="inet" numInconsistenciesFound=0 resyncDuration=1.308558ms
[INFO][39] felix/int_dataplane.go 1314: Finished applying updates to dataplane. msecToApply=1.636869
[INFO][38] monitor-addresses/startup.go 756: Using autodetected IPv4 address on interface eth0: 192.168.68.211/19
[WARNING][39] felix/health.go 188: Reporter is not ready. name="aws-source-destination-check"
[WARNING][39] felix/health.go 154: Health: not ready
[WARNING][39] felix/health.go 188: Reporter is not ready. name="aws-source-destination-check"
This source/dest check seems to be turned off on the ENI.
Your Environment
Cluster was just set up via eksctl, running k8s 1.18, also running cluster autoscaler and ingress-nginx
Thank you in advance
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 2
- Comments: 22 (4 by maintainers)
Hello,
I hit the same issue while migrating from Calico 3.17.2 to Calico 3.18.1. I used the
calico-vxlan.yamlfile from the release and the calico-node pods were never ready:The default
calico-vxlan.yamlfile for 3.18.1 contains:I also had to remove this option in order to make calico-node start. So I think the issue is not solved yet.
Please create a new issue, it’s likely to be something different. If I had to guess, you’ve started your nodes without the required IAM permission for the AWS source dest check feature to work. This could be a change in EKS to no longer grant that permission by default, for example.
The permission I’d expect us to need is
ModifyNetworkInterfaceAttribute(and possiblyDescribeInstancesandDescribeNetworkInterfaces).This same problem came up in this discussion in the “install” Slack channel.