Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calico with Kubernetes and Digital Ocean firewalls #1095

Closed
dghubble opened this issue Sep 7, 2017 · 5 comments
Closed

Calico with Kubernetes and Digital Ocean firewalls #1095

dghubble opened this issue Sep 7, 2017 · 5 comments
Milestone

Comments

@dghubble
Copy link
Contributor

dghubble commented Sep 7, 2017

Kubernetes clusters can use Calico for container networking on Digital Ocean if traffic uses IPv4 encapsulation (ipip protocol i.e. IP protocol 4). However, creating a Digital Ocean firewall blocks such traffic and firewall rules for protocols other than TCP, UDP, and ICMP aren't supported. In practice, this means its not very reasonable to use Calico on Digital Ocean.

Calico tutorials for DO are getting around this by simply never enabling firewall rules on droplets (!). On AWS and Google Cloud, their firewalls allow rules for the "ipip" protocol so there is no issue. I've spoken with DO and requested support (initial issue and vote for the feature)

Possible Solution

In the mean time, are there any alternative configurations folks have successfully used on Digital Ocean? According to #315, Digital Ocean does not allow peering with its networking so IP encapsulation may be the only choice, but the author mentions "there should be no problem". Recommendations?

Steps to Reproduce

  1. Launch Kubernetes cluster on Digital Ocean with Calico
  2. Delete firewall
  3. Verify pod to pod connectivity works
  4. Enable firewall again. Pod to pod connectivity no longer works. There are no firewalls you can add to allow the traffic.

Context

Aim is to have Calico be the default for our Kubernetes clusters across cloud providers. Still using flannel on DO due to this.

Your Environment

rel:

cc @ozdanborne @gunjan5

@ozdanborne
Copy link
Member

@dghubble thanks for submitting. My initial thought is that you could use Flannel for networking, as it uses VXLAN which runs over udp. The canal project bundles flannel with Calico for Kubernetes. Hopefully DO won't block packets when using that.

@dghubble
Copy link
Contributor Author

dghubble commented Sep 11, 2017

Yeah, flannel with vxlan for networking and Calico for policy is what we're using on Digital Ocean currently. https://typhoon.psdn.io/digital-ocean/#optional Its ok for now, but my goal is to get to Calico networking at some point. DO did accept the filed "idea", saying there are several requests for additional protocols they want to add.

@lucasyvas
Copy link

@dghubble Thanks a lot for reporting this. I spent hours trying to figure out what the hell was going on today. I have a very simple firewall that wraps all the Kubernetes nodes by tag. I presume switching to Canal may just magically work since my UDP traffic is wide open between my droplets... I'll find out soon enough!

@wardviaene
Copy link

Had the same issue. Switching to Canal indeed just works. Calico only will only work if DigitalOcean adds a feature to their firewall to enable IP-in-IP.

@caseydavenport
Copy link
Member

Calico v3.7 will have native VXLAN capabilities: projectcalico/felix#1989

So, won't need to use canal for this - will be similar configuration model as IPIP is today.

@caseydavenport caseydavenport added this to the Calico v3.7.0 milestone Apr 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants